跳到主要内容

5.4.2 Navigation2

功能介绍

Nav2(Navigation2)是ROS2中自带的导航框架,旨在寻找一种安全的方式让移动机器人从A点移动到B点。Nav2也可以应用于其他机器人导航应用,例如动态点跟踪,在这个过程中需要完成动态路径规划、计算电机速度、避免障碍等。

SLAM建图介绍了如何运行SLAM算法进行建图,本章节介绍如何基于建立的地图使用Nav2进行导航。同样使用Gazebo在PC端创建虚拟环境和小车,使用Rviz2设置导航目的地,RDK运行Nav2程序导航。

支持平台

平台运行方式示例功能
RDK X3, RDK X3 ModuleUbuntu 20.04 (Foxy), Ubuntu 22.04 (Humble)PC端启动仿真环境,并在RDK启动导航功能,最后通过Rviz2展示导航效果
RDK X5, RDK X5 ModuleUbuntu 22.04 (Humble)PC端启动仿真环境,并在RDK启动导航功能,最后通过Rviz2展示导航效果
RDK S100, RDK S100PUbuntu 22.04 (Humble)PC端启动仿真环境,并在RDK启动导航功能,最后通过Rviz2展示导航效果

准备工作

RDK平台

  1. RDK已烧录好Ubuntu系统镜像。

  2. RDK已成功安装tros.b。

  3. tros.b成功安装后,安装Nav2。

# 配置tros.b环境
source /opt/tros/setup.bash
sudo apt update 
sudo apt install ros-${ROS_DISTRO}-navigation2
sudo apt install ros-${ROS_DISTRO}-nav2-bringup
注意

如果sudo apt update命令执行失败或报错,请查看常见问题章节的Q10: apt update 命令执行失败或报错如何处理?解决。

注意

如果sudo apt update命令执行失败或报错,请查看常见问题章节的Q6: apt update 命令执行失败或报错如何处理?解决。

  1. 和RDK在同一网段的PC,PC已安装Ubuntu系统、ROS2桌面版和仿真环境Gazebo,数据可视化工具Rviz2。
source /opt/ros/foxy/setup.bash

Ubuntu 20.04系统和ROS2 Foxy桌面版

PC的ROS2安装成功后安装Gazebo和Turtlebot3相关的功能包,安装方法为:

sudo apt-get install ros-${ROS_DISTRO}-gazebo-*
sudo apt install ros-${ROS_DISTRO}-turtlebot3*
sudo apt install ros-${ROS_DISTRO}-navigation2
sudo apt install ros-${ROS_DISTRO}-nav2-bringup

使用介绍

RDK平台

本章节介绍如何在PC端搭建仿真环境,以及进行导航目的地设置,RDK运行导航功能,并查看导航效果。

  1. PC端启动gazebo仿真环境
source /opt/ros/foxy/setup.bash
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
信息

如果启动失败,并且报错[ERROR] [gzclient-2]: process has died,请执行命令source /usr/share/gazebo/setup.sh后再启动。

仿真环境如下图所示:

  1. RDK启动导航功能
# 配置tros.b环境
source /opt/tros/setup.bash
ros2 launch nav2_bringup bringup_launch.py use_sim_time:=True map:=/opt/ros/foxy/share/nav2_bringup/maps/turtlebot3_world.yaml
  1. PC端启动Rviz2工具
# 配置tros.b环境
source /opt/tros/setup.bash
ros2 launch nav2_bringup rviz_launch.py

Rviz2效果如下图:

(1) 在Rviz2上设置机器人起始位置和方向

Rviz2启动后,机器人最初不知道它在哪里。默认情况下,Nav2会等待用户给机器人一个大致的起始位置。查看机器人在Gazebo中的位置,并在地图上找到该位置。通过点击Rviz2中的"2D Pose Estimate" 按钮,然后通过在地图上机器人预估的位置处点击来设置机器人初始位置 。可以通过向前拖动刚才单击的位置来设置机器人起始的移动方向。如下图所示:

一旦设置好了机器人的初始位置,就会完成坐标变换树,同时Nav2将会完全激活并准备就绪。这时就可以看到机器人和点云了。

(2) Rviz2设置目的地

点击 "Navigaton2 Goal" 按钮并选择一个目的地。

现在就可以看到机器人在移动了。

结果分析

导航效果如下图所示: