HQ3自动驾驶系统关键技术

HQ3自动驾驶核心模块解析

面向高速公路和城市环境的自动驾驶:HQ3与IVFC 2017

摘要

2017年中国智能车未来挑战赛(IVFC)于2017年11月24日至26日在常熟举行。作为该赛事的第九届,去年的比赛引入了许多新特性,并吸引了21支队伍参赛。由国防科技大学、吉林大学和中南大学联合开发的HQ3自动驾驶汽车参加了本次比赛。本文主要介绍了HQ3的关键模块,包括无GPS定位、环境感知和行为规划。这些模块共同保障了HQ3在比赛中的出色表现。

一、引言

过去三十年见证了自动驾驶的巨大进步。许多比赛相继举办,极大地推动了技术进步,也吸引了全社会的广泛关注。

美国国防高级研究计划局(DARPA)在2004年和2005年组织了两次自动驾驶汽车大挑战赛。这两场比赛均在沙漠地区[1]举行。第三届DARPA挑战赛,即城市挑战赛,于2007年举行。该比赛在城市区域进行,要求自动驾驶汽车遵守交通规则,并与其他交通参与者互动[2]。

为了加速现实交通场景中协同驾驶的发展,大型协同驾驶挑战赛(GCDC)[3]于2016年在荷兰赫尔蒙德举行。通过引入车对车通信(V2V)和车对基础设施通信(V2X),自动驾驶汽车能够更安全地行驶,并应对更复杂的场景。

由中国国家自然科学基金委员会主办的智能车辆未来挑战赛(IVFC)自2009年以来已举办九届。2017年IVFC最近在江苏常熟举行。与往届相比,去年的比赛引入了许多新测试项目,包括在真实交通流中行驶、通过崎岖的乡村道路、隧道内导航、通过收费站等。这些新增项目对自动驾驶汽车提出了重大挑战,使得2017年IVFC成为该赛事历史上难度最高的一届。

联合开发的HQ3自动驾驶汽车参加了IVFC 2017竞赛。如图1所示,HQ3自动驾驶汽车配备了多种传感器,包括激光雷达、雷达、摄像头、轮速编码器、惯性测量单元(IMU)、GPS接收器等。在本文的其余部分,我们将回顾HQ3的关键模块设计。

示意图0

II. 基于高精度地图的无GPS导航模块

利用高精度地图(HPM)来增强自动驾驶汽车的环境感知和导航能力已成为一种普遍做法。HPM至少可在三个方面为自动驾驶汽车提供帮助[4]:首先,通过将当前传感器信息与HPM进行匹配,自动驾驶汽车能够在地图上实现精确定位,而不受GPS信号可能不可靠的影响;其次,通过对地图上的物体(例如交通灯、交通标志、车道线、道路路缘石等)进行人工标注,可以获得准确的静态先验信息;第三,从地图获取的道路形状也有助于跟踪其他动态交通参与者并预测其行为。

我们使用的HPM是通过图SLAM(同步定位与建图)算法离线生成的。图优化SLAM算法试图优化一个包含大量因子的位姿图,每个因子对单个或多个共享观测值的位姿施加约束。然后使用在[5]中提出的增量平滑与建图(iSAM)方法对位姿图进行优化。基于优化后的位姿,将激光雷达扫描数据进行拼接以生成地图。

存在不同形式的HPM,例如障碍物地图、2D高度地图、2D反射强度地图以及三维点云地图。由于自动驾驶汽车大多在平坦道路上行驶,因此并不总是需要使用内存消耗大且计算量大的三维点云地图。因此,2D高度地图和2D反射强度地图可能是更好的选择。使用2D地图时,如图2所示,假设自动驾驶汽车在平面表面行驶,其位姿被简化为3个自由度:x, y和azimuth。然而,当车辆在崎岖地形上行驶或其俯仰角存在较大波动时,我们更倾向于使用三维点云地图,并将其位姿扩展到完整的6个自由度(x,y,z,azimuth,pitch和roll)域。一个示例展示在图3中。

示意图1

示意图2

对于定位模块,我们采用递归贝叶斯估计框架。轮式编码器的输出将两个车辆位姿之间的增量运动建模为先验项。似然项通过将当前扫描与HPM进行比较来计算。根据贝叶斯定理,我们可以获得当前位姿的最大后验估计(MAP)。为了处理系统的非线性并避免扩展卡尔曼滤波器(EKF)的线性化误差,我们使用粒子滤波器来跟踪位姿。

