之前做的结构化道路下全局路径规划相关的工作,为无人车提供车道线级别的导航,在这简单记录一下。主要有两部分的工作,第一部分是标注地图,即在高精度的slam地图地图上标注出车道线等信息,纯手工标注的,有点麻烦,但小范围内的话也还行;第二部分是编写程序,提取出车道线等信息,供无人车参考。
1、标注地图
首先是如何标注地图的问题,参照了标准的OpenDRIVE和Apollo OpenDRIVE,形成了自己的一个标图格式,感觉更方便些,但是不能通用了。
signal包含交通灯、停车/减速让行、限速、注意行人等。junction为交叉路口,包含该路口内道路、车道线的连接关系。road为道路。object包含停止线、斑马线、停车位等。laneSection,由于标准中没有实体与之对应,因此借用来表示道路边界。lane为车道线。利用ArcMap打开slam高精度地图后,手动标注的地图如下图所示。
2、标注的地图的数据都保存在了相应的shp文件中,把这些shp文件导入到数据库(postgresql+postgis)中后,编写程序从数据库中提取数据。
3、程序是Qt下用C++写的。
下图绿色的是起点(车辆当前位置)到指定终点的路线。
车道线有白实线、白虚线、黄实线和黄虚线。红色的为道路边界或马路牙子。左上角为前方道路的一些提示信息,比方说路口右转,d表示还有82米进入右转路口,l表示右转路口长35米。