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 应用程序发送位置估计信息。
更多信息
- XRCE - DDS(PX4 - ROS 2/DDS 桥接):用于连接到 ROS 2 的 PX4 中间件。