Skip to content

Dev

高速路 requested to merge dev into main

标题

feat(stamp_relay): 新增基于墙钟的端到端延迟测量方案

背景

原始 header.stamp 方案经三轮实测验证不可用:

  1. 时间基准不一致:bag 中 header.stamp 为仿真时间,Node B 为墙钟
  2. --clock 与 bag 自带 /clock 冲突导致 Recv 非单调
  3. /clock 10Hz 分辨率不足,无法测量几十 ms 延迟

方案

在回放时刻重新注入时间戳: Node A (ros2 bag play) → stamp_relay.py (重写 header.stamp 为墙钟) → /stamped/ → Node B (记录接收墙钟) → Delay = Recv - Send

依赖:Node A/B 已通过 chrony 同步(误差 < 1ms)

变更内容

  • 新增 stamp_relay.py:转发节点
  • 修改 timestamp_recorder.py:订阅 /stamped/...,延迟有效性保护
  • 新增 stamp_all_launches.py:launch 转换工具
  • 新增 benchmark_stamp.sh:自动化测试脚本

测试

执行 ./benchmark_stamp.sh 1 对数据集 3 进行测试,/left_camera/image_raw/compressed 延迟从 5.66ms 降至 2.60ms,P99 从 91.71ms 降至 5.60ms。

回滚

保留 launch 文件 .bak 备份,可快速恢复原始配置。

Review 要点

  • stamp_relay.py QoS 解析逻辑是否正确
  • timestamp_recorder.py 时间偏差阈值 3600s 是否合理
  • benchmark_stamp.sh 路径配置是否适配实际环境
Edited by 高速路

Merge request reports