多台ubuntu主机在同局域网下人ros2话题通信
·
前提:安装好了ros2,两台电脑在同一局域网下
本人用于树莓派上安装设备驱动以及控制,解决算力不够问题,把数据传回到配置高的电脑上处理后发布到话题控制(还在测,目前通信成功)
修改DDS配置
这相当于给两台电脑设置了相同的“聊天频道”,确保它们能互相发现。
-
操作:在两台电脑的
~/.bashrc文件末尾添加export ROS_DOMAIN_ID=0(0-101均可,需一致),然后执行source ~/.bashrc生效。
操作完成后确保两台电脑以下参数保持一致
1、DDS中间件
echo $RMW_IMPLEMENTATION
输出为空(使用默认fastrtps)
默认为空,如果不为空需要统一
2、查看当前ROS_LOCALHOST_ONLY值
echo $ROS_LOCALHOST_ONLY
这个变量设置为1会强制所有通信只在本地回环(localhost)进行,导致无法跨网络通信,必须将其设置为0(或确保该变量未被设置)。
如果为1
# 临时修改为0(允许跨机器通信)
export ROS_LOCALHOST_ONLY=0
# 永久写入配置文件
echo 'export ROS_LOCALHOST_ONLY=0' >> ~/.bashrc
source ~/.bashrc
3、重启ros2服务
ros2 daemon stop
ros2 daemon start
测试
# 电脑A
ros2 run demo_nodes_cpp talker
# 电脑B
ros2 run demo_nodes_py listener
就能看到一台在发送一台在接收数据

同理其他话题数据也就互通

更多推荐

所有评论(0)