ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

智身科技-钢镚L1EDU_W(一)多传感器的时间同步问题

智身科技-钢镚L1EDU_W(一)多传感器的时间同步问题

智身科技-钢镚L1EDU_W(一)多传感器的时间同步问题

  • 一、平台与系统介绍
      • 机械狗 | 计算平台与系统版本
  • 二、传感器介绍
      • 1、以数据为例xinghulou01为例 | 机械狗传感器总表
  • 三、各个传感器的外参标定
      • 轮足机械狗 / 空间标定总表
  • 四、各个传感器的时间戳问题
      • 💡 延伸探讨:多传感器时间对齐到底在做什么?
        • 各传感器在 `xinghulou01` 数据中的处理逻辑

一、平台与系统介绍

机械狗 | 计算平台与系统版本

2026-11-04 通过机械狗 Wi-Fi 分别登录两台计算机,读取运行内核、设备树、已安装软件和厂家版本清单。

核查项感知 / 导航工控机 · Orin NX本体运动控制机 · RK3588用途与证据
平台与地址NVIDIA Jetson Orin NX 16 GB
192.168.234.234
Firefly AIO-3588SJD4 HDMI
192.168.234.1
NX 负责感知、导航和录制。RK 负责底盘控制、机体前视和网关。①②
板级标识P3767-0000 模块;设备树载板标识 P3768-0000rockchip,aio-3588sjd4
rockchip,rk3588
两块板均由正在运行的系统设备树识别。①②
CPU 与架构8 核 Cortex-A78AE · aarch648 核 Cortex-A76 / Cortex-A55 · aarch64两机均枚举 CPU 0–7。①②
内存16 GB 规格;系统可见 15.29 GiB系统可见 7.73 GiB可见内存取/proc/meminfo的MemTotal。①②
系统存储256.06 GB NVMe
YSNN5M3YT256CNNNN · 固件 SN13406
62.55 GB eMMC
Y1Y064 · 修订 0x0309000000000000
容量为整盘字节数换算的十进制 GB。①②
UbuntuUbuntu 22.04.5 LTSUbuntu 22.04.5 LTS两机均为 Jammy Jellyfish,取自/etc/os-release。①②
运行内核5.15.148-rt-tegra5.10.160-rt78-preemptuname -r;内核模块与驱动需分别匹配。①②
板级软件NVIDIA Jetson Linux / L4T R36.4.7Firefly / Rockchip 平台;板级镜像发行号未取得NX 已确认 L4T 与引导包版本,未取得独立的 JetPack 元包版本。①②
ROS 发行版ROS 2 HumbleROS 2 Humble安装目录/opt/ros/humble;两台均有 Humble 程序运行。①②
ROS 通信rmw_zenoh_cpp0.1.8 · Domain 24rmw_zenoh_cpp0.1.8 · 路由进程运行NX 在 Domain 24 收到本体dog_task发布的机型。①②③
录包与存储rosbag20.15.16 · MCAP 插件 0.15.16rosbag20.15.16 · 默认存储插件xinghulou01在 NX 侧使用 MCAP;此处列本次在机版本。①②
系统运行库Python 3.10.12 · chrony 4.2Python 3.10.12 · chrony 4.2Python 取系统解释器;chrony 取已安装包。①②
GPU 计算库CUDA Toolkit 12.6.11
cuDNN 9.3.0.75
—NX 安装包版本;CUDA Runtime 为 12.6.68。①②
机型代码XGWHSPD由dog_task发布高速轮足机型代码来自/robot_type;整机铭牌商品型号未读取。③

传感器、部件固件和采集驱动见「设备与固件」。两块板分别部署的运动控制、导航、SLAM 等版本见「厂家与ROS软件」。

二、传感器介绍

1、以数据为例xinghulou01为例 | 机械狗传感器总表

2026-11-02 17:24:25-17:30:33 (北京时间) | 完整录制 367.787 秒 · 6 个原始 MCAP 分片 · ROS 2 Humble / CDR

