Turtlebot3 2D SLAM and Navigation

文章目录

  • Turtlebot3 2D SLAM and Navigation
    • 1. 建图
      • 1.1 建图步骤
      • 1.2 建图效果
      • 1.3 Node 和 Topic
    • 2. 导航
      • 2.1 导航步骤
      • 2.2 Node 和 Topic
      • 2.3 导航调参

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建图速度和效果较优
Turtlebot3 2D SLAM and Navigation_第1张图片

1.3 Node 和 Topic

Turtlebot3 2D SLAM and Navigation_第2张图片

2. 导航

2.1 导航步骤

  • 启动导航节点,读取slam存好的地图

    roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
    
  • 在导航之前,机器人应该知道它的位姿:给出估计的初始位姿,使机器人能快速定位自己在图中的初始位姿

  • 设置目标位姿,开始导航

2.2 Node 和 Topic

Turtlebot3 2D SLAM and Navigation_第3张图片

  • 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

你可能感兴趣的:(ROS,自动驾驶,slam)