0. 简介
定位模块是自动驾驶最核心的模块之一,定位又包括全局定位和局部定位,对于自动驾驶,其精度需要达到厘米级别。传统的AGV使用一类SLAM(simultaneous localization and mapping)的方法进行同时建图和定位,但是该方法实现代价高,难度大,难以应用到自动驾驶领域。自动驾驶车辆行驶速度快,距离远,环境复杂,使得SLAM的精度下降,同时远距离的行驶将导致实时构建的地图偏移过大。因此,如果在已有高精度的全局地图地图的情况下进行无人车的定位,将极大的简化该问题。
高精地图制作已经成为各大图商以及自动驾驶公司的付费服务内容,技术上相对保守,开放程度较低。
下图为Apollo的地图制作流程,从图中我们可以看到地图采集的第一步是点云拼接->底图的制成
点云地图的制作主要是把采集好的数据进行加工,我们采用激光雷达数据来进行点云地图的制作。因为激光雷达的扫描范围有限,因此我们需要逐帧把激光雷达的数据拼接起来,来获取整个街道的模型,这个过程也被称为点云注册。
目前有2种方法实现地图制作。
-
Autoware NDT mapping. 采用开源社区Autoware提供的NDT mapping可以实现点云的拼接,从而得到整个街道的三维模型。
-
各种离线SLAM建图方法。
- LOAM
- Cartographer
- hdl_graph_slam
- blam
- A-LOAM
- LeGO-LOAM
- LIO-mapping
- interactive_slam
高精地图是一种语义地图,概括地说,就是利用SLAM/SFM等算法融合多种传感器数据,构建高精度的三维点云地图,在点云地图上或者是图像上,对所用到的元素进行分类和提取、之后对不同元素分别进行矢量化并构建路网与车道关联关系,最后进行质量校验,形成一套地图引擎来存储并支撑其他模块的需求。
1. 现有算法
下述为现有主流SLAM框架的兼容性问题
从论文中找到的相关原始对比数据来看R3LIVE的效果在目前来说在角度和距离的evo效果最好。
| Faster-LIO PHC | Fast LIO2 | LIO-SAM | R2LIVE | R3LIVE RT | LVI-SAM |
---|
RPE | 0.33% | 0.35% | 0.43% | ---- | ---- | ---- |
pre time | 0.52ms | 2.73ms | 6.48ms | ---- | ---- | ---- |
opt time | 5.45ms | 13.20 | 35.71ms | ---- | ---- | ---- |
deg | ---- | ---- | ---- | 0.16% | 0.14% | 1.01% |
opt time(640) | ---- | ---- | ---- | 30.2ms | 29.4ms | >36ms |
此外可以去KITTI Odometry排行榜上查找排行前列的一些算法,并关注SLAM领域的一些最新的成果。注意我们需要构建的是三维点云地图,其以建图为主要目标,SLAM的实时性反而不是特别重要。