193、多机通信与分布式部署:ROS2 DDS与gRPC在多机器人协同 193、多机通信与分布式部署:ROS2 DDS与gRPC在多机器人协同昨晚在实验室调三台机器人的协同搬运,折腾到凌晨两点。问题出在ROS2的DDS发现机制上——三台机器人在同一个Wi-Fi下,节点互相看不到。我一度以为是防火墙问题,后来发现是DDS的发现协议默认走多播,而实验室的AP禁用了多播。这种问题在仿真里永远遇不到,一上真机就现原形。今天就把多机通信这块的坑和解决方案捋一遍。先说结论:ROS2的DDS适合机器人内部的实时通信,但跨机器人、跨网段的场景,gRPC往往更省心。不是二选一,而是各司其职。DDS的发现机制:为什么三台机器人互相看不见ROS2默认用Fast DDS,节点启动时会通过UDP多播发送发现报文。同一台机器上没问题,因为回环接口支持多播。但跨机器时,如果交换机或AP禁用了多播,节点就永远发现不了对方。我当时排查的步骤是这样的:先ros2 node list看本机节点是否正常,再ros2 topic list看话题是否发布。本机一切正常,但另一台机器上的节点就是看不到。用tcpdump抓包,发现多播报文根本没发出去。解决办法有几个:方案一:指定单播发现。在fastdds.xml配置文件里,把发现协议改成SIMPLE,并手动指定对端IP。这个方案适合固定拓扑,比如三台机器人IP固定,直接写死。

相关新闻

最新新闻

RK3588联调实战指南:从串口日志到YOLOv8部署的排查全流程

RK3588联调实战指南:从串口日志到YOLOv8部署的排查全流程

联调是块硬骨头,特别是RK3588这种高集成度的SoC,CPU、GPU、NPU、ISP、各路外设全挤在一块板子上,任何一个环节出问题,现象都可能千奇百怪。我这段时间刚好在调一套基于RK3588的边缘计算节点,接了MIPI摄像头、激光雷达、…

2026/9/6 8:51:23
嵌入式固件工程化核心:启动流程、故障定位与OTA升级实战解析

嵌入式固件工程化核心:启动流程、故障定位与OTA升级实战解析

去年开始做嵌入式固件相关的付费专栏,本来只是想把手头的项目经验整理成体系,没想到反馈比预期热烈。尤其是“启动流程”“故障定位”“OTA升级”这三个方向,几乎每篇都有读者在评论区追问细节。这篇就把专栏的核心内容做一个相对完整的展开&…

2026/9/6 8:51:23
酒店智能化设计方案:核心架构、技术选型与落地实操指南

酒店智能化设计方案:核心架构、技术选型与落地实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 8:51:23
括号匹配算法实战:从栈原理到Python/Java完整解决方案

括号匹配算法实战:从栈原理到Python/Java完整解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 8:51:23
嵌入式固件开发核心解析:启动流程、故障定位与OTA升级

嵌入式固件开发核心解析:启动流程、故障定位与OTA升级

1. 专栏初衷与整体学习路径1.1 为什么要深耕这三块硬骨头做嵌入式固件开发这个行当,大家普遍有一个感受:跑起来容易,跑得稳难;调功能容易,查问题难;发一版容易,发到百万台设备上不出事难。很多工…

2026/9/6 8:51:23
基于HALCON和C#的印刷品套色检测系统设计与实现

基于HALCON和C#的印刷品套色检测系统设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 8:46:22