20260808 HI13 + H32:LiDAR–IMU 标定现状与问题
数据:D:\data\calibration_usable_20260808
可用会话:sessions_v1_host_aligned(三优先窗)
当前结果目录:各窗 out_fixed_dt0/
清单:sessions_v1_host_aligned/calibration_manifest_fixed_dt0.json
车辆配置:config/vehicle_hi13_h32_20260808.yaml
约定外参:p_IMU = T_IMU_lidar · p_lidar
1. 一句话结论
旋转 + 主机桥接时间对齐可以冻结;平移(full_se3)尚不可正式交付。
三窗 rotation_only(δt=0)结果跨窗一致,不必因平移先验 Z 修正而重跑旋转。
2. 当前可用结果(out_fixed_dt0)
| 窗 |
状态 |
δt |
yaw (°) |
手眼 RMS (°) |
手眼对数 |
vs CAD prior |
priority_174005_174515 |
rotation_only_accepted |
0 |
≈90.00 |
0.62 |
1374 |
≈0.41° |
priority_174905_175450 |
同上 |
0 |
≈90.00 |
0.29 |
1182 |
≈0.47° |
priority_175910_180530 |
同上 |
0 |
≈90.01 |
0.79 |
789 |
≈0.38° |
- 跨窗旋转互差约 0.15°–0.47°(相对三窗均值 ≤0.26°)。
- 交付矩阵中 平移为 0(
translation_accepted=false)。
- CAD/安装平移先验只用于后续 SE3 / 校验,不写入本轮交付
T。
相对历史失败轮次
| 轮次 |
问题 |
结果 |
sessions_v1_aligned |
首帧强行对齐设备钟 |
三窗手眼失败,RMS ~9°–12° |
| 自由估 δt + signed refine |
窗3 δt 漂到 −0.48 s;窗2 yaw≈19° |
跨窗 yaw 矛盾(81°/19°/93°) |
| 本轮 fixed δt=0 |
主机桥接后冻结时间 |
三窗 yaw≈90°,可互证 |
3. 已澄清并写入配置的坐标系 / 先验
3.1 车体与传感器
- 车体:X 前 / Y 左 / Z 上;雷达与 IMU 安装在 X 正方向(后轮轴前方)。
- CAD 图纸可能画成 +X 朝后,那只是读图坐标系,不是车体真实轴。
- IMU:HI13 RFU(X 右 / Y 前 / Z 上),原始数据不做轴向重映射。
- 雷达 NPZ:假定与车体一致(X 前 / Y 左 / Z 上)。
3.2 安装量(translation_m)
| 传感器 |
X / Y(后轮轴中心) |
Z(离地) |
| IMU |
2.574 / 0.0365 m |
0.8925 + 0.294 = 1.1865 m |
| 雷达 |
2.522 / 0.00002 m |
相位中心实测 1.9165 m |
- 后轮轴中心离地:294 mm(Z 用离地高时加在 CAD 轴心高上)。
- 雷达相位中心以实测 1.9165 m 为准(不再用「CAD dZ + 63.5 mm」作为最终离地高)。
3.3 导出外参先验
R_IMU_lidar ≈ yaw 90°:[[0,-1,0],[1,0,0],[0,0,1]](软约束 σ=15°)。
t_IMU_lidar ≈ [0.0365, -0.0518, 0.730] m(相对 Z = 1.9165 − 1.1865)。
- 旋转先验未因 Z 修正改变;仅平移先验 Z 从旧值 0.8085 改为 0.730。
4. 现存问题清单
P1. IMU 预积分平移 Δp 不可用(阻塞正式平移)
- 现象:可视化模式 4 若用完整
X⁻¹ A X,橙/蓝点云常呈上下错层(Z 差米级~几十米)。
- 根因:加速度预积分缺少可靠重力/零偏处理,
t_A 尤其 Z 发散;不是旋转外参错了。
- 旁证:相对 GICP 的旋转残差中位约 0.16°;
|t_A| 中位却常 >1 m。
- 影响:
full_se3 / 依赖 IMU 位移的平移估计不可信。
- 缓解(已做):
visualize_pair_3d.py 对 rotation_only 默认模式 4 = R 共轭 + GICP 的 t_B(--mode4-translation gicp|imu|auto)。
P2. 平面运动导致竖直平移弱可观
- 三优先窗以水平转弯为主,缺少缓坡/俯仰激励。
- 流水线门控已给出
translation_accepted=false。
- 即使打开平移先验(σ≈5 cm),弱激励下结果易变成先验回显,不宜当标定成功。
P3. 时间偏移若再自由估计会被带偏(已规避,需保持)
- 主机 UTC 桥接(MSOP/IMU
HostReceiveUtc)后,两路已在同一时间轴,残差通常几十毫秒量级。
- 若再做有符号 δt 精修,会与错误/未收敛的 R 耦合,窗3 曾从约 −0.12 s 走到 −0.48 s。
- 现行做法:桥接会话使用
--fixed-time-offset-s 0 --no-signed-time-refine。
P4. 单窗低残差 ≠ 外参正确(历史教训)
- 自由 δt 轮次中,窗2 手眼 RMS 最低(~0.3°)但 yaw≈19°,与 CAD/其他窗差 60°+。
- 平面运动下 yaw 外参可出现多个能拟合
R_A R_X ≈ R_X R_B 的解。
- 必须做跨窗一致性 + 可视化叠点,不能只看单窗 RMS。
P5. 旋转软先验尚未做无先验对照
- 当前 σ=15°;笔记显示 Tsai 初值本身已接近(约 0.3°–1.1° RMS),不像纯先验硬拽。
- 仍缺一次:关闭先验或放大
sigma_deg 的对照,以排除「只是被拉到 90°」的疑虑。
P6. 环境/导入陷阱(工程)
- 本机若存在指向其他仓库的 editable 安装(如
Lidar-IMU),python tools\... 可能导入错误包。
visualize_pair_3d.py 已插入仓库根到 sys.path;长期仍建议在本仓库 pip install -e .。
P7. 文档与操作约定未完全同步(工程)
- README 需明确写清:host-bridge 后固定 δt=0、禁用 signed refine、rotation_only 可视化用法。
- 交付物目前缺一版「冻结的联合/中位 R + 使用说明」JSON/报告(旋转可交,平移明确不交)。
5. 不该做 / 可以做
| 动作 |
建议 |
| 因 Z 先验修正重跑三窗 rotation_only |
不必(R 未依赖新 t) |
正式交付 6-DOF / 信赖当前 Δp 估 t |
不要 |
试验性 full_se3(固定 R、δt=0、新 t 先验) |
可做,结果标「实验」 |
| 可视化验收模式 3 vs 4(gicp 平移) |
建议做 |
| 无先验 / 大 σ 旋转对照 |
建议做 |
冻结交付 R + δt=0 说明 |
建议做 |
| 补采缓坡或加强垂直尺寸约束后再估 t |
正式平移前需要 |
6. 建议下一步顺序
- 验收旋转:三窗抽转弯运动对,模式 3/4 叠点;可选无先验对照。
- 定稿旋转:三窗中位或联合手眼 → 交付
R_IMU_lidar +「δt=0(主机桥接)」说明;明确不交 t。
- 工程收尾:README 主机桥接配方;需要时再整理联合标定脚本入口。
- 平移(靠后):改善 IMU 位移模型或改用更可靠的位移观测 + 竖直激励后,再用新
t 先验跑 SE3。
7. 常用路径与命令
8. 问题优先级(跟踪用)
| ID |
严重度 |
状态 |
标题 |
| P1 |
高 |
未解决 |
IMU Δp 不可用,阻塞正式平移 |
| P2 |
高 |
未解决 |
平面运动,竖直 t 弱可观 |
| P3 |
高 |
已规避 |
自由 δt / signed refine 带偏(需保持冻结) |
| P4 |
中 |
已吸收教训 |
单窗低残差不可单独验收 |
| P5 |
中 |
待做 |
无旋转先验对照 |
| P6 |
低 |
部分修复 |
错误 imu_lidar 包导入 |
| P7 |
低 |
待做 |
README/交付物同步 |