From 242ea8c1a64c34c26e3e76e22c27b3701a6aa5b0 Mon Sep 17 00:00:00 2001 From: administrator Date: Fri, 8 May 2026 13:28:01 +0000 Subject: [PATCH] Create README.md --- README.md | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3f6b679..07a84e6 100644 --- a/README.md +++ b/README.md @@ -27,15 +27,7 @@ ros2 pkg list | grep explore ### 注意事项 -之后每打开一个新终端,都建议先执行: - -```bash -source /opt/ros/humble/setup.bash -source install/setup.bash -export TURTLEBOT3_MODEL=burger -``` - -为了方便,也可以写入 `~/.bashrc`: +为了方便,写入 `~/.bashrc`: ```bash echo 'source /opt/ros/humble/setup.bash' >> ~/.bashrc @@ -44,27 +36,30 @@ echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc source ~/.bashrc ``` -## 2. 启动仿真, Nav2导航栈, SLAM Toolbox异步建图, rviz2 - +## 2. 启动仿真(后面每一个步骤都在新终端执行) ```bash ./gzsim_run.sh - +``` +## 3. 启动SLAM Toolbox异步建图 +```bash ros2 launch slam_toolbox online_async_launch.py use_sim_time:=True - +``` +## 4. 启动Nav2导航栈 ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True headless:=False - +``` +## 5. 打开rviz2 +```bash ros2 run rviz2 rviz2 -d /opt/ros/humble/share/nav2_bringup/rviz/nav2_default_view.rviz --ros-args -p use_sim_time:=true - ``` -## 3. 启动explore_lite 自主探索节点(如果机器人在探索时在某一点长时间卡住,可以在rviz中使用Nav2 Goal进行单点导航探索。) +## 6. 启动explore_lite 自主探索节点(如果机器人在探索时在某一点长时间卡住,可以在rviz中使用Nav2 Goal进行单点导航探索。) ```bash ros2 launch explore_lite explore.launch.py ``` ![图1](assets/picture01.png) -## 4. 保存建图结果 +## 7. 保存建图结果 机器人完成环境全区域探索后,新开终端执行地图保存命令,地图将保存至$NAV2_MAP_PATH指定路径 @@ -73,7 +68,7 @@ export NAV2_MAP_PATH=/workspace/src/turtlebot3_simulations/turtlebot3_gazebo/map ros2 run nav2_map_server map_saver_cli -f ${NAV2_MAP_PATH}/office_map ``` -## 5. 模型说明 +## 8. 模型说明 该package 基于explore_lite进行 ROS2 适配与二次开发,是未知环境自主建图的核心,实现地图前沿检测、探索目标。m-explore-ros2 package 的src/目录下包含explore.cpp、costmap_client.cpp、frontier_search.cpp,分别实现探索节点主要逻辑、代价地图数据subscribe与同步, frontier_search的核心算法。 * costmap_client.cpp 管理代价地图的数据,核心class 是 explore::Costmap2DClient, 实现了代价地图订阅、格式转换、位姿计算的具体逻辑,为上层提供了线程安全的代价地图数据和机器人实时位姿。这层的作用:给探索模块提供“实时可查询的栅格地图 + 当前机器人位姿”。首先启动时订阅 map 和 map_updates,把 OccupancyGrid 转成 nav2_costmap_2d::Costmap2D(updateFullMap / updatePartialMap)。其次,getRobotPose() 通过 TF 把 robot_base_frame 转到地图坐标系,给后续前沿搜索当起点。