# 快速 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 中的目标会失败。

# 更多信息