Skip to content

快速入门

本文档将带你完成 Nav2 二进制包的安装,并在 Gazebo 仿真器中操控一台仿真的 TurtleBot 3 进行导航。

注意:其他情况(例如从源码构建或使用其他类型的机器人),请参阅构建说明(build-instructions)。

警告:本指南是 TurtleBot 3 说明的简化版本。如果你打算在本文提供的最小示例之外继续使用这款机器人,强烈建议遵循官方 TurtleBot 3 手册。

Jazzy 引入了新的现代 Gazebo 仿真器,取代了 Gazebo Classic。因此,对于 Jazzy 及更新版本,安装包和安装说明略有不同,以拉取相应的软件包。

  1. 按照官方文档安装 ROS 2 二进制包

  2. 加载你的 ROS 2 安装以设置环境:

    Terminal window
    source /opt/ros/<ros2-distro>/setup.bash
  3. 使用你操作系统的包管理器安装 Nav2 软件包:

    Terminal window
    sudo apt install ros-$ROS_DISTRO-navigation2
    sudo apt install ros-$ROS_DISTRO-nav2-bringup
  4. 安装 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
  1. 在你的图形界面(GUI)中打开一个终端

  2. 设置关键环境变量,其中部分仅 Iron 及更早版本需要:

    Terminal window
    source /opt/ros/<ros2-distro>/setup.bash
    export TURTLEBOT3_MODEL=waffle # Iron and older only with Gazebo Classic
    export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/$ROS_DISTRO/share/turtlebot3_gazebo/models # Iron and older only with Gazebo Classic
  3. 在同一个终端中运行:

    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-not-started gazebo_turtlebot1

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

    RViz 过渡到 Active 状态的初始外观

启动后,机器人最初不知道自己的位置。默认情况下,Nav2 会等待你给它一个近似起始位置。查看 Gazebo 世界中机器人的位置,然后在地图上找到对应位置。点击 RViz 中的「2D Pose Estimate」按钮,在地图上点击该位置以设置初始位姿,并拖动鼠标设定朝向。

如果你到目前为止都使用默认设置,机器人看起来大致如下:

TurtleBot 的近似起始位置

如果你没有把位置设置得完全准确,也没关系。Nav2 会在导航过程中修正位置。如果你愿意,也可以再次点击「2D Pose Estimate」按钮重试。

一旦你设置了初始位姿,坐标变换树(transform tree)就完整了,Nav2 将完全激活并准备就绪。你现在应该能看到机器人和粒子云(particle cloud)。

Nav2 已就绪。RViz 中显示了坐标变换与代价地图。

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

在 RViz 中设置目标位姿

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

Navigation2 与 TurtleBot 3 演示