IVFC 2017第二天出现了两个具有挑战性的场景,如图4所示。其中一个场景如图4左上方所示,道路被屋顶覆盖。屋顶高度为4米,允许自动驾驶汽车通过,但屋顶本身会遮挡GPS信号。设置该场景的目的是测试自动驾驶汽车在无GPS导航情况下的能力。另一个场景如图4左下方所示,自动驾驶汽车需要通过一条蜿蜒的乡村道路。该乡村道路建于开阔区域,周围缺少人造结构或显著特征。该区域的GPS信号也可能受到干扰。这种无特征且无结构的环境对HPM构成了严峻挑战。

基于定位的方法,这些方法通常基于道路或路边的独特结构或特征。在这两种场景中,我们的基于二维HPM的定位模块均表现出色,如图4的右上角和右下角所示。这两个子图中的灰度部分是预建的二维高度图,彩色点是当前观测扫描。这两个子图中心的小绿色圆圈表示定位模块中估计的车辆位置,而GPS位置(来自高端诺瓦泰集成导航系统,该系统将GPS信号与惯性测量单元耦合)显示为红色圆圈。请注意,在右上角的图中,GPS位置偏离了定位输出,因为GPS信号被屋顶遮挡,导致组合导航系统(INS)的输出偏离真实位置。

示意图3

正如我们所提到的,HPM的另一个有用特性是辅助环境感知模块。图5是一个示例,我们在HPM上手动标注了所有拓扑连接的车道线及其不同属性(例如白色或黄色、虚线或实线等)。除了车道线外,我们还可以标注交通灯、交通标志、斑马线等。所有这些手动标注的信息都存储在一个数据库中。当自动驾驶汽车在线运行时,其位置被用作对数据库的查询,数据库将返回附近的所有标注信息。这些信息随后可被环境感知模块利用。

示意图4

III. 环境感知模块

自动驾驶汽车的环境感知模块负责处理所有的传感器信息,并向规划模块输出融合后的感知结果。它主要包括以下任务:

A. 道路理解

道路理解的任务不仅仅是检测道路区域,而是要检测满足多种约束条件的可行驶路径,包括车辆动力学约束、安全约束、交通规则约束等。该任务可以分为以下子任务:

(a). 道路检测

该任务的目标是基于激光雷达获取的几何属性或图像中的纹理信息来检测道路区域。图6顶部展示了说明性示例[6],其中激光雷达点被分为三个语义类别:道路(黄色)、障碍物(红色)和悬挂物体(绿色)。图7右侧显示了使用图像传感器进行道路检测的结果,其中道路区域以红色表示。我们还开发了一种系统化方法[7],通过在条件随机场(CRF)框架中融合图像与激光雷达数据,从而获得更优的道路检测结果。

示意图5

(b). 道路边界检测

尽管道路检测算法会产生道路边界的副产品,但有时有必要将道路边界检测视为一个独立的问题。道路边界可以明确定义为路缘石,也可以像图4底部所示的乡村道路那样,通过坡度变化或图像纹理隐式定义。在这两种情况下,道路边界都是一种弱信号,需要特别关注。如图6右下[9]和图7左[8],所示,我们开发了能够检测道路边界的方法,使用激光雷达或图像传感器实时检测最远50米处的路缘石。

示意图6

(c). 车道线检测

车道线在自动驾驶汽车中起着至关重要的作用。我们既可以仅通过图像传感器直接检测车道线,也可以利用HPM的丰富信息。通过将自动驾驶汽车在HPM上进行定位,可将人工标注的车道线投影到当前图像上,进而用于验证检测结果。

B. 静态物体检测

自动驾驶汽车必须具备检测和识别交通相关物体的能力,包括交通标志、交通信号灯、地面标识、停止线、斑马线等。

对于交通标志检测,我们构建了中国交通标志检测基准(CTSDB)[10],,其中包含12224张图像,并标注了17013个边界框。基于该数据集,我们开发了高效的算法,结合传统通道特征与深度特征,用于交通标志的检测与识别。

为了可靠地检测交通灯,我们使用了一个具有精细调整参数的专用摄像头,包括视场角、相机焦点、曝光时间等,如图8左侧所示。高精度地图也可以通过提供交通灯的大致位置估计来辅助检测。该位置被投影到当前图像中,生成一个感兴趣区域(ROI)。然后我们只需在该ROI内运行检测算法。

