图 16-4 · 离线联调数据流:带钟回放的四小步
本图回答的问题:要让 rviz2 看着"历史三维场景",play、/clock、rviz、Time 面板怎么串起来?
1
带钟回放
play --clock --loop
~40Hz /clock
2
视图认钟
rviz2 -p use_sim_time:=true
3
Time 面板
Panels→Add→Time
4
加图层
LaserScan·TF·Image
rviz2 订阅的历史话题(与 /clock 同处回放时间轴)
/scan · LaserScan 面板
/tf · 变换树面板
/path · 轨迹面板
图像话题 · Image
rviz 按 Display 绘制
stamp 走 /clock
原时序重建
Topic 按包内容选
再生发布
ros2 topic delay /scan
必须是带 header 的话题
抽样回放流验证
正值且很小
✅ 时钟对齐
Time 面板随回放增长
负值 / 无 header
❌ 时间错位
/chatter 报 no header · 换 /scan /odom
漏开关的另一症状:TF LookupException 满屏(now=今天 · stamp=昨天)
✅ 结论:play --clock + use_sim_time 两开关都开,rviz 才进入"历史时空"
⚠️ 风险:漏开关 TF LookupException · delay 别用无 header 的 /chatter
🔍 验证:04 节 4 双开关 + Time 面板 + topic delay /scan
EXP-16 · rosbag2 数据录制与回放