李闻达 王 峥 李慧云 方文其 梁嘉宁
1(中国科学院深圳先进技术研究院 深圳 518055)
2(山东理工大学 淄博 255000)
无人车也被称为智能车辆,是当今车辆工程与机器人技术、人工智能结合最热门的领域之一[1]。Ernst Dickmanns 在 20 世纪 80 年代开启智能汽车发展之路[2]。1994 年,在美国由卡内基梅隆大学研发的 Navlab 从宾州的匹兹堡行驶到加州的圣迭哥,其中自主驾驶部分达 98.2%[3]。意大利的帕尔玛大学研制的智能车将传感器进行了内嵌,该智能车可以同时应用于高速公路和城市道路,通过采用视觉导航的方式对交通信号灯及交通标记进行有效的识别,实现行人检测的能力,经过多年研究 Vislab 智能车已经具备了多项自主驾驶的功能[4,5]。我国近年来在无人驾驶领域也取得了飞速发展。例如,百度无人驾驶汽车在北京进行全程自动驾驶测跑,实现了多次跟车减速、变道、超车、上下匝道、调头等复杂驾驶动作,完成进出高速道路等不同场景的切换,最高时速可达 100 km/h[6]。21 世纪以来,许多汽车制造厂商推出了具有辅助驾驶、自动泊车、自动入库等功能的车辆,如传统的汽车巨头 BBA 及沃尔沃等汽车品牌都已在自己旗下的不同车型上应用了最先进的自动驾驶系统,通过雷达、探头、全球定位系统(Global Position System,GPS)、视觉传感器等装置,车辆可以按照预定的线路自动驾驶,可以说目前半自动驾驶技术已经相对比较成熟。
安全、高效的导航方法是无人车实现的关键[7]。导航定位系统利用高精度 GPS 采集位置信息及车速,从而通过核心控制单元进行处理,根据位置和角度信息控制执行机构。现阶段无人驾驶导航策略大多应用于车道线或引导线标记清晰的结构化道路[8],但在国内依然有许多乡村道路不具备实现该导航机制的条件[9]。其次,标记详细的高精度地图虽然能满足自动驾驶导航的需要,但其数据量庞大,数据的处理和融合相对耗时、困难,亦给自动驾驶技术的落地带来了巨大挑战[10,11]。
为了解决以上问题,本文提出了一种基于轻量级矢量地图的智能车导航方法。该方法包含地图构建与导航部分。其中,地图构建部分创新采用道路点(waypoint)与标签(way tag)相结合的机制。道路点用来描述各条道路并标记精准的道路经纬度及无人驾驶决策信息;道路标签从高层次抽象组织道路点,从而极大地降低数据的重复存储。导航部分紧密结合道路点与标签的地图结构,通过运用预瞄点与历史点快速决定车辆的转向角,有效实现路径追踪。本文所提出的地图构建与导航方法可作为无人驾驶的基础模块,可与激光雷达数据处理、车辆避障算法、车辆动力学模型相结合,实现算法与存储的轻量级化,降低无人驾驶对硬件设备计算能力的需求。
目前智能车导航主要通过以下 3 种方式:
(1)基于视觉道路标志线跟踪导航,其代表为特斯拉公司所用导航技术。智能车首先利用摄像头拍摄道路周围环境的局部图像,并通过图像处理技术中的特征识别、距离估计等,进行智能车定位及其下一步的动作规划;然后,利用傅里叶变换处理全方位图像,并将关键位置图像经过变换得到的数据存储起来,将其作为下一步的参考点;最后,将摄像头拍摄的图像与之对比,从而得到车辆的当前位置,进一步实现对智能车的局部路径规划。在新的环境中通过图像处理数据分析出环境中的道路,不需要事先建立数据库以及铺设大量的辅助设施[3]。
(2)基于激光雷达的高精地图导航,其代表是 Google 公司无人车。其借助激光三维点云构建周围环境的几何关系,通过实时采集周边点云与地图中点云相匹配,从而对无人车进行准确定位。
(3)基于差分 GPS(DGPS)的导航,其代表为百度无人车。然而,百度无人车导航需依赖激光雷达和视觉生成的高精度地图,比普通地图对信息的需求更大,行驶路段都需要配备激光雷达的数据采集车进行实测。例如,四维图新拥有 600辆数据采集车,可以采集全景影像数据、路面影像数据、亚米级高精度 GPS 数据、路测近距离激光雷达等高精度数据,其对车载电脑的存储与计算能力要求极高,相对资金花费会更高[17]。同时激光点云的实时匹配的准确性受周围动态环境的影响较大,而且激光雷达无法对周围环境中的路标、指示牌和红绿灯等信息进行提取,导致其对复杂路况理解能力的局限性等问题尚未解决。
当今车载定位和手机定位运用的是单一的GPS,提供的定位精度是优于 25 m,而为得到更高的定位精度,无人车通常采用差分 GPS 技术,将差分 GPS 接收机安置在基准站上进行观测。根据基准站已知精密坐标,计算出基准站到卫星的距离改正数,并由基准站实时将这一数据发送出去。用户接收机在进行 GPS 观测的同时,也接收到基准站发出的改正数,并对其定位结果进行改正,从而得到厘米级的定位精度。
本文采用差分 GPS 录制无人车导航矢量地图并对地图进行滤波分类处理,从而规划全局行驶路径,利用激光雷达进行前方障碍物检测,根据激光雷达的信息反馈动态调整局部路径进行避障,最后输出方向盘转角、油门和制动踏板深度信息到底层控制器。无人驾驶系统的示意图见图 1。
佛像的当代性,是指以当下的审美理念塑造的佛像,符合当下人们的审美习惯,并在理念、形式、样式上有别于其他时期,但这种时代特征必须是在如法的范围内,目前国内有许多艺术家在探讨尝试中,能否成为这个时代的典型之作需要塑造者不断的探索与时间的沉淀。
图1 无人驾驶导航系统结构示意图Fig. 1 Navigation system structure diagram of autonomous vehicle
主流智能驾驶技术依赖于高精度地图对环境信息的准确描述,而高精度地图对存储要求较高。例如,Levinson 与 Thrun[18]通过数据压缩技术将 20 000 英里的道路信息存储于 200 GB 的空间,相当于每公里 6.25 MB 的存储密度。如此庞大的数据量对车载电脑的存储容量是极高的挑战,亦给数据处理和融合所需计算的实时性带来巨大困难。
相比之下,本文采用轻量级矢量地图与轨迹跟踪算法相结合的方法达到自主导航效果。具体来说,该地图建立方法利用差分 GPS 抽取经纬度信息,去除大规模激光点云数据,通过在地图中标记车道、十字路口、速度限制等关键信息达到准确导航的目的。本文采用的矢量地图如图 2所示,共 13 条道路 26 条车道,总行驶里程约 5公里仅占用约 500 kB 的数据存储,相当于每公里 100 kB 存储密度,极大地简化了数据结构,同时确保了高精度。
全局路径规划模块是根据矢量地图和起点、终点信息,规划全局路径。具体步骤如下:
(1)如图 2 所示某地区高精度矢量地图,首先将每条车道进行编号(如 1, 2, 3,…),并分别将每条车道经纬度信息、对应道路的红绿灯和标志牌等存储到 MATLAB 的 cell 矩阵中,建立waypoint 数组。然后,建立 way tag 数组作为各路口的标签和车道线的连接,定义路口直行、左拐、右拐、变道和掉头。图 3 所示为 MATLAB中 way tag 和 waypoint 数组。way tag 行序号为每条车道编号(如 1~26 号),列序号为路口决策编号(如直行、左拐、右拐、左变道、右变道、掉头)。way tag 表格则为下一步要行驶的车道编号(-1 表示无车道)。例如,当车辆从 3 号车道左转行驶到 11 号车道,该 11 号车道对应的waypoint 如图 3 所示,包含该车道的经纬度、红绿灯、人行横道和限速标志等。1 表示该位置有以上标志;相反,-1 表示没有。车辆可根据以上信息确定参考车速或停车等待,保证车辆行驶符合道路交通法规。
图2 某地区高精度矢量地图Fig. 2 High precision vector map of a certain area
图3 Waypoint 和 way tag 数组Fig. 3 Waypoint and way tag array
(2)利用差分 GPS 实时定位搜寻车辆在地图上的投影点,从而确定起始点,并通过指定行驶方向,或给定终点坐标的方式确定终点,从而得到规划行驶路径。
差分 GPS 数据处理模块主要是定义经纬度范围、过滤错误数据和消除噪声,并实时打印定位点和地图投影点。
路径跟踪模块将根据差分 GPS 和预先录制的 waypoint 信息产生一个适当的转向位置命令,并根据方向盘转角匹配适当的行驶速度。利用差分 GPS 可以获取车辆的实时位置,从录制地图中能够看到车辆运动的参考路径。
如图 4 所示,绿色线条为预先录制的车辆 waypoint;蓝点为车辆定位点;红点为车辆waypoint 投影点。为使蓝点不断趋近于地图中红点,设计了一种角度的算法来实现。如图 5 所示,蓝色区域为车辆的几何模型,C点是当前车辆的定位点,即图 4 中蓝点;A点为车辆先前的定位点;B点和D点(红点)分别是地图中距离A点和C点的最近点;E是预瞄点,即车辆的目标位置。向量BC和向量BD的夹角为,其正负和大小可以用来判断车辆的位置误差;为向量AC和向量DE夹角,为车辆动态行驶路径与参考路径的角误差,通过不断修正使和减小直到趋于 0,使车辆沿规划路径行驶。公式(1~8)为根据各点的经纬度计算相应向量。其中,下标x、y表示该向量在x轴、y轴方向的大小。
图4 车辆的实时位置和路径规划Fig. 4 Real-time location and path planning of the vehicle
最后,航向角为:
其中,coeff1与coeff2为权重系数,用来调整、对航向角的影响。该角度需要在测试中进行调整,建议在转弯时通过降低车速来优化跟踪waypoint 的效果。
图5 车辆和路径的几何关系Fig. 5 The geometric relationship between vehicles and paths
动态路径调整模块功能主要是在同一行驶方向具备多车道时,实现基于差分 GPS 的避障,即遇到障碍物后进行车道切换。障碍物检测可基于视觉或激光雷达的信息反馈,一旦决定避障,则可将参考 waypoint 从当前车道切换到另一并行车道,通过计算与并行车道 waypoint 的航向角从而实现车道切换。若新车道仍检测到障碍物,则需停车等待障碍物清空后再继续行驶。在实现过程中将多车道 waypoint 分别建立,但存储于同一数组中不同行(列),当避障时切换投影 waypoint,从而节省计算时间。亦可在车道waypoint 数组中指定优先级,在确认避障结束后切换到第一优先级车道,避免逆行。如图 6 所示为四条并行车道 waypoint。
转向、油门、制动模块主要功能是将方向盘角度和速度命令发送给车辆底层控制器。本文采用 CANanalyzer 搭建 MATLAB 与CAN(Controller Area Network)总线的信息交互平台,将上层模块计算的角度和速度信息发送到底层控制器并控制无人车的转向和启停。
本文采用实时动态差分全球定位系统(Novatel DGPS)进行实验测试,由接收机、天线、无线调制解调器和电池组成,具体如图 7(a)、(b)所示。其中,最大采样率为 10 Hz,定位精度为 5 cm。设备分为基站与移动站,基站覆盖半径为 20 km的区域,可以建立单一基站对多移动站的使用方式。实验将基站搭建在楼顶,移动站搭建在车内,通过 4G 信号(中国移动)实现基站与移动站之间的数据传输,从而实现较好的数据接收效果。
图6 四条并行车道 waypointFig. 6 Four parallel waypoints
图7 差分 GPS 搭建与测试Fig. 7 DGPS setup and testing
实验过程中,首先搭建差分 GPS 导航定位平台,进行录制园区内无人车行驶路径,然后建立差分 GPS 和 MATLAB 接口,将地图导入MATLAB 中,进行算法编写。图 7(c)为园区路径在谷歌地球上呈现的效果图,图 7(d)为未处理的矢量地图。由图 7 可以看出,与普通 GPS 相比,Novatel DGPS 具备较高的抗干扰性与准确性,适合基于其进行路径追踪与避障。
本文采用禾赛科技 Pandar40 四十线激光雷达和 Hokuyo 单线激光雷达对障碍物进行检测与避障。其中,二者位于车前保险杠中央,Pandar40 安装在下方,Hokuyo 在上方,安装位置如图 8 所示。实验车辆为开沃新能源汽车,前置前轮驱动,装有电子助力转向(EPS)和整车控制单元(VCU),通过 CAN 总线可以控制车辆的运行状态。采用创芯科技的 CANalyst-II 分析仪对上位机和底层 CAN 总线进行连接。从而搭建MATLAB 与 CAN 总线的信息交互平台,将上位机计算的角度和速度信息通过分析仪发送到底层控制器。
图8 差分 GPS 和激光雷达安装位置Fig. 8 Vehicle with mounted DGPS and Lidar
4.2.1 路径追踪测试
图9 为录制某地区的矢量地图,其中红色和绿色线条表示路径。该地图以 20 km/h 匀速行驶进行录制,waypoint 采样频率为 10 Hz。在矢量地图中确定起点和终点,如图中的Start点和End点。路径规划算法依据起点和终点规划出一条最优路径,从起点到终点,车辆经过的路径依次为1-2-3-4-5-6,用红色实线标识,其他路径用绿色虚线标识,通过路口用A、B、C、D、E表示。
图9 最优全局路径的矢量地图Fig. 9 The vector map of optimal global path
为了检验路径跟踪算法的准确性,本实验采用人为驾驶和自动驾驶来验证。因为速度的不同会对路径追踪的效果有较大影响,所以实验选择在平均车速为 15 km/h、20 km/h 两种车速下测试。
图10(a)是当车辆以平均车速 15 km/ h 行驶时,车轮转角随路径变换的关系。其中,红色为车辆沿规划路径自动驾驶时车轮转角的变化曲线;蓝色为人为驾驶的转向角变化曲线;绿色直方图是以上两个角度之差,用来衡量自动驾驶的准确性。由图10(a)可以看到,当车辆直线行驶时,角度误差较小,保持在 2°以内;当转弯时,角度误差有增大趋势,但基本达到转向所需转角。
图10(b)为平均车速 20 km/h 时车轮转向角与行驶路径的关系。由图可以看到,车速增大后,直线行驶时角度误差较之前变化不大,转弯时误差较之前稍有增大,自动驾驶转向角比人为驾驶转向角出现轻微的角度滞后。
图10 不同车速下车轮转向角与行驶路径之间的关系Fig. 10 Relationship between wheel steering angle and driving path at different speeds
以上实验结果表明,随着车速的增大角度误差会增大并出现角度滞后。分析其原因有以下几点:首先,差分 GPS 在进行精准定位时会有约0.2 s 的定位延时,造成转向角滞后;其次,虽然差分 GPS 达到了很高的定位精度,但依然会有因噪声产生定位误差,这对转向角的计算非常敏感;最后,速度调节器不能完全维持车速的恒定,尤其在有坡度的道路测试中。为了减小以上因素的影响,要求车速限制在 20 km/h 以内。
在图 5 车辆和路径的几何关系中,地图中预瞄点E和车辆在地图上投影点D的距离大小对路径跟踪也有较大影响。实验中选取距投影点20~60 个 waypoint 的地图坐标作为预瞄点E。因为预瞄点E对路径追踪的影响只发生在转弯情形中,故在图 9 中沿路径 1-A-2-B-3 测试角度误差和 waypoint 个数的关系,满足了左转弯、右转弯两种情形。
图11 为预瞄点与车辆转向角误差变化关系。因为角度误差存在正负,故采取角度误差的绝对值之和来衡量误差的大小。由图 11 可以看出,当距离从 20 到 50 时,角度误差之和呈减小趋势;当距离达到 60 时,误差开始增大。这是因为当预瞄点距离过近时,算法中计算向量的夹角变化过于频繁,造成转向角不断增大,车辆转向过度。而预瞄点距离太远时,向量夹角变化过于迟钝,造成车辆转向不足。综上所述,投影点与预瞄点之间点的个数应在 50 左右,以保证转角误差最小。
图11 预瞄点与车辆转向角误差变化关系Fig. 11 Relationship between target point and vehicle steering angle error
4.2.2 动态路径调整测试
实验一:在行驶过程中放入障碍物来检测动态路径调整模块,如图 12(a)所示。实验采用假人作为障碍物进行实车测试。当激光雷达检测到前方有障碍物时,动态路径调整模块作出反应,将参考 waypoint 从当前车道切换到另一并行车道,计算与并行车道 waypoint 的航向角实现车道切换,当绕过障碍物后车辆切换到原有车道继续行驶。
图12 动态路径调整Fig. 12 Dynamic path adjustment
实验二:在两条并行车道上分别放有假人和箱子作为障碍物,如图 12(b)所示。当车辆行驶过程中检测到前方有障碍物 1(假人),从当前车道切换到另一并行车道,紧接着又检测到该并行车道有障碍物 2(箱子),动态路径调整模块作出反应,制动停车并等待障碍物清空后继续行驶。
为了检验动态路径调整算法的准确性和有效性,本实验依然采用人为驾驶和自动驾驶来对比验证。图 13(a)、(b)分别为双车道中单个和两个障碍物情况下车辆转向角与行驶路径的关系。由图可以看出,自动驾驶的转向角和人为驾驶的转向角基本吻合,最大角度为 15°左右,满足正常切换车道所需角度。但为保证行驶安全,激光雷达探测到障碍物距离 5 m 时触发动态路径调整模块,相比正常人为驾驶距离略远,如图 13 中M点。自动驾驶转向角变化要提前于人为驾驶,同样角度峰值点也提前到达。
图13 动态路径调整下车轮转向角与行驶路径之间的关系Fig. 13 Relationship between wheel steering angle and driving path in dynamic path adjustment
本文提出了一种基于矢量地图的无人车导航方法。首先,建立无人车导航矢量地图,然后利用矢量地图和激光雷达完成路径跟踪及动态路径调整的避障,并实车测试其实时性和准确性。该策略不依赖于激光雷达的高精度地图创建,因为激光点云的实时匹配受到动态环境的影响较大,在复杂环境中降低了车辆定位的准确性。在实时避障方面,激光雷达无法对周围环境中的语义信息进行提取(如路标、红绿灯等),导致其对复杂路况的理解能力存在局限性。本文基于差分 GPS创建的地图通过对关键信息的标记(如车道、标志、速度、红绿灯等),增加了无人车对环境语义的理解能力,通过分段标记的方法实现动态形式路线的变化。与此同时,结合激光雷达的实时障碍物检测能力,通过改变矢量地图中参考路径,实现了避障、车道线切换等功能,在实现动态驾驶决策的同时提高了驾驶安全性。另外,在准确导航的同时极大地降低了对存储空间的要求,每公里道路仅产生 100 kB 的数据存储,且定位精度可达到厘米级。实车测试结果表明,本文提出的车辆转向角算法和避障策略效果良好,基本完成规划路线的行驶。但在隧道或有遮蔽的道路,差分 GPS 定位精度受到较大影响,未来可考虑加入惯性测量单元进行辅助定位。在实时避障方面,其对车速和障碍物动静态也有一定的要求,未来将对这一问题作进一步研究。