使用实体Turtlebot 3导航
概述
本教程展示了如何使用ROS 2 Nav2在物理Turtlebot 3机器人上控制和导航。在完成本教程之前,强烈推荐完成 开始使用,特别是如果你对ROS和Nav2还不熟悉的话。
完成本教程可能需要大约1小时。这取决于您对ROS、机器人的经验以及您所拥有的计算机系统。
教程步骤
0- 设置环境变量
在本教程中,每次打开新的终端时,请首先运行以下命令。
source /opt/ros/<ros2-distro>/setup.bash
export TURTLEBOT3_MODEL=waffle
2- 启动Nav2
您需要拥有一个Turtlebot 3导航的环境地图,或者使用SLAM实时创建一个。
如果你感兴趣,这里有一个用例教程展示了如何使用带有SLAM的Nav2。(SLAM)在制图时导航。
所需文件:
your-map.map
your-map.yaml
<your_map>.yaml
是我们要提供给Nav2的地图的配置文件。在这种情况下,它包含地图分辨率值、障碍物和自由空间的阈值以及地图文件的位置。你需要确保这些值是正确的。关于map.yaml的更多信息可以在`这里 <http://wiki.ros.org/map_server>`_ 找到。
启动Nav2。如果你设置了autostart:=False,你需要在RViz中点击开始按钮来初始化节点。确保`use_sim_time`被设置为**False**,因为我们希望使用系统时间而不是来自Gazebo的仿真时间。
ros2 launch nav2_bringup bringup_launch.py use_sim_time:=False autostart:=False map:=/path/to/your-map.yaml
注意: 别忘了将**/path/to/your-map.yaml**更改为your-map.yaml文件的实际路径。
3- 启动RVIZ
使用预定义的配置文件启动RVIZ。
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/rviz/nav2_default_view.rviz
现在,在Rviz的绘图中心,你应该看到Turtlebot 3机器人模型的一个阴影。如果你将auto_start参数设置为false,请点击开始按钮(左下角)。然后,地图应该出现在RViz中。
4- 初始化Turtlebot 3的位置
首先,找到机器人在地图上的位置。查看你的机器人在房间中的位置。
在RViz中设置机器人的姿态。点击2D位姿估计按钮,然后在地图上指定机器人的位置。绿色箭头的方向表示Turtlebot的方向。
现在,Turtlebot的3D模型应该移动到指定的位置。对于估计位置的小误差是可以容忍的。
5- 发送目标姿态
在地图上选择Turtlebot的目标位置。您可以使用“Nav2 Goal”或“GoalTool”按钮向Turtlebot 3发送目标位置和目标方向。
注意:Nav2目标按钮使用ROS 2 Action发送目标,而GoalTool将目标发布到一个话题中。
一旦您定义了目标姿态,Nav2将找到全局路径并开始在地图上导航机器人。
现在,您可以看到Turtlebot 3向房间内的目标位置移动。请参阅下面的视频。