文章目录
Turtlebot3 2D SLAM and Navigation
1. 建图
1.1 建图步骤
-
启动机器人
roslaunch turtlebot3_bringup turtlebot3_robot.launch
-
启动PC端机器人遥操作节点,控制机器人运动建图
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
-
启动slam节点
# SLAM方法有: Gmapping, Cartographer, Hector, Karto, Frontier_exploration, RTAB-Map roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
-
建图完成后存图(Occupancy Grid Map)
rosrun map_server map_saver -f ~/map # pgm和yaml文件
1.2 建图效果
对比下来,Cartographer建图速度和效果较优
1.3 Node 和 Topic
2. 导航
2.1 导航步骤
-
启动导航节点,读取slam存好的地图
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
-
在导航之前,机器人应该知道它的位姿:给出估计的初始位姿,使机器人能快速定位自己在图中的初始位姿
-
设置目标位姿,开始导航
2.2 Node 和 Topic
- amcl: 用于机器人定位
- move_base: 提供全局规划和局部规划
- map_server: 通过ROS Service方式提供地图数据
2.3 导航调参
- 如果不调节参数,导航效果非常不理想,调参指南可参考:
- https://github.com/teddyluo/ROSNavGuide-Chinese/blob/master/RosNavTuningCn.pdf
- https://github.com/teddyluo/ROSNavGuide-Chinese
- http://kaiyuzh.me/documents/navguide.pdf