比较项激光雷达雷达内置 IMU机体前视相机GNSS 接收机RealSense D435i(本次未录制)
设备与类型Livox Mid-360
三维激光雷达
Mid-360 内置六轴惯性测量单元
三轴陀螺仪 + 三轴加速度计
机体前置可见光相机
本次记录单路彩色图像,型号待确认
六分 GNSS 定位 / 定向接收机
配套资料型号 LK1220D,实物型号待核
Intel RealSense D435i
主动红外双目 RGB-D 相机,内置六轴 IMU
测量内容目标在雷达系中的三维位置、回波强度及逐点相对时间三个轴的角速度和线加速度相机视野内的场景纹理及颜色地理位置、地速与航迹方向、天线基线航向和俯仰彩色、左右红外、逐像素深度;自身三轴角速度和加速度
数据用途估计扫描间运动,构建三维点云地图描述快速转动与振动,本次作为相对时间参考跟踪图像特征,估计相邻帧之间的相机转动给出室外位置与航向约束,并提供 UTC 解算历元RGB-D 感知、立体视觉与视觉惯性融合
ROS 2 话题/front_lidar/front_lidar/imu/front_camera/image_compressed/rtk_pvh/d435i/下各图像与 IMU 话题
完整名称见「D435i 通道」
ROS 2 消息类型sensor_msgs/msg/PointCloud2sensor_msgs/msg/Imusensor_msgs/msg/CompressedImagerobots_dog_msgs/msg/UniRtkPvhsensor_msgs/msg/Image
sensor_msgs/msg/CameraInfo
sensor_msgs/msg/Imu
header.frame_idlivox_framelivox_framecamera_framegps_link各光学通道与 IMU 使用独立 frame_id
已知发布节点/livox_lidar_publisher/livox_lidar_publisher/ecal2ros2(图像桥接)/sixents_gps_driver/d435i(realsense2_camera_node)
主要接口 / 数据形态以太网 UDP 输入;ROS 聚合点云同一雷达的 IMU 数据通道;独立 ROS 消息JPEG 压缩图像;3,677 张均为 1920 × 1080,解码为 RGB历史接口/dev/ttyTHS3,460800 baud;定位、航向合在一个 ROS 消息中实机 USB 2.x / 480 Mbit/s;图像配置为 640 × 480
名义频率(Hz)10200101010 图像各 15;原始陀螺 / 加速度各 200
实测平均频率(Hz)10.000199.9989.9979.744未录制,无法计算
实读消息数3,67873,5583,6773,5840
本次已知限制原始逐点字段名timestamp;物理扫描起点仍为条件判断全段姿态四元数恒为单位四元数;线加速度单位待核曝光事件与底层驱动待核;未建立硬触发证据本段全部位置解为单点定位,定位精度未用外部真值检验本包无 D435i 图像或惯性测量;安装外参与主机时间映射待核
派生包时间处理使用原时间。+8 ms 候选改善不足使用原时间,作为参考每个图像 header 提前 43 ms,使用派生包时额外时偏设为 0保留原始 header 及两个 UTC 历元无 D435i 校正量;前视 -43 ms 仅用于机体前视相机

三、各个传感器的外参标定

轮足机械狗 / 空间标定总表

核查截至 2026-11-04。矩阵行按源系到目标系换算点坐标;杆臂行按 B 到 A 描述测量方向。
按“状态”筛选已有、待验证与待补充项目。5G 天线用于通信,不纳入本表的定位外参。

