[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70538":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":28,"discoverSource":29},70538,"jie_3d_nav","6-robot\u002Fjie_3d_nav","6-robot","一套基于 ROS 2 Humble 的 3D 导航系统，通过 Web 界面交互。本系统已在智元科技 D1 机器狗以及留形科技 Odin 1 空间定位模组上测试通过。",null,"Python",304,61,1,2,0,14,19,174,42,5.38,false,"main",true,[],"2026-06-12 02:02:34","# jie_3d_nav\n\n[English](.\u002FREADME.en.md)\n\n一套基于 ROS 2 Humble 的 3D 导航系统，通过 Web 界面交互。本系统已在智元科技 D1 机器狗以及留形科技 Odin 1 空间定位模组上测试通过。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fmedia\u002F1.png\" alt=\"概略图\" width=\"800\">\n\u003C\u002Fp>\n\n本目录包含三个 ROS 2 包：\n\n- `jie_map_msgs`：地图包保存、加载、导出等自定义服务接口。\n- `jie_octomap`：OctoMap 管理包，负责多种地图格式导入、地图包保存\u002F加载、OctoMap 可视化和编辑。\n- `octo_planner`：基于 OctoMap 的 3D 路径规划、路径跟踪控制和 Web 测试\u002F导航 launch。\n\n## 功能概览\n\n- 将 PCD 点云地图导入为 OctoMap。\n- 将 ROS 2D 栅格地图导入为 3D OctoMap。\n- 将 Gazebo `.world` \u002F `.sdf` 场景转换为 OctoMap。\n- 保存、加载 OctoMap 地图包。\n- 使用 Qt\u002FVTK GUI 查看和编辑 OctoMap 栅格。\n- 使用 Web 页面查看 OctoMap、选择起点\u002F终点并进行路径规划。\n- 提供面向安装了留形科技 Odin 1 的 智元 D1 机器狗的导航入口和独立网页测试入口。\n\n## 介绍视频\n\n- Bilibili：[【开源】基于ROS2的3D导航系统](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1jgR9BmELw)\n- YouTube：[【开源】基于ROS2的3D导航系统](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CepO90mzIeI)\n\n## 目录结构\n\n```text\njie_3d_nav\u002F\n├── jie_map_msgs\u002F        # 自定义 srv 接口\n├── jie_octomap\u002F         # OctoMap 导入、管理、编辑、Web\u002FGUI 工具\n├── octo_planner\u002F        # 3D 路径规划、控制器、导航 launch\n├── worlds\u002F              # 示例 Gazebo world\n└── install_deps_humble.sh\n```\n\n## 环境要求\n\n- Ubuntu 22.04\n- ROS 2 Humble\n- `colcon`\n- OctoMap \u002F octomap_msgs\n- OpenCV\n- Open3D C++ 开发库\n- PyQt5、VTK、NumPy、Pillow、PyYAML\n- 可选：`rosbridge_server`，用于 Web 页面通过 websocket 访问 ROS\n\n基础编译不需要以下两个包：\n\n- `d1_bringup`\n- `d1_description`\n\n注意：完整智元科技 D1 机器狗导航入口 `octo_planner\u002Flaunch\u002Fnav.launch.py` 仍然会在运行时使用 `d1_bringup` 和 `d1_description`，因为它会启动 `d1_core` 并读取智元科技 D1 机器狗的 URDF。\n\n## 安装依赖\n\n可以使用仓库内脚本安装常用依赖：\n\n```bash\ncd ~\u002Fros2_ws\u002Fsrc\u002Fjie_3d_nav\nbash install_deps_humble.sh\n```\n\n如果 CMake 找不到 Open3D，需要额外安装 Open3D C++ 开发库，并确保 `Open3DConfig.cmake` 能被 CMake 找到，例如通过 `Open3D_DIR` 或 `CMAKE_PREFIX_PATH` 指定。\n\n## 编译\n\n从 ROS 2 工作区根目录编译：\n\n```bash\ncd ~\u002Fros2_ws\nsource \u002Fopt\u002Fros\u002Fhumble\u002Fsetup.bash\ncolcon build --packages-select jie_map_msgs jie_octomap octo_planner\nsource install\u002Fsetup.bash\n```\n\n如果源码目录移动过，旧 CMake 缓存可能还指向旧路径，可以清理缓存后重编：\n\n```bash\ncolcon build --packages-select jie_map_msgs jie_octomap octo_planner --cmake-clean-cache\n```\n\n## 快速体验\n\n运行如下指令加载例子地图：\n\n```bash\nros2 launch jie_octomap import_gazebo_world.launch.py world_name:=2_storey.world\n```\n\n在弹出的窗口中，加载gazebo的world文件，设置地图的截取边长，点击加载按钮即可将world文件转换成OctoMap，并显示在窗口中。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fmedia\u002F2.png\" alt=\"加载地图\" width=\"600\">\n\u003C\u002Fp>\n\n先点击“起始点”按钮，用鼠标在地图上设置起始点位置。再点击“目标点”按钮，用鼠标在地图上设置目标点位置，即可规划出可行的路径。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fmedia\u002F3.png\" alt=\"规划路径\" width=\"600\">\n\u003C\u002Fp>\n\n## 地图导入\n\n### 导入 PCD 点云地图\n\n```bash\nros2 launch jie_octomap import_pcd_map.launch.py\n```\n\n该 launch 会启动：\n\n- `pcd_to_octomap_node`\n- `octomap_to_occupied_markers_node`\n- `map_package_manager`\n- `pcd_map_import_gui`\n- `octo_planner\u002Fjie_path_node`\n\n### 导入 ROS 2D 栅格地图\n\n```bash\nros2 launch jie_octomap import_ros_map.launch.py\n```\n\n该 launch 会启动：\n\n- `occupancy_grid_to_octomap_node`\n- `octomap_to_occupied_markers_node`\n- `map_package_manager`\n- `ros_map_import_gui`\n- `octo_planner\u002Fjie_path_node`\n\n### 导入 Gazebo World \u002F SDF\n\n加载包内示例 world 时，推荐使用 `world_name`：\n\n```bash\nros2 launch jie_octomap import_gazebo_world.launch.py world_name:=field.world\n```\n\n加载外部 world 文件时，继续使用绝对路径：\n\n```bash\nros2 launch jie_octomap import_gazebo_world.launch.py world_file:=\u002Fabsolute\u002Fpath\u002Fto\u002Fmap.world\n```\n\n如果同时传入 `world_file` 和 `world_name`，优先使用 `world_file`。\n\n`jie_octomap\u002Fworlds\u002F` 目录内提供了两个示例 world 文件，并会随 `jie_octomap` 包安装到 `share\u002Fjie_octomap\u002Fworlds\u002F`：\n\n- `2_storey.world`：双层建筑\u002F楼层示例。\n- `field.world`：场地示例。\n\n加载双层建筑示例：\n\n```bash\nros2 launch jie_octomap import_gazebo_world.launch.py world_name:=2_storey.world\n```\n\n加载场地示例：\n\n```bash\nros2 launch jie_octomap import_gazebo_world.launch.py world_name:=field.world\n```\n\n该 launch 会启动：\n\n- `world_to_octomap_node`\n- `world_selector_gui.py`\n- `map_package_manager`\n- `octo_planner\u002Fjie_path_node`\n\n## 地图管理与编辑\n\nOctoMap 管理和编辑主入口：\n\n```bash\nros2 launch jie_octomap map_manager.launch.py\n```\n\n该 launch 会启动：\n\n- `map_package_manager`\n- `octomap_to_occupied_markers_node`\n- `map_viewer_gui`\n- 可选 `octo_planner\u002Fjie_path_node`\n\n`map_viewer_gui` 支持：\n\n- 打开地图包\n- 刷新地图\n- 保存地图\n- 查看占据、禁行、可通行、风险代价图层\n- 编辑栅格：`occupied`、`preblocked`、`traversable`、`clear`\n- 选择起点、终点、导航目标\n\n## Web 可视化\n\n### 加载地图并启动 Web 页面\n\n```bash\nros2 launch jie_octomap web_octomap.launch.py map_package:=~\u002Fmaps\u002Fmap\n```\n\n常用参数：\n\n- `map_package`：已保存的地图包目录。\n- `http_port`：静态 Web 服务端口，默认 `8080`。\n- `launch_rosbridge`：是否启动 `rosbridge_websocket`。\n- `launch_map_gui`：是否同时启动 Qt 保存\u002F加载窗口。\n\n浏览器访问：\n\n```text\nhttp:\u002F\u002F\u003C机器人IP>:8080\n```\n\n### Web 功能测试\n\n```bash\nros2 launch octo_planner web_test.launch.py\n```\n\n`web_test.launch.py` 用于测试网页访问、地图显示、Web 起终点选择、路径规划和基础控制链路。该 launch 已去除对 `d1_bringup` 和 `d1_description` 的依赖，会使用一个最小 `base_link` URDF 启动 `robot_state_publisher`。\n\n启动前同样需要根据实际环境配置：\n\n```text\nocto_planner\u002Fconfig\u002Fnav_params.yaml\n```\n\n至少需要部署好：\n\n- `relocalization_bin_file`：重定位使用的 `.bin` 地图文件。\n- `map_package_dir`：已经保存好的 OctoMap 地图包目录。\n\n## 智元科技 D1 机器狗完整导航\n\n完整机器人导航入口：\n\n```bash\nros2 launch octo_planner nav.launch.py\n```\n\n该 launch 面向智元科技 D1 机器狗实际导航，并结合留形科技 Odin 1 空间定位模组相关驱动流程，会启动或使用：\n\n- `d1_bringup\u002Fd1_core`\n- `d1_description\u002Furdf\u002Fd1.urdf`\n- `odin_ros_driver`\n- `octo_planner\u002Fjie_path_node`\n- `octo_planner\u002Fd1_controller`\n- `jie_octomap\u002Fmap_package_manager`\n- Web viewer 和 `rosbridge_websocket`\n\n运行前需要根据实际环境修改：\n\n```text\nocto_planner\u002Fconfig\u002Fnav_params.yaml\n```\n\n重点字段：\n\n- `relocalization_bin_file`\n- `map_package_dir`\n- `relocalization_pcd_file`\n- `show_rviz`\n- `show_map_gui`\n- `publish_d1_odom`\n- `use_static_odom_to_base`\n\n同时需要确认留形科技 Odin 1 空间定位模组驱动配置：\n\n```text\nodin_ros_driver\u002Fconfig\u002Fcontrol_command.yaml\n```\n\n将其中的 `custom_map_mode` 设置为 `2`，即 `Relocalization mode`。\n\n`octo_planner\u002Fconfig\u002Fnav_params.yaml` 中至少需要部署好：\n\n- `relocalization_bin_file`：重定位使用的 `.bin` 地图文件。\n- `map_package_dir`：已经保存好的 OctoMap 地图包目录。\n\n如果需要使用 RViz 观察定位效果，还需要部署：\n\n- `relocalization_pcd_file`：用于 RViz 显示的 `.pcd` 点云地图文件。\n\n## 其他 Launch\n\n```bash\nros2 launch jie_octomap octomap_test.launch.py\nros2 launch jie_octomap octomap_open3d.launch.py\nros2 launch jie_octomap odin1_slam.launch.py\nros2 launch jie_octomap odin1_loc.launch.py\n```\n\n其中 `odin1_slam.launch.py` 和 `odin1_loc.launch.py` 面向留形科技 Odin 1 空间定位模组流程，运行时需要 `odin_ros_driver`，并可选使用 `odin_costmap` 配置。\n\n## 入门教材推荐\n\n《机器人操作系统（ROS2）入门与实践》\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fmedia\u002Fbook_1.jpg\" alt=\"机器人操作系统 ROS2 入门与实践\" width=\"400\">\n\u003C\u002Fp>\n\n淘宝链接：[《机器人操作系统（ROS2）入门与实践》](https:\u002F\u002Fworld.taobao.com\u002Fitem\u002F820988259242.htm)\n","jie_3d_nav 是一个基于 ROS 2 Humble 的 3D 导航系统，支持通过 Web 界面进行交互。该系统的核心功能包括将 PCD 点云地图、ROS 2D 栅格地图和 Gazebo `.world` \u002F `.sdf` 场景转换为 OctoMap，并提供地图保存、加载、可视化及编辑等功能。此外，它还支持基于 OctoMap 的 3D 路径规划与跟踪控制。此项目已在智元科技 D1 机器狗以及留形科技 Odin 1 空间定位模组上测试通过，适用于需要高精度室内导航的机器人应用场合，如仓储物流、服务机器人等领域。","2026-06-11 03:32:42","CREATED_QUERY"]