自动驾驶地图构建小结
概述
制作流程主要利用定位与建图算法(组合导航,视觉、激光SLAM等),融合多种传感器数据,构建高精度、高分辨率的三维语义地图,将要素矢量化,构建要素间的关联关系,通过质检确保质量可靠,形成地图引擎(服务、API)以满足自动驾驶系统的需求。
底图构建
底图构建存在两大类方法,点云建图与视觉建图。
点云建图
一般面向高精度采集设备,采用高线束激光雷达,硬件成本高。
一般使用高精度组合导航进行点云拼接,多次采集同一环境需要进行多次点云的融合处理,如使用特征约束抑制点云发散。
目前,存在较多的开源方案实现了多传感器紧耦合的点云定位与建图。
视觉建图
参考Structure from Motion与Bundle Adjustment方法,易于处理重复采集问题,也常用于众包更新。
上述两种方法面对城市峡谷、隧道、高架桥下组合导航精度下降的场景,需要采用视觉或点云观测紧耦合IMU\GPS以提升定位和建图精度。
底图标注
手动标注
以Autocore Map Toolbox为例,流程如下(参考视频https://www.youtube.com/watch?v=WTRHPs8pN04)
a. 新建Unity工程,加入Map Toolbox插件
b. 导入点云PCD文件
c. 手动标准
d. 结果导出为矢量地图,osm格式(参考OpenStreetMap介绍)
自动标注
流程大致如下:
a. 路面提取
b. 路面要素提取(陆沿、车道线、路面标识、停止线、斑马线等)、非路面要素提取(交通标牌、红绿灯、路灯及灯杆)
c. 采用视觉检测补充点云中缺失的要素,需要已知相机内参、相机-LiDAR外参,作2D反投影3D提取要素
d. 对线段进行曲线拟合,同一要素内线段排序,连接端点,完成矢量化
e. 添加语义,添加语义及车道的关联关系,构建地图索引和数据存储,生成高精地图数据文件
f. 人工修补
g.人工质检
标注方法
无论自动标注或者手工标注的方法,均需标注软件,因为机器算法无法做到百分之百,而且实际道路由于路标遮挡、磨损等原因,都需用标注软件手工修正。
一个功能强大的标注软件是高精地图生产必不可少的一部分。
工具软件
名称 | 支持格式 | 商业 |
---|---|---|
LGSVL Map Annotation | Apollo OpenDrive、OpenDrive、VectorMap、Lanelet2 | 免费 |
Assure Mapping Tools | Google Earth、KML、Opendrive、Lanelet2、Vector Map | 免费 |
AutoCore MapToolBox | Lanelet2 | 免费 |
RoadRunner | OpenDrive | 付费 |