用实体Turtlebot3机器人导航 [待校准@1262]
概述
本教程展示了如何在物理Turtlebot 3机器人上使用ROS 2Nav2控制和导航Turtlebot 3。在完成本教程之前,强烈建议您完成 入门 ,尤其是如果您是ROS和Nav2的新手。 [待校准@1263]
本教程可能需要大约1小时才能完成。这取决于您对ROS,机器人的经验以及您拥有的计算机系统。 [待校准@1264]
要求
你必须安装Nav2,turtlebot3。如果你没有安装它们,请遵循 入门 。 [待校准@1265]
Tutorial Steps
0-设置环境变量
Run the following commands first whenever you open a new terminal during this tutorial.
source /opt/ros/<ros2-distro>/setup.bash
export TURTLEBOT3_MODEL=waffle
1-运行 Turtlebot 3 [校准@小鱼]
You will need to launch your robot's interface,
ros2 launch turtlebot3_bringup robot.launch.py use_sim_time:=False
2-LaunchNav2 [待校准@1273]
你需要有一张用来导航Turtlebot3的环境地图,或者用SLAM动态创建一个。 [校准@greg]
In case you are interested, there is a use case tutorial which shows how to use Nav2 with SLAM. Nav2 with SLAM
Required files:
your-map.map
[待校准@1277]
your-map.yaml
[待校准@1278]
参数``<your_map>.yaml`` 是我们想提供给Nav2的地图的配置文件。在这种情况下,它包含地图分辨率值、障碍物和自由空间的阈值以及地图文件的路径。您需要确保这些值是正确的。更多关于map.yaml文件的信息可以在 ` <http://wiki.ros.org/map_server>`_ 找到。 [校准@greg]
启动Nav2。如果设置autostart:= False,则需要单击RViz中的启动按钮来初始化节点。确保 use_sim time 设置为False,因为我们想使用系统时间而不是Gazebo的时间模拟时间。 [校准@greg]
ros2 launch nav2_bringup bringup_launch.py use_sim_time:=False autostart:=False map:=/path/to/your-map.yaml
[待校准@1281]
注意: 不要忘记将your/ path/to/your-map.yaml change更改为your-map.yaml文件的实际路径。 [待校准@1282]
3-LaunchRVIZ [待校准@1283]
使用预定义的配置文件启动RVIZ。 [待校准@1284]
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
[待校准@1285]
现在,你应该在Rviz的画面中心看到一个Turtlebot 3机器人模型的影子。如果将auto_start参数设置为了false,请单击启动按钮 (左下方)。然后,地图应该在RViz里显示出来了。 [校准@greg]
4-初始化Turtlebot3位置 [待校准@1287]
首先,找到机器人在地图上的位置。检查你的机器人在房间里的位置。 [待校准@1288]
在RViz中设置机器人位姿。单击2D位姿估计按钮并点击机器人在地图上的位置。绿色箭头的方向是Turtlebot的朝向。 [校准@greg]
Now, the 3D model of Turtlebot should move to that location. A small error in the estimated location is tolerable.
5-发送一个目标位姿 [校准@greg]
在地图上为Turtlebot选择一个目标位置。你可以使用Nav2 Goal或GoalTool按钮向Turtlebot3 发送一个目标位置和目标朝向。 [校准@greg]
注意: Nav2Goal按钮使用ROS 2的Action发送目标,而GoalTool是将目标通过主题发布。 [校准@greg]
一旦你确定了目标位姿,Nav2将会找到一个全局路径,并开始在地图上导航机器人。 [校准@greg]
现在,你可以看到Turtlebot3朝着房间里的目标位置移动。请看下面的视频。 [校准@greg]