本篇我们通过实现TurtleBot 3 Burger的导航功能,来探究ROS的导航流程
1.建立地图
burger请使用电池供电,因为需要到处移动:
(1)在Ubuntu 端启动ROScore
roscore
(2)在Turtlebot3的终端输入
roslaunch turtlebot3_bringup turtlebot3_robot.launch
(3)在Ubuntu 端新开一个终端
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_slam turtlebot3_slam.launch
(4)在Ubuntu 端新建一个终端,运行RViz可视化3D模型
rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
(5)在Ubuntu 端新建一个终端,键盘远程控制机器人到处扫描房间,建立地图
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
(6)保存地图,一个map.pgm 和 map.yaml 文件将会出现在home目录下(或者home\username)。
rosrun map_server map_saver -f ~/map
2.导航
前两步同上
(3)打开保存的地图
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
(4)运行RViz:
rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
如果一切顺利的话,你可以看到地图和机器人激光雷达扫描出来的当前位置的地图,请自行判断机器人当前的位置和地图中哪一个位置近似,点击上面2D Pose estimation按钮,在地图中单击,并指定方向。
然后单击2D Nav Goal按钮选择目标位置和方向,地图上将会出现规划的路径,机器人将会按照路径行进。
如果你想在到达目的地之前,停止机器人,请重新设置起点。