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的实时性反而不是特别重要。
2. 思考与分析
目前现有的方法很多都是基于去GPS的方法,而真实的地图建立都是需要依靠IMU,GPS和闭环策略的,相比而言是否存在视觉反而不是特别重要了。IMU可以大幅度避免抖动造成的底图干扰,而GPS和闭环可以最大程度确保建图的精度。
同时底图建议使用稠密地图,并且是拼接关键帧而成,需要有足够好的强度信息,这样使得纹理效果更明显,方便标注,所以我们排除了所有的单视觉的SLAM建图方法。
此外在图优化得到最终位姿之后,可以对关键帧进行地面去除,直接拼接地面地图,这样在标注俯视图时可以明显避免一些大楼树木的倒影点云的影响。所以从底图建立来说,使用LIO-SAM更符合我们真实的底图建立场景。
3. 自动标注步骤
自动标注涉及到的算法相当多,流程大致如下:
- 点云地图提取路面信息GroundExtraction(强度图、密度图、高程图)
- 路面信息部分,激光点云提取路沿、车道线、各种路标、停止线、人行横道等,非路面部分提取路牌,红绿灯,路灯,灯杆等。(各种多层强度阈值过滤方法)
- 视觉语义分割方法,提取各道路元素(在自己标注的数据集上可能表现更好)。将视觉分割得到的像素点反投影转换到世界(通过内参->外参参转换,需要激光雷达相机联合标定),去补充激光提取出来的不完整的部分
- 对每一类的线段部分分别进行分段直线/曲线拟合,有序保留端点和均匀的采样点,按位置进行排序。将有序的线段再次分类,比如左车道线,右车道线,中心线(可根据直线截距或者斜率阈值过滤),计算同一条车道线的各段线段的方向,连接端点,完成矢量化。
- 对每一类的多边形部分,比如路标,进行轮廓计算,从点云轮廓中提取出矩形或者箭头端点,按逆时针/顺时针存储(有内外圈的区分)。
- 用Lanelet2等地图框架,根据之前的各种点云分类,添加语义及车道的关联关系,构建地图索引和数据存储,生成高精地图数据文件,后面的博客有介绍Lanelet2用法。
- 用地图编辑软件打开地图并手工修正相应的轮廓,或者补充缺失部分。
- 人工校验道路的每一段是否存在质量问题。
4. 参考链接
https://blog.csdn.net/Yong_Qi2015/article/details/123080964
https://blog.csdn.net/JaydenQ/article/details/119957551
评论(0)
您还未登录,请登录后发表或查看评论