当前位置: 首页 > article >正文

ros2 humble 安装 navigation2

安装 Nav2 包:

在安装 ROS 2 的 navigation2 软件包时,你需要将 替换为你安装的 ROS 2 版本的名称(如 foxy, galactic, humble 等)。因此,正确的命令格式为:

sudo apt install ros-<ros2-distro>-navigation2

具体示例
如果你使用的是 humble 版本的 ROS 2,那么命令应为:

sudo apt install ros-humble-navigation2

在这里插入图片描述

sudo apt install ros-<ros2-distro>-nav2-bringup

在这里插入图片描述

为 Gazebo 安装演示机器人(Turtlebot):

对于Jazzy 及更新版本,请安装 Gazebo Modern 的 Turtlebot 3 和 4 包。它应该会自动安装nav2_bringup:

sudo apt install ros-<ros2-distro>-nav2-minimal-tb*

对于Iron 及更早版本,请安装适用于 Gazebo Classic 的 Turtlebot 3 软件包:

sudo apt install ros-<ros2-distro>-turtlebot3-gazebo

示例:

sudo apt install ros-humble-turtlebot3-gazebo

在这里插入图片描述

运行示例

在 GUI 中启动终端

设置关键环境变量,其中一些仅适用于 Iron 及更早版本:

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/<ros2-distro>/share/turtlebot3_gazebo/models # Iron and older only with Gazebo Classic

示例:

source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=waffle  # Iron and older only with Gazebo Classic
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models # Iron and older only with Gazebo Classic

在同一个终端中运行:

ros2 launch nav2_bringup tb3_simulation_launch.py headless:=False

headless默认为 true;如果没有设置为 false,则不会启动 gzclient(3d 视图)。

在这里插入图片描述
此启动文件将在模拟世界中启动带有 AMCL 定位器的 Nav2。它还将启动机器人状态发布器以提供变换、带有 Turtlebot3 URDF 的 Gazebo 实例和 RVIZ。

如果一切正常启动,您将看到如下所示的 RViz 和 Gazebo GUI(这是 Gazebo Classic,但您在现代 Gazebo 上看到的几乎完全相同):

导航

启动后,机器人最初不知道自己在哪里。默认情况下,Nav2 会等待您为其提供一个大致的起始位置。查看机器人在 Gazebo 世界中的位置,并在地图上找到该位置。通过单击 RViz 中的“2D Pose Estimate”按钮,然后在该位置的地图上向下单击来设置初始姿势。您可以通过从向下单击处向前拖动来设置方向。

如果您到目前为止都使用默认设置,那么机器人应该大致看起来像这样。

在这里插入图片描述
如果您没有准确定位,也没关系。Nav2 会在导航过程中优化位置。如果您愿意,也可以单击“2D 姿势估计”按钮,然后重试。

设置初始姿势后,变换树将完成,Nav2 将完全激活并准备就绪。现在您应该可以看到机器人和粒子云。

在这里插入图片描述
现在观看机器人前进!

在这里插入图片描述
在这里插入图片描述

安装示例完成


http://www.kler.cn/a/403052.html

相关文章:

  • day06(单片机高级)PCB设计
  • OpenCV双目立体视觉重建
  • 真题-桂城2018年六年级
  • 掌握 Spring 事务管理:深入理解 @Transactional 注解
  • CSS布局学习2
  • 组会 | 大语言模型 + LoRA
  • 用pyspark把kafka主题数据经过etl导入另一个主题中的有关报错
  • 基于yolov8、yolov5的玉米病害检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • OpenCV自学系列(2)——核心操作(core operations)
  • 07架构面试题
  • 概率论之常见分布与matlab绘图
  • 如何更改手机GPS定位
  • 机器学习 AdaBoost 算法
  • 使用Python推送FLV流
  • 《Vue零基础教程》(1)Vue简介
  • C# AutoMapper 10个常用方法总结
  • Spring Boot 项目 myblog 整理
  • 智能购物时代:AI在电商平台的革命性应用
  • 针对AI增强图像大规模鲁棒性测试的数据集
  • 15分钟学 Go 实战项目六 :统计分析工具项目(30000字完整例子)
  • ssl证书,以 Nginx 为例
  • 如何构建高效的接口自动化测试框架?
  • Halcon 分割之区域生长法
  • 拓展Git相关知识(⭐版控工具⭐)
  • 量化交易系统开发-实时行情自动化交易-3.4.3.3.期货市场深度数据
  • Golang语言整合jwt+gin框架实现token