Cartographer 是 Google 开发的开源 SLAM(同步定位与地图构建)算法,支持 2D 和 3D 环境下的实时建图,具有高精度、鲁棒性强和全局一致性好等特点。以下是其核心原理和典型应用场景的详细介绍:
一、核心原理
Cartographer 采用基于子图的 SLAM 框架,主要包含以下模块:
1. 前端:局部建图(Submap Construction)
- 扫描匹配(Scan Matching):
- 使用分支定界(Branch and Bound)算法快速找到激光点云的最优位姿,将当前帧与已有子图对齐。
- 支持多分辨率地图,兼顾精度和效率。
- 子图构建:
- 将连续的激光帧融合到一个 ** 子图(Submap)** 中,每个子图是局部一致的概率栅格地图(2D)或 TSDF 体素地图(3D)。
- 子图随新数据加入而不断更新,直到收敛后固定。