# 快速 DDS 安装
eProsima Fast DDS (打开新窗口) 是对象管理集团(OMG)数据分发服务(DDS)规范和实时发布订阅(RTPS)协议的 C++ 实现。
快速 DDS 支持 RTPS/DDS 接口,允许 PX4 uORB 主题与参与相同 DDS 域的板外组件(包括机器人和模拟器工具)共享。特别是,Fast DDS 是机器人操作系统 2(ROS 2)的默认中间件实现,对于将 PX4 与 ROS2 集成至关重要。
本主题介绍如何安装快速 DDS 和 Fast-RTPS-Gen 用于 PX4 构建系统和 microRTPS 桥接器。
备注
如果您已安装 ROS 2 Dashing(Ubuntu 18.04)或 ROS 2 Foxy(Ubuntu 20.04),则无需安装 Fast DDS,因为它已随默认的 基础
或 桌面
通过 ros-<distro>-rmw-fastrtps
软件包。这意味着您只需安装 Fast-RTPS-Gen 并为您的 ROS 2 环境提供源代码 (source /opt/ros/<distro>/setup.bash
),以便能够编译 rtps
PX4-Autopilot 代码库中的目标。
对于 ROS2 银河系及以上,必须安装 rmw
通过 适切
使用 apt install ros-galactic-rmw-fastrtps
因为 Galactic 及以上版本的默认中间件是 CycloneDDS,而 FastDDS 中间件不是默认安装的。
TIP
Fast DDS 并非 PX4 Autopilot 的必要组件,只有在计划将 PX4 Autopilot 与 Fast RTPS/DDS 参与者连接时才应安装。ROS 2 节点就是一个例子,不过如上所述,Fast DDS 中间件和 C++ 实现默认安装在 ROS 2 Foxy 及以下版本上。
备注
Fast DDS 以前的名称是 FastRTPS(在 2.0.0 版中更改了名称,因为它现在包含完整的 DDS 实现,而不仅仅是 RTPS 线协议)。
# 先决条件
eProsima Fast DDS 需要使用以下软件包
备注
在撰写本文时,您需要安装 从源头 为
- Ubuntu 18.04: Fast RTPS 1.8.4(或更高版本)和 Fast-RTPS-Gen 1.0.4(非更高版本!)。
- Ubuntu 20.04: Fast DDS 2.0.2(或更高版本)和 Fast-RTPS-Gen 1.0.4(非更高版本!)。
TIP
请记住(再次重申),如果您不使用 ROS 2,只是想利用非 ROS2 DDS 网络和应用程序,您才需要安装 Fast DDS。如果您已经安装了 ROS 2(并且 rmw-fasrtps
作为默认中间件),可以跳转到 快速-RTPS-Gen 生成和安装.
# Java
从 IDL 代码生成工具构建和使用 eProsima 的 RTPS/DDS 时需要 Java。 Fast-RTPS-Gen. Java JDK 11 (打开新窗口) 建议通过 Ubuntu 开发环境.
# Foonathan 记忆
要构建 Fast DDS,您需要安装 Foonathan Memory 依赖项。
Git 克隆 https://github.com/eProsima/foonathan_memory_vendor.git
CD Foonathan_memory_vendor
mkdir 构建 &&; CD 构建 cmake ..
cmake --build . --目标 安装
备注
如果最后一步失败,请尝试使用适当的用户权限运行该命令 (苏都
).
# 从源安装
# 快速 DDS
从 Github 克隆项目:
$ Git clone --recursive https://github.com/eProsima/Fast-DDS.git -b v2.0.2 ~/FastDDS-2.0.2 $ CD ~/FastDDS-2.0.2 $ mkdir 构建 &&; CD 构建
如果您使用的是 Linux,请执行
$ cmake -DTHIRDPARTY=开启 - 安全=关于 ..
$ 生产 -j$(nproc --all)
$ 苏都 生产 安装
这将把快速 DDS 安装到 /usr/local
支持安全通信。如果需要安装到自定义位置,可以使用: -DCMAKE_INSTALL_PREFIX=<path>;
.
# 编译选项
在调用 CMake:
-dcompile_examples=on
:编译示例-dperformance_tests=on
:编译性能测试
# Fast-RTPS-Gen
Fast-RTPS-Gen 是快速 RTPS (DDS) IDL 代码生成工具。它应在 Fast RTPS (DDS) 之后安装,并确保 fastrtpsgen
应用程序在您的 路径
.您可以向 其中 fastrtpsgen
.
然后克隆 Fast-RTPS-Gen 1.0.4:
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git -b v1.0.4 ~/Fast-RTPS-Gen \ && cd ~/Fast-RTPS-Gen/gradle/wrapper
然后,将 gradle-wrapper.properties 文件中的 gradle 发行版修改为 gradle-6.8.3,这样 distributionUrl 文件就会变成如下所示:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
现在运行以下命令
cd ~/Fast-RTPS-Gen ./gradlew assemble &&sudo env "PATH=$PATH" ./gradlew install
# 从二进制文件安装
备注
虽然有二进制文件,但考虑到二进制文件可能不包含所需的组件和依赖项,我们建议从源代码开始构建和安装代码。
的最新二进制版本 eProsima Fast DDS 可从 公司网站 (打开新窗口).
有关如何操作的文档,请点击此处: 在 Linux 上从二进制文件安装 (打开新窗口) 和 从二进制文件在 Windows 上安装 (打开新窗口) (eProsima Fast DDS 官方文件)
# 环境变量
fastrtpsgen_dir
:所在的根文件夹 eProsima Fast-RTPS-Gen 通常设置为/usr/local
是默认的安装目录。如果用户在gradle install
步骤时,也必须将该变量设置为同一目录。否则,代码生成步骤以及随后的rtps
PX4 中的目标会失败。
# 更多信息
更多安装信息可在官方 eProsima Fast DDS 文献资料 (打开新窗口) (本专题即源于此):
- 从源安装
- 从二进制文件安装