ROS2与Navigation2入门教程-开始使用Nav2
说明:
- 介绍如何完成Nav2二进制软件包的安装以及在Gazebo仿真软件中进行Turtelbot3仿真机器人导航等过程
安装Nav2
按照ROS官方文档的安装说明进行ROS 2二进制软件包安装。
使用Linux系统的软件包管理器安装Nav2软件包,命令为:
sudo apt install ros-<ros2-distro>-navigation2
sudo apt install ros-<ros2-distro>-nav2-bringup
- 安装Turtlebot3软件包,命令为:
sudo apt install ros-<ros2-distro>-turtlebot3*
运行示例
在Linux系统的GUI中打开一个终端。
设置关键环境变量,命令为:
source /opt/ros/<ros2-distro>/setup.bash
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/<ros2-distro>/share/turtlebot3_gazebo/models
如果是从源代码编译安装ROS 2的,或者ROS 2和Gazebo安装目录不是默认目录,则要改成相应的正确目录。
- 在该终端中运行以下命令:
ros2 launch nav2_bringup tb3_simulation_launch.py
对于ROS 2 Dashing Diademata或者更早的发行版,请使用nav2_simulation_launch.py启动文件。但是,建议使用最新的ROS 2长期支持(LST)发行版(即Foxy)以获得更好的稳定性和功能完整性。
这个启动文件会在turtlebot3_world仿真世界中启动带有AMCL定位程序的Nav2软件包。同时还会启动机器人状态发布者节点以提供坐标变换、一个含有Turtlebot3 URDF模型的Gazebo实例和RVIZ。
如果一切正常,就可以看到RViz和Gazebo GUI,如下所示:
- 单击RViz左下角的“启动(Startup)”按钮。这会让Nav2更改为活动(Active)状态。这样RViz应该会改变外观以显示该地图
导航
启动后,机器人最初并不知道自己在哪里。默认情况下,Nav2会等待用户给出机器人的一个大致起始位置。查看机器人在Gazebo仿真世界中的位置,并在地图上找到该位置。通过单击RViz中的“2D位置估计(2D Pose Estimate)”按钮然后在地图中机器人估计的位置处单击来设置机器人的初始位置。可以通过从刚才单击的位置向前拖动来设置机器人起始的移动方向。
目前为止如果使用的都是默认值,则该机器人应大致如下图所示:
如果设置的机器人位置不完全正确,那也没关系。Nav2在导航时会对位置进行优化。如果愿意,也可以再次单击“2D Pose Estimate”按钮并重新尝试设置机器人的初始位置。
一旦设置好机器人初始位置后,就会完成坐标变换树,且Nav2会完全激活并准备就绪。现在应该可以看到机器人和点云(见下图)。
接下来,单击“导航目标(Navigaton2 Goal)”按钮并选择一个目的地。这会调用BT导航仪(navigator)通过动作服务器到达该目标位置。可以通过在RViz左下角显示的Navigation 2 rviz插件暂停(取消)或重置该动作。
现在就可以看到机器人在移动了(如下图所示)。
参考:
https://navigation.ros.org/getting_started/index.html
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号