Micro XFCE-DDS安装
设置 Micro XRCE-DDS Agent和Client
为了使 ROS 2 与 PX4 通信,uXRCE-DDS Client必须在 PX4 上运行,并连接到配套计算机 RDK X5 Module上运行的Micro XRCE-DDS Agent。
设置代理
代理可以通过多种方式安装到配套计算机上。下面我们将展示如何从源代码构建“独立”代理,并连接到在 PX4 模拟器上运行的客户端。
要设置并启动代理:
-
打开一个终端。
-
输入以下命令从源获取并构建代理:
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
代理现在正在运行,但在我们启动 PX4(下一步)之前您不会看到太多内容。
信息
您可以让代理在此终端中运行!请注意,每个连接通道只允许一个代理。
启动客户端
PX4模拟器自动启动uXRCE-DDS客户端,连接到本地主机的UDP端口8888。
启动模拟器(和客户端):
代理和客户端现在正在运行,它们应该连接。
PX4 启动并运行时, PX4 终端会显示NuttShell/PX4 系统控制台的输出。代理连接后,输出应包含INFO
创建数据写入器的消息:
...
INFO [uxrce_dds_client] synchronized with time offset 1675929429203524us
INFO [uxrce_dds_client] successfully created rt/fmu/out/failsafe_flags data writer, topic id: 83
INFO [uxrce_dds_client] successfully created rt/fmu/out/sensor_combined data writer, topic id: 168
INFO [uxrce_dds_client] successfully created rt/fmu/out/timesync_status data writer, topic id: 188
...
Micro XRCE-DDS 代理终端也应该开始显示输出,因为在 DDS 网络中创建了等效主题:
...
[1675929445.268957] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0x00000001, publisher_id: 0x0DA(3), participant_id: 0x001(1)
[1675929445.269521] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0x00000001, datawriter_id: 0x0DA(5), publisher_id: 0x0DA(3)
[1675929445.270412] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x00000001, topic_id: 0x0DF(2), participant_id: 0x001(1)
...