6.2 Micro XRCE-DDS
- 为了实现ROS2与PX4通信,需要在RDK X5 Module安装。
- v1.14版以上的PX4固件默认包含Micro XRCE-DDS。
- 若需要进行SITL开发,推荐在PC端安装。
为了使 ROS 2 与 PX4 通信,uXRCE-DDS Client必须在 PX4 上运行,并连接到配套计算机 RDK X5 Module上运行的Micro XRCE-DDS Agent。
Micro XRCE-DDS Client安装
PX4 uxrce_dds_client在构建时生成,并默认包含在 PX4 固件中,无需额外安装。
Micro XRCE-DDS Agent安装
Micro XRCE-DDS Agent 可以使用二进制包安装在配套计算机上,也可以从源代码构建和安装,或者在 ROS 2 工作区内构建和运行。所有这些方法都会获取与客户端通信所需的所有依赖项(例如 FastCDR)。
官方安装指南是 eProsima: micro XRCE-DDS 安装指南。本节总结了在创建这些文档期间使用 PX4 测试过的选项。
PX4 Micro XRCE-DDS Client 所基于的版本v2.x与最新的 Agent 版本不兼容v3.x。
从源代码安装独立版本
在 Ubuntu 上,你可以从源代码构建并使用以下命令安装 Agent 独立版本:
git clone -b v2.4.2 https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/
官方指南中的相应主题链接了各种构建配置选项,但这些选项尚未经过测试。
要启动代理并设置连接到模拟器上运行的 uXRCE-DDS 客户端:
MicroXRCEAgent udp4 -p 8888
从 Snap 包安装
使用以下命令从 Ubuntu 上的 snap 包安装:
sudo snap install micro-xrce-dds-agent --edge
要启动代理,并使用连接到模拟器上运行的 uXRCE-DDS 客户端的设置(请注意,命令名称与您在本地构建代理时的不同):
micro-xrce-dds-agent udp4 -p 8888
在撰写本文时, 从 snap 安装的稳定版本可以连接到 PX4,但在创建主题时会报错。使用--edge上面获取的开发版本可以正常工作。
在 ROS 2 工作区内构建/运行
可以在 ROS 2 工作区内构建和启动代理(或独立构建并从工作区启动)。您必须已经按照ROS 2 用户指南 > 安装 ROS 2 中的说明安装了 ROS 2。
此方法将使用 Agent 依赖项的现有 ROS 2 版本,例如fastcdr和fastdds。这大大加快了构建过程,但要求 Agent 依赖项版本与 ROS 2 版本匹配。
要在 ROS 中构建Agent:
-
为代理创建工作区目录:
mkdir -p ~/px4_ros_uxrce_dds_ws/src -
将 eProsima Micro-XRCE-DDS-Agent的源代码克隆到
/src目录(main默认克隆分支):cd ~/px4_ros_uxrce_dds_ws/src
git clone -b v2.4.2 https://github.com/eProsima/Micro-XRCE-DDS-Agent.git -
获取 ROS 2 开发环境,并使用以下命令编译工作区
colcon:source /opt/ros/humble/setup.bash
colcon build/src这将使用源工具链构建其下的所有文件夹。
要在工作区中运行Micro XRCE-DDS Agent: