ROS2与Navigation2入门教程-使用Turtlebot3物理机器人进行导航
说明:
- 介绍如何使用Turtlebot3物理机器人进行导航
概述:
- 本教程将会说明如何在Turtlebot3物理机器人上使用ROS 2的Nav2软件堆栈对Turtlebot3进行控制和导航
要求
- 必须先安装Nav2、Turtlebot3软件包。如果还没有安装这些软件包,请按照“开始使用Nav2”教程进行操作
具体步骤
- 设置环境变量
- 在进行本教程的过程中,每当打开一个新的终端时,首先需要运行以下命令来设置环境变量:
source /opt/ros/<ros2-distro>/setup.bash
export TURTLEBOT3_MODEL=waffle
如果是从源代码编译安装ROS 2的,则安装目录可能不同,需要对ROS 2安装目录下install/setup.bash脚本进行source。
启动Turtlebot3
ros2 launch turtlebot3_bringup robot.launch.py use_sim_time:=False
- 启动Nav2
- 启动Nav2所需文件:
your-map.map
your-map.yaml
文件<your_map>.yaml是用于对要提供给Nav2使用的地图的配置文件。在本示例中,该配置文件具有地图分辨率值、障碍物和自由空间的阈值以及地图文件位置。需要确保这些值都是正确的。可以在此处找到有关 map.yaml文件的更多信息。
启动Nav2。如果设置了autostart:=False,则需要在RViz中点击“启动(start)”按钮来初始化节点。请确保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更换成您的map.yaml文件的绝对路径。
启动RVIZ
- 使用一个预定义的配置文件来启动RVIZ,命令为:
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
现在,应该能在Rviz的绘图中心看到Turtlebot 3机器人模型的阴影。
如果将auto_start参数设置为false,请单击RVIZ左下角的“开始”按钮。
然后,地图应该就会出现在RViz中(如下图所示)。
初始化Turtlebot3机器人的位置
首先,找到机器人在该地图上的位置。检查您的机器人在房间中的具体位置。
在RViz中设置该机器人的位置。单击“2D位置估计(2D Pose Estimate)”按钮,并在地图上机器人所在位置出点击鼠标右键。绿色箭头的方向就是Turtlebot机器人的方向(朝向)。
- 现在,Turtlebot机器人的3D模型应该会移动至该位置。位置估计的小误差是可以容忍的。
发送目标位置
在地图上为Turtlebot机器人选择一个目标位置。可以使用“Navigation2 Goal”按钮或者GoalTool按钮向Turtlebot 3机器人发送一个目标位置和目标方向
“Navigation2 Goal”按钮使用ROS 2的动作来发送目标,而GoalTool则会将目标发布到一个话题上
- 一旦定义好了目标位置,Nav2软件堆栈就会发现一个全局路径并开始在地图上对该机器人进行导航。
- 现在,可以看到Turtlebot3机器人在房间中朝着目标位置向前移动。导航演示结果请观看这个视频
参考:
- https://navigation.ros.org/tutorials/docs/navigation2_on_real_turtlebot3.html
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号