DDS不匹配
保持DDS一致
切换 RMW 实现为 Cyclone DDS(备选方案,有时候更友好)
如果你不想搞 XML 配置,或者 Fast DDS 一直表现不稳定,你可以试试换用 Cyclone DDS,它在多网络环境下的兼容性有时更好,而且配置相对简单。
步骤:
- 1.安装 Cyclone DDS(如尚未安装)在 Ubuntu 上可以通过 apt 安装,或者从源码编译。如果你用的是官方 ROS 2 安装方式,可以添加 Cyclone DDS 支持。
- 2.设置使用 Cyclone DDS 作为 RMW 实现
在运行节点前,设置环境变量:
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
- 1.(可选)配置 Cyclone DDS 使用特定网络
Cyclone DDS 也有类似的配置文件机制,如果你发现它也选错了网络,可以创建一个 Cyclone DDS 的配置文件,比如 cyclonedds.xml
,并通过环境变量指定:
export CYCLONEDDS_URI=file://$(pwd)/cyclonedds.xml
里面可以指定网络接口,例如:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CycloneDDS>
<Domain>
<General>
<Interfaces>
<NetworkInterface enable="true">192.168.1.100</NetworkInterface>
</Interfaces>
</General>
</Domain>
</CycloneDDS>
这样 Cyclone DDS 也只会使用你指定的网络接口。
域ID不对
echo $ROS_DOMAIN_ID ## 如果两台主机的的打印不一致,则需要配置为一样的
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容