R
Member
TF 偶尔跳变,定位和导航跟着抖,先别急着调滤波参数,很可能是多节点时钟没对齐。ROS2 里每个节点的时间来源不一致,TF 的时间戳就会对不上,表现就是坐标系偶尔跳一下。
排查顺序:第一,确认各节点用的是系统时间还是仿真时间,use_sim_time 混用是最常见的坑,仿真和实机节点跑在同一网络里尤其容易中招;第二,看时钟同步方式,NTP 对一般场景够用,对高频 TF 建议看 PTP 或硬件同步的残差;第三,查 TF 发布频率和缓存时间,发布频率不一致时,旧 TF 和新 TF 交替出现,看起来就是跳变。
还有一个验证办法:把 TF 数据录下来离线回放,对比各节点时间戳的偏差曲线,偏差是固定偏移还是随机抖动,处理方法完全不同。固定偏移调时间源,随机抖动查网络延迟和负载。你们多机或多节点场景下,时钟同步一般做到什么精度才够用?
排查顺序:第一,确认各节点用的是系统时间还是仿真时间,use_sim_time 混用是最常见的坑,仿真和实机节点跑在同一网络里尤其容易中招;第二,看时钟同步方式,NTP 对一般场景够用,对高频 TF 建议看 PTP 或硬件同步的残差;第三,查 TF 发布频率和缓存时间,发布频率不一致时,旧 TF 和新 TF 交替出现,看起来就是跳变。
还有一个验证办法:把 TF 数据录下来离线回放,对比各节点时间戳的偏差曲线,偏差是固定偏移还是随机抖动,处理方法完全不同。固定偏移调时间源,随机抖动查网络延迟和负载。你们多机或多节点场景下,时钟同步一般做到什么精度才够用?