使用物理 Turtlebot 3 进行导航

概述

本教程介绍如何使用物理 Turtlebot 3 机器人上的 ROS 2 Nav2 控制和导航 Turtlebot 3。 在完成本教程之前,强烈建议您先完成 入门指南,特别是如果您是 ROS 和 Nav2 新手。

本教程可能需要大约 1 小时才能完成。 这取决于您对 ROS、机器人的经验以及您拥有的计算机系统。

要求

您必须安装 Nav2、Turtlebot3。 如果您尚未安装它们,请按照 入门指南 操作。

教程步骤

0- 设置环境变量

在本教程中,每当您打开新终端时,请先运行以下命令。

  • source /opt/ros/<ros2-distro>/setup.bash

  • export TURTLEBOT3_MODEL=waffle

1- 启动 Turtlebot 3

您需要启动机器人的界面,

ros2 launch turtlebot3_bringup robot.launch.py  use_sim_time:=False

3- 启动 RVIZ

使用预定义的配置文件启动 RVIZ。

ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/rviz/nav2_default_view.rviz

现在,您应该在 Rviz 中的绘图中心看到 Turtlebot 3 机器人模型的阴影。 如果将 auto_start 参数设置为 false,请单击“开始”按钮(左下角)。 然后,地图应该出现在 RViz 中。

../../_images/rviz_after_launch_view.png

首先,在地图上找到机器人的位置。检查您的机器人在房间中的位置。

在 RViz 中设置机器人的姿势。 单击 2D Pose Estimate 按钮并在地图上指向机器人的位置。 绿色箭头的方向是 Turtlebot 的方向。

Set initial pose in RViz

现在,Turtlebot 的 3D 模型应该移动到该位置。 估计位置的小错误是可以容忍的。

5- 发送目标姿势

在地图上为 Turtlebot 选择一个目标位置。 您可以使用 Nav2 GoalGoalTool 按钮向 Turtlebot 3 发送目标位置和目标方向。

注意:Nav2 目标按钮使用 ROS 2 Action 发送目标,GoalTool 将目标发布到主题。

Send goal pose in RViz

一旦定义了目标姿势,Nav2 将找到一条全局路径并开始在地图上导航机器人。

Robot navigating in RViz

现在,您可以看到 Turtlebot 3 向房间中的目标位置移动。请观看下面的视频。