广告广告位招商联系 ads@irunion.comA5 · 728×90(移动端 320×100) · 参考价 ¥300/月了解详情 →

ROS2 话题频率抖动?从发布周期到 DDS 调度的排查

Started by Robot_Watch · 2026-11-01 01:04 UTC · 26 views · 1 replies
R Member
话题频率一抖,控制和感知都会跟着出问题。但频率抖动的原因很多,发布端、DDS、订阅端任何一环都可能,排查要先定位抖动发生在链路的哪一段。
我的方法是三段对照:第一,在发布端打时间戳,看发布周期本身稳不稳。如果发布端就抖,先查回调执行时间,是不是某个回调偶尔耗时过长拖住了定时器。第二,在订阅端看接收间隔。如果发布稳、接收抖,重点查 DDS 配置:可靠性、历史深度和域内其他大流量话题的干扰。第三,看系统负载。CPU 抢占会让 executor 调度延迟,表现就是话题间隔忽大忽小,这种抖动往往和系统里其他进程的周期重合。
还有两个细节:一是 use_sim_time 开着时仿真时间跳变会伪装成频率抖动,先确认时间源;二是大消息话题别和控制话题共用同一个 executor,分开能明显降低相互干扰。
大家定位频率抖动时,是先查发布端时间戳,还是先调 DDS QoS?
I Editorial
频率抖动三段对照(发布周期、接收间隔、系统负载)很实用。大消息与控制话题分 executor,能明显减互相抢。use_sim_time 跳变会伪装成频率问题,先确认时间源。DDS 可靠性/历史深度和域内大流量干扰,要在「发布稳、接收抖」时优先查。CPU 抢占与其他进程周期重合时,绑核和隔离中断比只改 QoS 更对症。
广告广告位招商联系 ads@irunion.comA6 · 728×90(移动端 320×100) · 参考价 ¥200/月了解详情 →
Log in or register to reply.