状态空间关系起点或源系终点或目标系现有依据待办及使用条件矩阵编号数据来源
待补充RTK 主天线杆臂机身参考原点 B后主天线相位中心 Agps_link仅为定位消息帧名。CAD 标记是天线的外壳位置。在 B 的前、左、上三轴测出 B 到 A 的分量。用 RTK 做位置精度评估时优先补此项。—实机坐标系核查
待补充RTK 双天线安装角后主至前从的基线机身前向固定航向解的基线长度中位数约 0.303 m,配置中heading_flag为 1。测两相位中心在机体系中的坐标,求基线方向。核对接收机航向改正值,再用独立方位验证。—固定航向解记录、FAST-LIO 配置
候选待验证雷达到当前 D435ilivox_frameD435i 左目、深度、RGB、右目及本体已有 5 组候选值,共用一个假设:厂家左红外光学系与当前官方左目重合。核对设备、左右目和整流旋转。用同步点云与左目图像验证近远目标,必要时重标一组雷达与 D435i 的安装外参。C1-C5OTA、D435i 内部 TF、候选外参
条件性缺项底盘中央 IMU 安装底盘 IMU 物理参考系base_link尚无可核实的机身安装变换;雷达imu_front与底盘中央 IMU 属不同设备。仅在使用底盘 IMU 数据时,先确认数据源及消息帧,再测安装姿态与原点偏移。—机体 IMU 配置与实机核查
厂家明列前置彩色相机到雷达camera_framelivox_frameOTA 明列camera_front_to_lidar_front。历史点云投影支持该方向。使用新采集的同步帧核验边缘投影,重点看转弯及近距离目标。O1OTA 标定、四帧投影核查
厂家明列雷达到雷达内置 IMUlivox_frameimu_front(标定名称)OTA 给出单位旋转和三维平移。点云与实时 IMU 消息都标作livox_frame。确认算法读入的坐标系和驱动是否已处理偏移,避免重复应用。O2OTA 标定、实时消息头
厂家明列雷达内置 IMU 到机身imu_frontbase_linkOTA 明列imu_front_to_base。另一定位配置使用与之互逆的矩阵。使用前核对矩阵乘法方向与实际加载项,量取机身原点做安装复核。O3OTA 标定、定位配置核查
可计算雷达到机身livox_framebase_link由雷达到 IMU、IMU 到机身的两段矩阵组合,可与定位配置比对。继承 O2、O3 的安装核查。D1O3 × O2
可计算前置彩色相机到机身camera_framebase_link沿相机、雷达、雷达 IMU、机身的坐标链组合。继承 O1-O3 的安装核查。D2O3 × O2 × O1
可计算雷达到厂家左红外livox_frame厂家左红外光学系厂家/rs_ir_left/compressed和/front_lidar都有相对同一标定基准的 R、T。若应用于当前 D435i,须完成 C1-C5 共用的左目对应核验。D3OTA 中两组逐话题 R、T
内部 TF 已有D435i 相机与 IMU 内部各 D435i 子坐标系各自父坐标系历史录包读出 15 条静态 TF。左 IR 与深度重合,左右光心距约 50.054 mm。更换设备或驱动配置后复读 TF。对精度有要求时,另做双目与 RGB-D 对齐验收。I01-I1511 月 2 日 xinghulou01 录包/tf_static

统计单位为上表的空间关系组。一个候选组包含 5 个派生矩阵,一个内部 TF 组包含 15 条记录变换。

厂家明列可计算内部 TF 已有候选待验证待补充条件性缺项
331121

TF 是 ROS 中用来表示和查询“两个坐标系之间是什么位置、什么朝向”的机制,名字来自 Transform(坐标变换)。它回答的是:同一个点,换一个坐标系来看,坐标是多少?

拿你机械狗上的 MID-360 举例。假设雷达装在机身原点正前方 20 cm,两者的轴方向完全一致。雷达看到一个点在自己正前方 1 m,那么这个点在雷达坐标系里是 (1.0, 0, 0),在机身坐标系里就是 (1.2, 0, 0)。如果雷达安装时还有倾角,换算时就要同时考虑旋转和平移。这里的 20 cm 只是举例

四、各个传感器的时间戳问题

xinghulou01的四路header.stamp都采用 Unix 纪元形式。做视觉对齐时,参考轴是雷达自带 IMU 的消息时间。前视相机的 3,677 张图像统一提前 43 ms;雷达、IMU 和 GNSS 保留原时间。四路都能显示成北京时间,但尚未证明它们的物理采样时刻都在同一个 GNSS 硬件时钟上。

