待解决

ros2 dds中间件到底选哪个啊,fastdds cyclonedds iceoryx这些我都懵了

平常心
平常心
2026/06/23 19:21

最近接了个多机器人协同的活,6台AGV加2台机械臂,要跑ros2 humble。本来想直接用默认的fastdds完事,结果发现有些同行在用cyclonedds,还有人说大项目得上iceoryx?

我们这种跨厂家设备混跑的,延迟敏感但又不是毫秒级那种,主要怕丢包和带宽撑不住。带TLS安全那块默认配置真的够用吗,还是得自己折腾?有没有人实际项目里对比过这几个中间件的,别光贴官方benchmark数据,想听点踩坑的实际经验。

106 5

全部回复 (5)

小黄
小黄#1

cyclonedds配SHM用下来,话题多了CPU占用比fastdds低一截,实测过20+节点同时跑的时候差距挺明显。

2026/06/24 09:54
520
520#2

我们厂里30台AMR用的cyclonedds,跑了快一年没啥大问题,但前期调QoS调了俩礼拜,你得有心理准备。

2026/06/24 10:21
程强
程强#3

humble默认就fastdds,6台AGV加2机械臂这个规模真不用上iceoryx,那玩意儿是零拷贝用的,你又不是几百节点大集群,纯属给自己找事。 我们去年干过差不多体量的项目,12台移动设备混跑,最后定的cyclonedds。为啥换?fastdds在弱网下discovery那块容易抽风,节点一多就发现不全,调试现场被这玩意儿坑过好几次。cyclonedds用了一段时间稳得多,尤其是跨网段、wifi环境,丢包重连那块比fastdds皮实。 带宽这事你得看你话题频率,激光slam的点云话题如果原始数据往上怼那肯定撑不住,但正常项目都是先降频或者只传slam建图结果不是全量点云,这块卡好了几个dds都能扛。 TLS这事儿看你场景,工厂内网一般就走vpn了,dds层面真要开的话fastdds配起来比较啰嗦,cyclonedds配置相对直接点,参考它官方security那块文档一步步来就行,别图省事用默认的明文就跑。 有一坑提醒你:cyclonedds的xml配置里transport那块要选对,UDP的话要调UDP的发送接收buffer,不然大包会丢,默认参数偏小。我们当时没注意丢了一批数据查了半天才发现是这个。

2026/06/24 10:28
ltt1988
ltt1988#4

TLS那块默认是开的但证书没配,生产环境老老实实搞PKI,别省这个事。

2026/06/26 13:01
wang_yong
wang_yong#5

6台AGV加2机械臂这种规模,fastdds默认配置就够了吧,别折腾。

2026/07/04 08:22