# 纯 LiDAR–IMU:标定流程与采集清单 **用途:** 现场怎么采合格数据(看完根目录 [README](../README.md) 后再看本文即可)。 算法命令与结果判读以 README 为准;改动史见 [`imu_lidar/CHANGELOG.md`](../imu_lidar/CHANGELOG.md)。 仅有激光雷达与 IMU、无 RTK/绝对位姿时的推荐采集与流程要点。 目标外参:`p_IMU = T_IMU_lidar · p_lidar`(`T_A_B` 表示把 B 系点变到 A 系)。 --- ## 1. 原则(先读) 1. **时间对齐优先**:时钟偏置未对准时,旋转与平移都不可信;正式数据用**设备时间戳**。 2. **先旋转,再平移**:旋转通常更稳;平面低速时竖直方向平移常常不可观。 3. **用连续运动**:停车多站适合 RTK 手眼,不适合作为纯 IMU 外参主流程。 4. **可观才交平移**:激励不够就只交旋转,不强交“假精确”六自由度。 5. **残差小 ≠ 标定对**:需叠点云、跨会话等独立验证。 相对运动模型: ```text A ≈ IMU 预积分相对运动(关键帧区间) B ≈ 雷达关键帧配准相对运动 R_A · R_X ≈ R_X · R_B → 先求旋转 完整模式且可观时再求平移 t ``` --- ## 2. 端到端流程(与现行代码一致) ```text 确认轴向 / 单位 / 时间语义 → 现场采集(首尾静止 + 低速多转弯;建议 ≥2 段独立会话) → 导出标准中间格式(imu.csv + lidar 会话目录) → 质检(时间 / IMU)不通过则停 → 粗估时间偏置 δt → 关键帧 → 配准得 B;完整 IMU 预积分得 A(旋转/速度/位移增量) → 加权旋转手眼得 R → 用 R 精修 δt,必要时重新组对再解 R(可交替数轮) → 联合精修 R 与常值陀螺零偏 → full_se3 且可观:再估重力、关键帧速度、时变零偏与平移 t → 写出 T / δt / summary → 叠点云 / 跨会话验证后交付 ``` | 步骤 | 现行模块 | 说明 | | --- | -------------------------------------------------------------------- | --------------------------------------- | | 质检 | `timestamp_audit` / `imu_audit` | 含静止段陀螺零偏初值 | | 时间 | `time_offset` | 模长相关粗估 + 有符号三轴精修 | | 运动对 | `keyframes` / `registration` / `imu_preintegration` / `motion_pairs` | 预积分始终算满;手眼先用旋转 | | 旋转 | `rotation_handeye` | 加权手眼 | | 精修 | `joint_optimizer` / `observability` | `rotation_only` 到旋转为止;`full_se3` 可观才碰平移 | 点云去畸变(`lidar_deskew`)可选;低速首轮可不依赖。 --- ## 3. 采集设计 ### 3.1 单趟会话结构 ```text 静止 20–30 s → 连续运动 3–8 min → 再静止 10–20 s ``` 运动优先:低速「8」字 / 左右圆;再补加减速直线。 要可靠竖直方向外参时,另加缓坡(约 3°~8°,有效长度优先 ≥20~30 m),或改用外测垂直尺寸先验。 ### 3.2 会话安排 | 会话 | 作用 | | ----- | ---------------------------------- | | A | 主标定 | | B | 独立验证(**同一场地**换一条不完全相同的路线即可,不参与求外参) | | C(可选) | 不同速度/路线,测稳定性 | 安装全程不得改动。多会话不要跨会话拼运动对。 ### 3.3 录制字段(原始,勿先做姿态融合) - IMU:设备时间、陀螺、加速度(建议同时留主机接收时间便于排查) - LiDAR:每帧起止时间(最好有包级/逐点时间)、原始点云 中间格式见 `[V1_数据格式.md](V1_数据格式.md)`。 --- ## 4. 现场 Checklist **出发前** - [ ] 安装固定;草图/卷尺粗测仅作参考,不当真值 - [ ] 单位与轴向确认;设备时间可写盘 - [ ] 结构化路线(墙/杆/路缘),避开空旷无特征区 - [ ] 存储与供电充足 **录制中** - [ ] 首尾静止;中间有明显左右转与加减速 - [ ] 不改安装、不切换时间源 - [ ] 记录会话 ID、天气、异常(急刹、掉包等) **当场快查** - [ ] IMU 静止段平稳,转弯时角速度明显 - [ ] 点云帧数/点数正常,无明显大面积丢帧 - [ ] 雷达与 IMU 时间覆盖同一时段 **回实验室** - [ ] 已导出中间格式并通过质检 - [ ] 本次目标:`rotation_only` 还是尝试 `full_se3` - [ ] 若要竖直方向:确认真有俯仰/高度激励,否则降级交付 --- ## 5. 精度预期 | 量 | 较现实范围 | 说明 | | ---------- | --------- | ---------------- | | 旋转 | 约 0.5°–2° | 最精确部分 | | 水平平移 | 数厘米~十几厘米 | 强依赖配准、激励与同步 | | 竖直 / 部分杠杆臂 | 往往更差甚至不可观 | 无高度激励时无法得出“精确 z” | 如果条件有限,优先交付:**可靠旋转 + δt + 可观的平移分量(若有)+ 明确限制说明**。 满足条件后的模式与成功标志见根目录 [`README.md`](../README.md) §0。 --- ## 6. 交付物建议 程序默认写出:`T_IMU_lidar.json`、`time_offset.json`、`summary.json`。 完整报告目录还可补充:可观性结论、跨会话对比、运动对质量表、限制说明(尤其竖直方向与时间同步方式)。 ```text 静止 + 激励录制(多会话) → 质检 → 估 δt → 关键帧 A/B → 先解 R → 精修 δt 与 R → 可观则求 t → 验证后交付 ```