中间件与驱动
Eclipse Cyclone DDS
厂商/来源:
Eclipse Foundation
核心功能:
“机器人的神经末梢”。它是 ROS 2 (Robot Operating System 2) 默认的底层通信中间件,没有它,现在的自动驾驶小车一步都走不动。
| 适用场景 | 多机器人协同 (Swarm)、自动驾驶激光雷达数据分发、毫秒级实时控制系统 |
| 架构支持 | 全架构 (Linux/Windows/macOS/QNX/VxWorks) |
| 核心机制 | 去中心化 (Brokerless):不同于 MQTT 需要一个 Broker 中转,DDS 是点对点 (P2P) 通信。设备 A 直接发给设备 B。没有单点故障,延迟极低。 |
| 对接情报 | QoS (服务质量):这是它比 TCP/UDP 强的地方。你可以配置 Reliability (必须送到 vs 尽力而为) 和 Durability (后上线的设备能否收到历史数据)。 |
| 避坑指南 | [组播风暴] 1. WiFi 瘫痪:DDS 默认使用 UDP 组播 (Multicast) 发现设备。在工业 WiFi 环境下,大量的组播包会瞬间塞满带宽,导致所有 AGV 趴窝。对策:在 cyclonedds.xml 配置文件中,关闭多播,显式配置 Unicast Discovery (单播发现),填入所有对端 IP。 2. 共享内存 (Shm):如果在同一台工控机内部通信(如感知进程发给规划进程),务必开启 Iceoryx (零拷贝) 插件,否则 CPU 会把时间都浪费在内存复制上。 |
| 推荐搭配 | [ROS 2 Humble] [自动驾驶域控制器] |