地面标志、停止线和斑马线均在逆透视图像中被检测到,如图8的中间和右侧所示。

示意图7

C. 动态物体检测与跟踪

运动物体检测与跟踪(DATMO)是自动驾驶汽车的一项基本能力。自动驾驶汽车总是在动态环境中行驶。只有当所有其他交通参与者,包括行人、车辆等,都被可靠地检测和跟踪时,车辆才能安全导航。

我们开发了基于激光雷达的DATMO方法和基于多传感器融合的方法。对于基于激光雷达的方法,我们首先使用现成的扫描匹配算法对相邻的激光雷达扫描进行配准。激光雷达扫描也被分割成多个潜在目标。然后根据扫描配准结果将这些目标进行关联。每个潜在的运动目标都关联一个卡尔曼滤波器,用于预测其位置和速度。将激光雷达扫描分割为多个目标时,不可避免地会产生过分割或欠分割误差。在极端情况下[11], ,我们尝试绕过分割模块,将每个网格单元视为一个“目标”。采用粒子滤波器来预测每个网格单元的速度。

HQ3自动驾驶汽车还配备了多个毫米波雷达。通过融合雷达输出与激光雷达检测结果,我们可以检测和跟踪最远达150米的动态物体。

示意图8

IV. 行为规划

HQ3的行为规划器负责在自动驾驶汽车的自动切换开关开启后控制车辆的行为。行为规划器基于实时驾驶环境做出决策,这些环境包括一组简化的交通因素:全局任务、局部环境特征以及其他交通实体。图10展示了HQ3的综合规划器架构。

分层架构

我们的规划器旨在具备可扩展性、可重用性和模块化,以便根据新开发需求增加或移除某些任务和行为。HQ3能够快速构建附加模块,并且这些新开发的模块可以无缝集成到原有系统中,而不会丧失原有功能。为了促进模块化和可重用性,采用分层架构来评估每个场景中的可行行为。

1) 全局任务

图10 描述了我们的行为规划器的分层状态流。在规划器的最高层级,根据车辆的状态设计了不同的全局驾驶任务,其中包括高速公路任务(城市快速路模块)、城市任务(SUrban)以及一些特殊子任务(SChildTask),如上部虚线框所示,其中状态名称以S为前缀。S…表示其他类似的、过于繁琐而未在此列出的任务。SChildTask代表一些常见但非平凡的任务,例如泊车(SParking)、转向(STurning)、通过无交通区域(SRoute)和紧急停止(SStop)等。

SChildTask主要处理与非结构化环境相关的任务。泊车场景是一个典型示例。车辆必须将自身停入停车位,而停车位可能相对于车道处于不同方向,且周围可能存在或不存在障碍物。当车辆到达泊车任务点时,State Monitor模块将触发SParking模块。泊车模式(倒车入库或前进入位)将根据停车位的分布情况自动合理选择。当车辆尚未足够接近停车位时,SParking模块不会输出其规划结果,从而避免不可行的大幅转向以及为精确检测车道线而进行的减速。值得一提的是,Surban不会运行,除非SParking完成泊车任务。

规划器通过利用来自低层级行为决策模块的反馈 SBadState以及导航系统的信息来确定选择哪些高层级任务。智能车辆功能控制的一个典型场景是车辆必须在城市道路状态(SUrban)和狭窄乡村道路状态(SRoute)之间无缝切换,如图4所示。当感知系统识别出没有正确的车道且仅有一条狭窄道路可用时,规划器将自动切换到SRoute以进行乡村道路行驶。另一个常见场景是在城市道路状态(SUrban)和城市快速路状态(SHighway)之间的切换。当车辆在城市区域行驶,导航系统报告新的道路级别(例如高速公路、快速路、乡村道路等)信息后,规划器的全局任务将生成车道和速度限制,并平滑过渡到SHighway。

2) 任务解析

对于道路驾驶环境,中间的虚线框提供了两个同时运行的模块,任务解析和环境估计。在任务解析模块中,交通灯被解释为通行、停止。而某些信号则根据车道或交叉路口以及特定的导航任务被忽略。车道根据车辆的位置和方向提供所有可选车道。交通规则和道路标志指示出根据车辆位置可以行驶的车道。其他自定义规则也在此处进行解析。

3) 环境模型

