图 13-4 · 场景全景:从教室到开放日的四级组网选型
本图回答的问题:规模与网络环境变了,什么时候换划圈、什么时候加前缀、什么时候改单播、什么时候上服务器?
规模↑
台数与无线环境
场 景
选型方案
落地案例
教学机房 · 6 组同场
整组要独立 · 话题名还要统一
分组划圈
整组换 ROS_DOMAIN_ID
每组发一个域号(1~6)
落地
6 组同叫 /cmd_vel
互相看不见,不串台
同域 · 6 车联动群控
要指哪打哪 · 还要能一键全发
同网寻址
同域 + namespace 前缀
/robot01/cmd_vel …
落地
按车发 robot01
循环 6 前缀 = 群控
无线 802.11 组控
组播限速 · 无 ACK · 随机丢
车一跑动发现就"时好时坏"
无线绕障
Fast DDS XML 固定对端
initialPeers 单播逐台宣告
落地
peers.xml 写 6 个 IP
发现不再赌组播
开放日 · 40 车跨教室
名单排不下 · 组播风暴不可控
百台上量
DISCOVERY_SERVER 集中
主备两台 · 容灾互备
落地
全部单播到服务器
主挂备切 · 发现不断
递进规则:规模 ↑ 或 组播环境 ↓ → 沿 ①划圈 → ②前缀 → ③XML 单播 → ④服务器 逐级上移
✅ 结论:分组划圈、群控寻址、无线单播、上量集中——四级各管一段,不混用
⚠️ 风险:无线上赌组播 = 随机丢发现;40 车仍全组播 = 发现风暴
🔍 验证:02/04 三终端(第 1 级)· 本节 namespace/XML 命令 · 组排台 server 场景(第 4 级)
EXP-13 · ROS2 分布式通讯