本仓库记录 FAST-LIVO2 的 ROS1 实现、状态估计、LiDAR 概率体素地图和稀疏直接视觉更新。
代码基线(2026-08-01) 文档已按
/Users/yangchengshuai/Documents/Github/SLAM/repo/core/FAST-LIVO2的main@0d2c0346107b75b59934975adec9a6eeeb913c64审查。请先阅读00-代码基线审查报告.md。报告区分“当前源码实现”“教学推导”和“未实现设想”,并列出每篇文档的可信度。
- 平台:ROS1/catkin,不是 ROS2。
- 节点:单节点
laserMapping,可执行程序fastlivo_mapping。 - 状态:19 维误差状态
[δθ, δp, δ(inv_exposure), δv, δbg, δba, δg],SO(3) 右乘扰动。 - 调度:LIVO 下按图像时刻切分点云,串行执行 IMU 传播 → LIO → VIO。
- LiDAR 地图:
unordered_map<VOXEL_LOCATION, VoxelOctoTree*>概率体素八叉树;没有 ikd-tree。 - 视觉地图:独立的
unordered_map<VOXEL_LOCATION, VOXEL_POINTS*> feat_map,不是与 LiDAR 共用同一个容器。 - 法向量更新:
updateReferencePatch()在主线程同步采用通过门控的 LiDAR 平面法向量;没有后台法向量优化线程。
00-代码基线审查报告.md:代码事实基线、逐篇结论、已知实现风险。00-快速导航指南.md:按主题与可信度阅读。00-文档审查清单.md:审查状态与后续维护检查项。
07-局部地图结构和几何构建与更新.md13-激光雷达测量模型.md体素地图数据结构详解-v2.md:优先于旧版。体素地图数据结构详解.md:历史版本。重匹配机制rematch_num详解.md
08-视觉地图点概念、生成与更新.md09-参考图像块更新方法及效果.md10-法向量优化的背景和仿射变换概念.md11-仿射变换求解及最小化光度误差.md12-法向量优化问题推导.md14-视觉测量模型--视觉地图点的选择.mdVIO更新流程关键问题解答.md
99-系统可视化图表集合.md图表/【课件】*.pdf
- 本 README 与
00-代码基线审查报告.md。 02、05、06:先理解运行时序。04:理解 19 维传播和右扰动。07、13、体素 v2、rematch_num:理解 LiDAR IEKF 与地图。08、14、09、10、11、12:理解视觉检索、warp 和光度 IEKF。99:回看经过校准的流程图。
| 主题 | 文件/函数 |
|---|---|
| 构建与入口 | CMakeLists.txt、src/main.cpp |
| 主循环与同步 | src/LIVMapper.cpp:run()、sync_packages() |
| IMU 与去畸变 | src/IMU_Processing.cpp:IMU_init()、UndistortPcl() |
| 状态定义 | include/common_lib.h:StatesGroup |
| LiDAR 地图/IEKF | src/voxel_map.cpp:StateEstimation()、BuildResidualListOMP() |
| 视觉流程 | src/vio.cpp:processFrame()、retrieveFromVisualSparseMap()、updateState() |
本次审查覆盖 20 篇 Markdown。PDF 课件未做逐页 OCR 与公式审查。没有数据集回放证据的耗时、ATE、召回率和“提升百分比”不视为已验证事实。