环境估计模块的目标之一是评估交通实体(例如车辆、行人和骑自行车者)与道路模型(由车道结构表示)之间的关系。所有实体都将自身定位到道路模型上。其中一些与车道IDs相关联,而另一些在特定情境下被忽略(例如,在保持距离场景中,一个相对远离的实体可以被忽略,因为较近的实体已足够限制车辆的移动空间)。

另一个目标是生成无障碍兴趣区域。静态障碍物通过一个距离阈值Dobs进行分类,该阈值是一个主要由传感器决定的经验数值。在Dobs范围内的近处静态障碍物生成静态障碍物代价图。为了获得无占用规划空间,我们在代价图中使用一组偏移中心线对车道进行扫描。对于存在不规则障碍物的车道,偏移线被分割为多个分段,如图11所示。评估车道平滑性的一个便捷方法是估算相邻线段的长度、线段数量以及线段之间的连接情况。我们可以根据线段之间的连通性及其所属的车道生成若干修正通道。经验表明,在大多数道路场景中,每条参考线上三个分段已足够。线段方法能够彻底搜索整个道路空间。作为副产品,生成的通道明确声明了不同驾驶操作的拓扑结构。

与近处静态障碍物不同,位于Dobs范围之外的远处静态障碍物被标记为一个实体。之所以将远处静态障碍物与近处静态障碍物区分开,是因为远处静态障碍物检测较为稀疏且具有更高的不确定性。与车道相关联的远障碍物实体会根据其距离被聚类成组。此外,障碍物实体簇每个周期都会被重新检查。如果在一定时间内没有任何单个障碍物被分配到某个簇,则该簇过期并被忽略。

对于环境中的非结构化区域,环境估计模块为子任务模式提供主要信息。

示意图9 和 (b) 的顶部图像显示了被静态代价图分割成分段的偏移线。底部图像显示了校正后的分段。白色箭头表示车辆的行驶方向。红色点表示四条道路线。右侧的灰色点表示静态障碍物。)

B. 行为推理

不同于Boss和Junior[2],提出的传统行为推理系统,我们的行为规划器的顶层将全局任务(如泊车、掉头等)分解为多个SChildTask,以应对更复杂和精细的任务。

HQ3的行为状态主要考虑道路上的变道操作以及交叉路口的通行优先权。对于常规道路驾驶,行为状态在每个周期内监控周围实体。在交叉路口情况下,行为状态选择目标车道,并通过速度控制实现排队或并道的决策。行为状态选择一条合适的车道以保持在期望速度行驶。与其它动态实体交互的策略类似于路径速度分解(PVD)[12]方法,不同之处在于在此层级我们仅选择车道而非规划路径。

1) 车道选择器

行驶车道选择是一项多目标复杂决策。HQ3 旨在遵守交通规则的同时实现更快速行驶,且不牺牲安全性和舒适性。在道路交叉区域,车道可由 TaskParse 模块生成。难点在于超车或并道频繁发生的道路行驶情况。

示意图10

车道选择器从行为状态中的五种基本道路行驶状态中选择车道:左并道(LM)、左变道(LC)、保持当前车道(KCL)、右并道(RM)和右变道(RC)。变道与并道的区别是明确的。LC旨在超越当前前方车辆(Vcf)以实现更快速行驶。RC则是在完成超车操作后返回原始车道时触发。LM和RM旨在通过遵循匝道与高速公路之间的转换等任务指令,实现向下一车道的并道。图12展示了操纵状态的转换优先级。假设图13中的白车想要驶入匝道,则启用开关S1和S2切换至右并道。行为状态将在右并道状态和保持当前车道之间循环。

示意图11

图13描述了相对车道选择(RLS),供车道选择器用于推理状态之间的转换。HQ3维护三条抽象车道的信息,即行驶车道、选定车道和目标车道。在图13中,如果白车希望到达车道0,且红线为当前路径,则这三条车道的车道ID分别为车道0、车道1和车道2。除KCL外,所有驾驶操作均考虑行驶车道上的车辆以及HQ3试图进入的目标车道上的车辆。为了评估驾驶操作是否可执行,HQ3使用碰撞时间和最小安全距离来约束驾驶操作。考虑到不确定性,HQ3还保守地结合了额外的安全空间和反应时间。

V. 结论

本文介绍了使HQ3在IVFC 2017中表现优异的一些关键模块。我们的未来工作是提高各模块的可靠性,并在更复杂的场景中对HQ3进行全面测试。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值