快速入门
本文档将带你完成 Nav2 二进制包的安装,并在 Gazebo 仿真器中操控一台仿真的 TurtleBot 3 进行导航。
注意:其他情况(例如从源码构建或使用其他类型的机器人),请参阅构建说明(build-instructions)。
警告:本指南是 TurtleBot 3 说明的简化版本。如果你打算在本文提供的最小示例之外继续使用这款机器人,强烈建议遵循官方 TurtleBot 3 手册。
安装(Installation)
Section titled “安装(Installation)”Jazzy 引入了新的现代 Gazebo 仿真器,取代了 Gazebo Classic。因此,对于 Jazzy 及更新版本,安装包和安装说明略有不同,以拉取相应的软件包。
-
按照官方文档安装 ROS 2 二进制包
-
加载你的 ROS 2 安装以设置环境:
Terminal window source /opt/ros/<ros2-distro>/setup.bash -
使用你操作系统的包管理器安装 Nav2 软件包:
Terminal window sudo apt install ros-$ROS_DISTRO-navigation2sudo apt install ros-$ROS_DISTRO-nav2-bringup -
安装 Gazebo 用的演示机器人(TurtleBot):
对于 Jazzy 及更新版本,安装用于 Gazebo Modern 的 TurtleBot 3 与 4 软件包。它应当随
nav2_bringup自动安装:Terminal window sudo apt install ros-$ROS_DISTRO-nav2-minimal-tb*对于 Iron 及更早版本,安装用于 Gazebo Classic 的 TurtleBot 3 软件包:
Terminal window sudo apt install ros-$ROS_DISTRO-turtlebot3-gazebo
运行示例(Running the Example)
Section titled “运行示例(Running the Example)”-
在你的图形界面(GUI)中打开一个终端
-
设置关键环境变量,其中部分仅 Iron 及更早版本需要:
Terminal window source /opt/ros/<ros2-distro>/setup.bashexport TURTLEBOT3_MODEL=waffle # Iron and older only with Gazebo Classicexport GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/$ROS_DISTRO/share/turtlebot3_gazebo/models # Iron and older only with Gazebo Classic -
在同一个终端中运行:
Terminal window ros2 launch nav2_bringup tb3_simulation_launch.py headless:=False注意:
headless默认为 true;如果未设置为 false,gzclient(3D 视图)将不会启动。该启动文件将在仿真世界中启动带 AMCL 定位器的 Nav2。它还会启动机器人状态发布器以提供坐标变换(transforms)、一个搭载 TurtleBot3 URDF 的 Gazebo 实例,以及 RViz。
如果一切启动正确,你会看到如下所示的 RViz 和 Gazebo 图形界面(这是 Gazebo Classic,但你在现代 Gazebo 中看到的基本相同):

-
如果没有自动启动,请点击 RViz 左下角的「Startup」按钮。这将使 Nav2 切换到 Active 状态。它的外观会随之变化,并显示出地图。

导航(Navigating)
Section titled “导航(Navigating)”启动后,机器人最初不知道自己的位置。默认情况下,Nav2 会等待你给它一个近似起始位置。查看 Gazebo 世界中机器人的位置,然后在地图上找到对应位置。点击 RViz 中的「2D Pose Estimate」按钮,在地图上点击该位置以设置初始位姿,并拖动鼠标设定朝向。
如果你到目前为止都使用默认设置,机器人看起来大致如下:

如果你没有把位置设置得完全准确,也没关系。Nav2 会在导航过程中修正位置。如果你愿意,也可以再次点击「2D Pose Estimate」按钮重试。
一旦你设置了初始位姿,坐标变换树(transform tree)就完整了,Nav2 将完全激活并准备就绪。你现在应该能看到机器人和粒子云(particle cloud)。

接下来,点击「Navigation2 Goal」按钮并选择一个目的地。这会通过动作服务器(action server)调用 BT 导航器前往该目标。你可以通过 Nav2 RViz 插件暂停(取消)或重置该动作。

现在,观看机器人出发吧!
