241 lines
8.5 KiB
Plaintext
241 lines
8.5 KiB
Plaintext
LiDAR、双天线 RTK、IMU 标定数据说明
|
||
====================================
|
||
|
||
文档日期:2026-07-23
|
||
配套代码仓库:calibration
|
||
标定目标:求解 3D LiDAR 到后轮轴中心车体系的外参 T_body_lidar。
|
||
|
||
|
||
一、重要说明
|
||
------------
|
||
|
||
1. 三批数据的记录格式和用途并不完全相同。export 是每站多帧的完整解码数据,prepared 是从中每站选一帧并配好 RTK 车体位姿后的标定输入。
|
||
2. 第一批(data1)、第二批(data2)目前上传的是已经从原始 dlog 数据以及导出的 NPZ 数据。
|
||
3. data4 保留了完整逐站 LiDAR dlog 和独立 RTK/IMU rscap,可以从原始记录开始复现。
|
||
4. 每一个站点采集 LiDAR 点云时车辆均静止,因此当前 LiDAR-RTK 标定没有使用 IMU进行点云运动畸变校正。
|
||
5. data4 中的 IMU 数据保持在 IMU 原始传感器坐标系;当前流程只解析、关联和保存 IMU,没有求解 IMU 外参。
|
||
6. 不要修改站点目录名称、prepared 中 station_*.npz 的顺序或 manifest。B 文件中的运动对索引依赖这些顺序。
|
||
|
||
|
||
二、目录结构
|
||
----------------------
|
||
|
||
LiDAR_RTK_calibration_data/
|
||
数据说明.txt
|
||
data1/
|
||
raw/
|
||
export/
|
||
prepared/
|
||
data2/
|
||
raw/
|
||
export/
|
||
prepared/
|
||
data4/
|
||
raw/
|
||
RTKIMUraw/
|
||
prepared/
|
||
combined/(三传感器混合后的数据,data1、2没有IMU的数据。)
|
||
说明:
|
||
|
||
- data1/export 和 data2/export 是从逐站 dlog 导出的数据。raw 是完整原始数据。
|
||
- data1/prepared 和 data2/prepared 是每站选择一帧并重建 RTK 车体位姿后的标定输入。
|
||
- data4/raw 是完整原始数据,能够重新生成 export、parsed、combined 和 prepared。
|
||
它们可以由 raw 重新生成。
|
||
|
||
|
||
三、第一批数据(data1)
|
||
-----------------------
|
||
|
||
1. 数据范围
|
||
|
||
- 静止站点数量:38 站。
|
||
- 站点编号:01~38。
|
||
- 传感器:3D LiDAR + 双天线 RTK。
|
||
- 不包含 IMU。
|
||
- 记录格式:旧式逐站 dlog 中同时记录 LiDAR 和 GPS-POST-Z;当前云盘包从已导出的 NPZ 开始。
|
||
|
||
2. RTK 特点
|
||
|
||
- 实际 RTK 记录约 10 秒一条,并非预期的 10 Hz。
|
||
- 每站有效 RTK 样本较少,部分站点约 1~11 个有效样本。
|
||
- 因车辆在每站静止,仍可对站内 RTK 样本做均值并构造站点位姿;但时间同步精度和航向统计能力弱于第二批。
|
||
|
||
3. 当前用途
|
||
|
||
- 第一批只作为辅助复核数据。
|
||
- 不作为当前部署外参的主要求解数据。
|
||
- 不应把第一批写成严格独立的“验证集”,因为 RTK 过于稀疏,且它和第二批的场景、采集流程相近。
|
||
|
||
4. 上传内容
|
||
|
||
data1/export/
|
||
|
||
- 当前文件数约 803。
|
||
- 当前大小约 0.088 GB(约 90 MB)。
|
||
- 含逐站导出的 LiDAR NPZ、RTK sidecar、manifest 和质量报告。
|
||
|
||
data1/prepared/
|
||
|
||
- 当前文件数约 118。
|
||
- 当前大小约 0.049 GB(约 50 MB)。
|
||
- 核心内容包括:
|
||
frames_all/station_*.npz
|
||
body_poses_rear_gga_raw_rear_to_front.csv
|
||
station_summary.csv
|
||
manifest.json
|
||
|
||
|
||
四、第二批数据(data2)
|
||
-----------------------
|
||
|
||
1. 数据范围
|
||
|
||
- 静止站点数量:38 站。
|
||
- 原始站点编号:39~76。
|
||
- prepared 中重新顺序编号为 station_01~station_38。
|
||
- 传感器:3D LiDAR + 双天线 RTK。
|
||
- 不包含 IMU。
|
||
- 记录格式与第一批相同,但 RTK 采样正常且明显更密集。
|
||
|
||
2. RTK 特点
|
||
|
||
- 每站约有 125~412 个有效 RTK 样本。
|
||
- 已使用 fix 4/fix 5 和有效 heading 进行筛选。
|
||
- 站内 heading 圆标准差上限使用 0.5°,本批 38 站均通过。
|
||
|
||
3. 当前用途
|
||
|
||
- 第二批是当前部署外参的主要求解数据。
|
||
- 使用 small_gicp 和 Open3D GICP 分别求 B,再做与 X 无关的质量筛选和跨后端一致性筛选。
|
||
- 当前部署外参主要由第二批求得,第一批仅辅助复核。
|
||
|
||
4. 上传内容
|
||
data2/export/
|
||
|
||
- 当前文件数约 759。
|
||
- 当前大小约 0.127 GB(约 130 MB)。
|
||
- 含逐站导出的 LiDAR NPZ、RTK 信息、manifest 和质量报告。
|
||
|
||
data2/prepared/
|
||
|
||
- 当前文件数约 82。
|
||
- 当前大小约 0.033 GB(约 34 MB)。
|
||
- 核心内容包括:
|
||
frames_all/station_*.npz
|
||
body_poses_rear_gga_raw_rear_to_front.csv
|
||
station_summary.csv
|
||
manifest.json
|
||
|
||
|
||
五、data4 数据
|
||
--------------
|
||
|
||
1. 数据范围
|
||
|
||
- 静止站点数量:34 站。
|
||
- 站点编号:001~034。
|
||
- 传感器:3D LiDAR + 双天线 RTK + IMU。
|
||
- LiDAR 位于每个站点自己的原始 dlog 中。
|
||
- RTK 和 IMU 位于独立 rscap 文件中,存放在 RTKIMUraw 目录。
|
||
- 原始目录共约 152 个文件,大小约 12.488 GB。
|
||
|
||
2. RTK/IMU 原始记录
|
||
|
||
- RTKIMUraw 中当前包含 3 个 RTK rscap 和 3 个 IMU rscap。
|
||
- 本次 34 站标定使用 20260723-051627 开始的长时间 RTK/IMU session。
|
||
- 该 session 的 capture 审计结果:
|
||
RTK:54256 个记录块,missing_chunks=0,bad_record_crc=0,干净关闭,footer CRC 有效。
|
||
IMU:26719 个记录块,missing_chunks=0,bad_record_crc=0,干净关闭,footer CRC 有效。
|
||
|
||
3. 时间关联与导出结果
|
||
|
||
处理顺序为:
|
||
|
||
统一时间轴
|
||
-> 分别解析 LiDAR、RTK、IMU
|
||
-> 按每个 LiDAR 帧关联最近有效 RTK
|
||
-> 保存 LiDAR 帧前后各 100 ms 的 IMU 窗口
|
||
-> 导出 combined NPZ
|
||
-> 每站选择一个静止帧生成 prepared
|
||
|
||
当前关联统计:
|
||
|
||
- LiDAR 帧总数:11678。
|
||
- 34 个站点全部有数据。
|
||
- rtk_valid:11678。
|
||
- heading_valid:11678。
|
||
- fixed RTK:11678。
|
||
- IMU 窗口非空:11678。
|
||
- RTK 最大允许关联时间差:150 ms。
|
||
- IMU 窗口:LiDAR 时刻前后各 100 ms。
|
||
|
||
时间基础:LiDAR 和串口 host UTC 用于当前关联;RTK GNSS 时间和 IMU 设备时间同时保留,供后续进一步建立精确时钟模型。
|
||
|
||
4. 当前用途
|
||
|
||
- data4 用于独立重新求解一套外参,并与历史第二批结果做跨批比较。
|
||
- data4 中 IMU 没有参与当前 LiDAR-RTK 外参求解。
|
||
- data4 结果与历史部署外参相差约 1.592 cm / 0.234°,但 data4 自身 AX 残差更高,因此当前仍保留历史第二批结果作为部署值。
|
||
|
||
如果已经上传 data4/raw,则 export、combined 和 parsed 均可以用代码重新生成。为了节省云盘空间,可只额外上传 prepared 和 calibration。
|
||
|
||
|
||
六、三批数据差异汇总
|
||
--------------------
|
||
|
||
第一批:
|
||
- 38 站,旧式 LiDAR+RTK dlog,无 IMU。
|
||
- RTK 极稀疏,约 10 秒一条。
|
||
- 当前上传从 export 开始。
|
||
- 只用于辅助复核。
|
||
|
||
第二批:
|
||
- 38 站,旧式 LiDAR+RTK dlog,无 IMU。
|
||
- RTK 密集、航向稳定。
|
||
- 当前上传从 export 开始。
|
||
- 用于当前部署外参的主要求解。
|
||
|
||
data4:
|
||
- 34 站,逐站 LiDAR dlog + 独立 RTK/IMU rscap。
|
||
- 保存完整原始数据,可从 raw 开始复现。
|
||
- 用于独立重算和跨批比较。
|
||
- IMU 只保存和关联,尚未完成 IMU 外参标定。
|
||
|
||
|
||
七、标定坐标与主要参数
|
||
----------------------
|
||
|
||
- 外参定义:T_body_lidar,将 LiDAR 原始点变换到后轮轴中心车体系。
|
||
- 车体系:x 向前,y 向左,z 向上。
|
||
- 手眼方程:A_ij X = X B_ij。
|
||
- A_ij:由 RTK 后轮轴中心位置和双天线 heading 构造;当前为 yaw-only 姿态。
|
||
- B_ij:由两个静止站点的原始 LiDAR 点云通过 GICP 求得。
|
||
- heading_offset_deg:21.226°(本车安装参数,不是通用常数)。
|
||
- 后天线在车体系杆臂:[ -0.320, -0.365, 0.620 ] m。(手量)
|
||
- 后轮轴中心离地高度:0.2335 m,用于地面约束;不是 LiDAR 离地高度。
|
||
|
||
|
||
八、数据使用注意事项
|
||
--------------------
|
||
|
||
1. data1、2 的manifest 中可能仍保留旧脚本生成的 train/validation 字段。这些字段是历史元数据;当前严谨流程将第二批用于求解、第一批用于辅助复核,不把同一批内部的小样本划分描述为高可信度验证集。
|
||
2. 不要使用已经变换到车体系的点云求 B,必须使用 NPZ 中的 points_raw。
|
||
3. 可视化时,frames_all 必须与生成 B 文件时的站点数量和顺序完全一致。
|
||
4. 模式 3(GICP B)本身已经错位时,应优先检查点云配准和场景退化;只有模式 3 正常而模式 4(X^-1 A X)系统性错位时,才优先检查 RTK A、坐标约定或外参 X。
|
||
5. 当前结果是工程标定结果,不是由全站仪或高精度标靶认证的绝对真值。
|
||
|
||
|
||
九、配套代码位置
|
||
----------------
|
||
|
||
本机代码仓库:
|
||
calibration
|
||
|
||
根 README.md 包含:
|
||
- 从原始数据/导出数据开始的完整复现流程;
|
||
- code、tools、run 中每个主要文件的职责;
|
||
- small_gicp、Open3D GICP、consensus B 的处理逻辑;
|
||
- AX=XB 与地面约束求 X 的方式;
|
||
- 残差、Hessian/条件数、bootstrap、跨批检查和 3D 可视化方法。
|
||
|