💡 科普:什么是 Unix 纪元?
Unix 纪元(Unix Epoch)是计算机系统中用来记录时间的一种通用标准。它定义为协调世界时(UTC)1970 年 1 月 1 日 00:00:00。

简单来说,它记录的是“从那个时间点起,到现在一共过去了多少秒”。例如,在 ROS 2 的数据中,时间戳通常以秒(sec)和纳秒(nanosec)的形式存储,它们本质上都是基于 Unix 纪元的绝对时间。

为什么使用它?因为它是一个全球统一的绝对时间,不受地球时区(如东八区)和夏令时的影响,非常方便计算机在不同设备、不同传感器之间进行精确的时间对齐和运算。我们在表格中看到的“北京时间”,只是用代码在这个绝对时间戳上统一加上 8 小时转换显示出来的结果,其底层存储的依然是绝对数值。

传感器原包header.stamp视觉对齐后header.stampNX 记录时间log_time
Mid-360 雷达17:24:25.66568741717:24:25.66568741717:24:25.770388203
雷达自带 IMU17:24:25.72805901317:24:25.72805901317:24:25.730681641
前视相机17:24:25.72200000017:24:25.67900000017:24:25.739604912
GNSS17:24:25.76400000017:24:25.76400000017:24:25.817918552

💡 延伸探讨:多传感器时间对齐到底在做什么?

很多人在处理多传感器数据时会产生疑问:为什么只对齐相机的?其他的不需要对齐吗?对齐是指所有传感器都在同一瞬间采集吗?

答案是:不需要让四个传感器在同一物理瞬间采集。我们真正需要的是,当机械狗在快速转弯时,能够准确找到“这张图像曝光的前后”以及“这帧雷达扫描期间”,IMU 和 GNSS 分别测到了什么。

要做到这一点,必须区分两个概念:时间校正与时间关联。

  1. 时间校正(Time Correction):解决的是“这条测量应该放在时间轴的哪里”。
    • 例如:前视相机第一张图的原始时间是17:24:25.722。根据相机与 IMU 观察到的转动,整段图像提前 43 ms 后,两者的运动特征对应得更好。因此,这张图按17:24:25.679与 IMU 关联。这 43 ms 是运动验证得到的相对校正量,其实际物理曝光时刻仍未独立测定。
  2. 时间关联(Time Association):解决的是“这个时刻前后有哪些观测”。
    • 例如:一帧雷达扫描持续约 100 ms,而 IMU 大约每 5 ms 采一次。我们需要取的是实际扫描起止窗口内的全部 IMU 样本,再加上两端的相邻样本。这些样本本来就应该有不同的时间戳。

因此,四路传感器都需要进行检查和关联,只是本次只有相机有足够证据去修改时间戳。

各传感器在xinghulou01数据中的处理逻辑
传感器xinghulou01目前怎么处理为什么这么做
雷达自带 IMU选作相对时间参考轴其他传感器的运动相对它来比较。选它作参考,并不代表它已经对准了绝对的 UTC 时间。
前视相机每张图的时间戳减 43 ms在独立留出的 488 个运动区间中,相机与 IMU 的角速度相关系数由0.927提高到了0.993,强有力地支持了这项校正。
Mid-360 雷达保留扫描时间和逐点相对时间,按实际扫描窗口关联 IMU已确认雷达和 IMU 来自同一台 Livox,但本次数据未验证出一个稳定、值得写入的雷达偏移量。保留原值不等于证明偏移为零。
GNSS保留接收机解算时间,按原值参与包内关联转弯数据支持 GNSS 与 IMU 按原值对应;如果单独给 GNSS 加减 18 秒,会导致明显错开。但它相对外部真实 UTC 的绝对误差仍未验明。

📝 结论表述:
就这份数据而言,准确的表述是:以雷达 IMU 为参考,已校正前视相机的相对运动时延;雷达和 GNSS 沿用原时间做工程关联。
四路数据可以联合使用,但并未验收到“四个传感器在同一物理时钟上达到毫秒级同步”的绝对状态。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进