Skip to content

ROS 2

ROS 2 是一个功能强大的通用机器人库,可与 PX4 自动驾驶仪配合使用,以创建功能强大的无人机应用程序。

WARNING

提示 PX4 开发团队强烈建议您使用/迁移到这个版本的 ROS!

这是 ROS(机器人操作系统)的最新版本。 它对 ROS “1” 进行了显著改进,特别是能够与 PX4 进行更深入、更低延迟的集成。

ROS 受益于一个活跃的生态系统,开发者们在其中解决常见的机器人问题,并且还能使用为 Linux 编写的其他软件库。例如,它可用于 计算机视觉 解决方案。

ROS 2 能够与 PX4 进行深度集成,以至于您可以在 ROS 2 中创建与 PX4 内部模式难以区分的飞行模式,并能以高速率直接读取和写入内部 uORB 主题。尤其在需要低延迟的情况下,从伴随计算机进行控制和通信,或是利用 Linux 现有库,又或是编写新的高级飞行模式时,都推荐使用 ROS 2。

ROS 2 与 PX4 之间的通信使用实现了 XRCE - DDS 协议 的中间件。该中间件将 PX4 uORB 消息 公开为 ROS 2 消息和类型,从而有效地允许从 ROS 2 工作流程和节点直接访问 PX4。中间件使用 uORB 消息定义生成代码,对来自 PX4 的传入和传出消息进行序列化和反序列化处理。同样的消息定义也用于 ROS 2 应用程序中,以便对消息进行解析。

INFO

ROS 2 也可以使用 MAVROS 而非 XRCE - DDS 与 PX4 连接。此选项由 MAVROS 项目提供支持(此处不做文档说明)。

要有效地通过 XRCE - DDS 使用 ROS 2,在撰写本文时,您必须对 PX4 内部架构和惯例有一定的了解,因为它们与 ROS 所使用的有所不同。我们计划在不久的将来提供 ROS 2 API,用于封装 PX4 的功能特性,并举例说明其用法。

主题

本节的主要主题如下:

  • ROS 2 用户指南:以 PX4 为中心对 ROS 2 进行概述,涵盖安装、设置以及如何构建与 PX4 通信的 ROS 2 应用程序。
  • ROS 2 离线控制示例:一个 C++ 教程示例,展示如何从 ROS 2 节点在 离线模式 下进行位置控制。
  • ROS 2 多飞行器仿真:有关通过单个 ROS 2 代理连接到多个 PX4 仿真的说明。
  • PX4 ROS 2 接口库:一个 C++ 库,简化了从 ROS 2 与 PX4 的交互。可用于创建和注册使用 ROS2 编写的飞行模式,并从诸如视觉惯性里程计(VIO)系统等 ROS2 应用程序发送位置估计信息。

更多信息