自动驾驶故障安全运动规划方法综述
2022-01-10唐仕祺张友民
唐仕祺,李 柏,张友民
(1. 湖南大学 机械与运载工程学院,湖南 长沙 410082;2. 康考迪亚大学 机械、工业与航空工程系,魁北克 蒙特利尔 H3G 1M8)
0 引言
自动驾驶汽车是指通过搭载先进传感器装置、运用人工智能新技术、具有自动驾驶功能、逐步成为智能移动空间和应用终端的新一代汽车[1]。近年来汽车自动驾驶技术得到了飞速发展,众多研发和应用自动驾驶技术的企业已基本实现了L3级别自动驾驶,但随之而来的交通事故问题引起了社会对自动驾驶汽车安全性、可靠性的担忧[2-4]。在向着L4甚至是L5级别自动驾驶技术发展的进程中,如何妥善应对车载软硬件系统突发故障情况是一项与自动驾驶车辆的安全属性紧密联系的议题[5-11]。
在L2/L3级别辅助自动驾驶系统中,由驾驶员紧急接管车辆是目前应对故障的主要手段。L4/L5级别自动驾驶系统要求车辆具备自主应对故障和紧急风险的能力[12],以更高水平的自主智能技术来保障乘客及其他交通参与者的安全[13-15]。为实现L4/L5级别的高自主性行驶安全,一项关键任务是如何计算在故障出现之后的工况下尽量保障安全、舒适的局部行车运动轨迹,该任务被称为故障安全运动规划(failsafe motion planning)。
故障安全运动规划隶属于车端决策模块的运动规划环节。与经典的运动规划算法相比,故障安全运动规划算法致力于充分发挥决策模块的智慧能力,对因模块故障而丧失的车辆额定功能予以补救。例如,针对自动驾驶车辆正常前向行驶时其前方突然窜出行人或是车载设备突然出现故障工况,经典的运动规划方法往往采取紧急制动、应激性避让或靠边停车等简单方案,这些基于规则的方案不可能完全覆盖所有的突发状况,也未必是突发状况下的最优解。相比之下,故障安全运动规划要求自动驾驶车辆提前识别环境中的盲区,从而提前规划出规避潜在碰撞隐患的轻微绕行轨迹;或是在并行线程中为环境中随时出现的最坏情况做安全冗余规划;亦或是结合车辆在故障工况下的剩余功能重构规划命题,继而生成恰当的行驶轨迹。总之,故障安全运动规划致力于利用规划环节的智能计算来强化车辆在出现故障或存在故障隐患工况下的安全行驶能力。
自动驾驶技术的发展目前正从科研探索期向产业孵化期过渡转型,所开发的稳定可靠、高效智能的故障安全运动规划方法将在自动驾驶车辆的量产进程中发挥推动与促进作用。故障安全运动规划方法的研究目前仍处于萌芽阶段,国内外的相应研究成果零星出现,尚未形成稳定的研究体系,也没有系统性介绍故障安全运动规划方法的综述类文献。本文梳理和回顾了该领域现有研究成果,以期故障安全运动规划方法能够获得学术界与产业界的广泛重视。
本文针对感知、决策、控制各执行模块分别发生故障条件下的故障安全运动规划方法研究工作予以回顾。首先,将给出故障安全运动规划的基本概念,并界定本文关注的故障含义;然后,分别从上游感知模块出现故障、决策模块自身出现故障以及下游控制模块出现故障等不同角度回顾相应的故障安全运动规划方法(需要说明的是,源于控制学科的容错控制方法在应对底盘执行机构失效时承担了故障安全运动规划的一部分决策职责,本文将此类控制方法纳入故障安全运动规划方法的回顾范畴之内);最后,展望了故障安全运动规划方法的未来发展方向,并对全文进行总结。
1 故障安全运动规划简介
1.1 故障安全理念的历史渊源
故障安全技术用于降低或消除突发故障对系统的损害[16],其在汽车工业的早期应用可追溯到1989年由日本丰田汽车公司Shingo[17]提出的防呆(Poka-Yoke)设计理念[18]。“防呆”是源于日本围棋与将棋的术语;而在现代化工业生产过程中,防呆是一种预防矫正的行为约束手段,其运用避免产生错误的限制方法,让操作者不需要花费注意力、也不需要过多的专业知识与经验即可准确无误地完成正确的操作。例如,手机SIM卡片的缺角设计即采用了防呆缺口理念,它可有效杜绝用户在手机插槽中将SIM卡片插反。在汽车制造产业领域,防呆机制的广泛应用大幅降低了人为因素导致的零部件缺陷率[19]。防呆作为避免故障酿成不良后果的主动预防手段被广泛应用于工业生产及产品设计中,并逐渐演变为故障安全技术手段。自动驾驶汽车作为新兴的智能化产品,其复杂软硬件设计带来的潜在故障风险为车辆故障安全技术的发展带来了更多机遇与挑战。
1.2 自动驾驶车辆故障的界定
典型的自动驾驶系统模块包括感知模块、决策模块与控制模块。车辆在行驶过程中可能发生的故障类型有多种,本文将聚焦其中3类故障,其分别发生于自动驾驶车辆的感知、决策以及控制模块之中,并界定若干种适合由运动规划方法介入干预的车辆故障情形(图1)。
感知模块的作用是提供车辆自身运动状态信息(如车辆位置、姿态及行驶速度等)以及外部环境信息(如周围障碍物的位置、大小、类别以及运动趋势)。适合由运动规划环节介入的感知模块故障包括传感器损毁与传感器作用范围受限。损毁是指车载传感器因遭受外部损害而失效;作用范围受限是指传感器虽工况正常,但感知能力受到外部环境因素(例如遮挡)制约。
图1 自动驾驶系统模块分布及故障来源Fig. 1 Module distribution of automatic driving system and source of fault
决策模块的作用是依据上游感知模块输出的结果生成开环行车轨迹。决策模块可能出现的故障包括硬件层面的车载计算资源受限以及软件层面的运动规划算法失败。计算资源受限故障出现的原因是车载处理器发生了物理性质改变,包括受到外部撞击、遭遇温度骤变、电气线路局部短路或断路等。算法求解失败故障的原因除算法完备性差这一自身因素外,还包括一些典型的外部因素,如因行车情境发生显著变化而导致的既定运动规划命题不存在任何可行解情况。
控制模块负责对上游决策模块提供的开环轨迹进行闭环跟踪,计算出所需的横、纵向运动控制量(转向角、加速度等),并驱动底盘执行机构完成转向、加速和制动等操作。适合由运动规划环节介入的控制模块故障包括控制器跟踪性能不佳和底盘执行机构失效。跟踪性能不佳是指由于控制器算法结构设计或参数匹配不当造成的轨迹跟踪误差过大。底盘执行机构失效是指转向或动力等底盘执行机构故障导致车辆部分或全部丧失对运动控制指令的响应能力。
1.3 故障安全运动规划的研究内容
故障安全运动规划旨在通过决策模块的运动规划方法消除或削弱1.2节所述故障的影响。如图2所示,故障安全运动规划方法在准确了解车辆剩余工作能力(感知、决策和控制能力)的前提下重构运动规划问题并进行快速求解。需要说明的是,故障安全运动规划顺利实现的重要前提是假设车端故障能够迅速而准确地得到诊断。
图2 故障安全运动规划基本执行流程Fig. 2 Basic execution process of fail-safe motion planning
正常工况下的运动规划方法主要包括几何方法、采样搜索方法、数值优化方法以及机器学习方法[20-27]。故障安全运动规划仍旧依赖这些方法来完成求解任务,但故障安全运动规划命题需额外考虑故障因素,继而增删约束条件或调整代价函数。
2 感知模块故障条件下的故障安全运动规划方法
本节将从感知能力受限和传感器损毁两个角度分析故障安全运动规划方法的研究现状。
2.1 感知能力受限
视野遮挡、感知不确定性或定位失准都将对车辆感知周围环境的范围产生限制, 这些安全隐患易诱发行车事故。
2.1.1 视野遮挡
视野遮挡是导致汽车安全事故的重要因素之一[28]。国内一些低等级道路上的交通参与者路权意识淡漠,这增加了自动驾驶系统处理视野遮挡区域的难度[29-30]。设计可解决视野遮挡问题的故障安全运动规划算法的关键在于,确定被遮挡区域并对其中隐藏的交通参与者进行合理推断、预测,据此构建风险量化模型,随后求解出可避免潜在风险的行车轨迹。推测被遮挡区域内信息的方法可分为以下两类:
(1)粒子滤波算法
采用粒子滤波算法可对被遮挡区域内障碍物的分布及其状态作出可能性推测,据此规划出较为舒适安全的故障安全轨迹。如图3(a)所示,在交叉路口的道路中心线上铺设若干个具有随机初始速度和初始位置的粒子,然后赋予粒子以加速度并预测其运动[31];如图3(b)所示,粒子重分布后的状态(位置、速度、可视性等)是对被遮挡情况下未来环境演变的推测,根据该推测进行速度规划可有效防范被遮挡区域的风险。除对粒子的纵向运动进行模拟外,文献[32]通过给粒子随机指定横向位移来模拟车辆的宽度和横向运动,将粒子分布状态与基于代价函数的运动规划方法相结合,从而实现对故障安全轨迹风险的量化评估。为避免被遮挡区域的推测导致过于保守的行驶行为,文献[33]利用粒子滤波算法评估视野风险并将其与故障安全运动规划的代价函数相结合,具有更好视野的故障安全轨迹与粒子产生干涉的概率更低,故代价值也更低。该方法将倾向于对环境进行更多的探索以追求更高效的行驶轨迹。
图3 基于粒子滤波的盲区物体推测方法Fig. 3 Inference method for the object in a blind region based on particle filter
(2)增加虚拟的交通参与者
粒子滤波算法由于没有给出被遮挡区域可能发生最坏情况的假设,由此生成的故障安全轨迹仍旧存在碰撞风险[34],而在被遮挡区域的边界处加入虚拟的动态交通参与者并对其运动做出保守估计将可以消除此类风险。虚拟的动态参与者如图4所示,虚拟汽车被假设以城市道路允许的最高车速(40 km/h)驶出被遮挡区域边界。
图4 基于虚构动态交通参与者的盲区物体推测方法Fig. 4 Inference method for the object in a blind region based on virtual dynamic traffic participants
文献[35-36]提出,车辆在与虚拟的动态障碍物交会前应当保证能够紧急制动停车,由此可计算允许的最大安全速度并进行速度规划,该方法使得低速行驶的机器人可以安全应对被遮挡区域的风险。在处理虚拟交通参与者时,基于原路径进行速度规划,可生成安全、舒适的故障安全轨迹,但虚拟动态障碍物被假设以某一速度沿其车道行驶或做直线运动,仅适用于单车道、简单场景[34,37]。
在应对被遮挡区域的故障安全运动规划过程中,为了对虚拟交通参与者进行更真实的模型描述,文献[38-41]假设虚拟交通参与者将从视线边界处以一定的初速度和加速度向任意方向运动。文献[42]则采用基于集合的方法[43]对虚拟车辆的运动进行更精准的建模,并结合主动预防碰撞策略规划故障安全轨迹,当被遮挡区域冲出其他车辆时可以及时减速、绕行。
城市路况下多种交通参与者类型(机动车、非机动车、行人等)可能并存,在故障安全运动规划中对被遮挡区域的信息进行推测时仅考虑汽车显然并不能够应对复杂多变的场景。文献[44]利用势场理论对虚拟行人进行建模,横穿马路的虚拟行人所产生的斥力势场将降低故障安全轨迹的速度,以至于当危险发生时车辆可及时制动,从而避免碰撞发生。文献[45]引入基于虚拟行人势场的代价函数,避免故障安全轨迹距离被遮挡区域边界过近。文献[46]认为被遮挡区域边界所处的位置决定虚拟交通参与者的类型,当遮挡区域边界位于人行道时,设置虚拟的行人而不是汽车显然是更合理的推测。
对被遮挡区域的过于保守推测会使通行效率降低。为了安全但不过分小心的应对被遮挡区域的风险,文献[47]将虚拟交通参与者不同轨迹的发生概率加入速度规划问题的代价函数中,并保证错误的概率估计仅会影响轨迹舒适性而不影响安全性,有利于提高故障安全轨迹的规划效率。文献[48]通过追踪相邻时刻被遮挡区域边界变化情况,对虚拟交通参与者的速度及姿态角等信息进行更为精准的估计,在感知能力受限的情况下充分发掘已知的环境信息以减少甚至消除对被遮挡区域不必要的保守描述,避免在处理被遮挡区域时过度谨慎。文献[49]基于“collision at rest”原则处理被遮挡区域风险,即若车辆能够在与虚拟交通参与者相撞前停车,则认为即便发生碰撞车辆承担的责任也不大。其轨迹拓展时的被遮挡区域风险评估如图5所示,风险评估过程中使用动态扩张的阴影区域推测虚拟交通参与者的运动状态并允许规划轨迹与该区域相交,但必须保证在每一轨迹点处存在可躲避动态阴影区域的安全停车轨迹;同时,该方法在停车轨迹安全性的判定中,需考虑车辆对障碍物反应时间的影响,车辆反应速度越快,其行驶轨迹将更具侵略性。文献[45]提出“honking at rest”的概念,即确保先于紧急碰撞隐患的出现而鸣笛预警,从而降低紧急事故发生率并减轻自动驾驶车辆的事故责任。“collision at rest”与“honking at rest”旨在避免因规避潜在突发风险而规划出过于保守的运动轨迹。
图5 文献[49]提出的轨迹风险评价方案流程Fig. 5 Risk assessment process of trajectories proposed by Ref. [49]
2.1.2 感知不确定性
现实环境中固有的传感器噪声、定位偏差及多帧数据融合偏差等因素会造成所感知到的障碍物状态存在不确定性,因此依据不确定的障碍物信息进行运动规划存在安全隐患。文献[50]利用多帧传感器感知数据结合卡尔曼滤波算法将凸多边形障碍物状态的不确定性用多元高斯分布表示,并在基于混合A*的故障安全运动规划中利用该分布和机会约束模型进行碰撞检测,将碰撞概率限制在给定范围内以保证节点扩展的安全性。由于考虑了障碍物数据的不确定性,该方法生成的故障安全路径将趋向于保守的障碍物绕行方式,以避免车辆驶入障碍物密集的区域。在人-车冲突场景中,行人的随机不确定性行为会使车辆存在碰撞风险,文献[51]基于马尔可夫模型[52]描述行人的不确定状态,通过无迹变换[53]估计不同避障轨迹的碰撞概率,并将该碰撞概率与稳定性、舒适性等指标相结合,可对故障安全轨迹的风险进行量化评估。
除了系统固有的感知不确定性以外,特定外部环境(扬尘、雨水等)也可能引起感知能力下降,从而使安全性受到威胁。为适应感知能力下降而带来的不确定性,文献[54]在可提供功能降级的容错系统架构中实现故障安全运动规划,当故障监测模块探测到道路、天气等外部环境条件恶化等情况时,立即触发功能降级操作并修改运动规划参数,必要时可紧急停车。例如,在大雨天气情况下,传感器对环境识别能力下降,故障安全运动规划则禁止变道、超车的驾驶行为,以保证车辆的安全。
2.1.3 定位失准
在空旷环境或有高楼、树林、隧道等对定位信号严重遮挡等情况下,车辆定位可能发生严重失准,此故障将直接影响车辆行驶的安全性,甚至可能导致车辆冲撞障碍物。文献[55]对空旷或相似环境下车辆可定位性估计问题进行研究,并将量化的可定位性估计指标加入A*路径规划方法的代价函数中,使得自动驾驶车辆沿着规划路径行驶时可尽量避免由于定位失准而产生的行进轨迹混乱现象。文献[56]在不依赖高精度组合导航设备的情况下,使用基于强化学习的方法进行“端到端”的运动规划[57],该方法可实现从粗糙的参考路径点或低维局部障碍物信息到车轮转角的映射,通过在定位结果精度不高、跳变甚至定位信号完全缺失的环境中进行训练,该规划算法将具备应对定位失准的能力。
2.2 传感器损毁
文献[58]提出应当根据传感器硬件故障在不同场景下对自动驾驶功能的损害程度进行自适应性的故障安全运动规划。例如在高速公路行驶场景中,负责执行行人探测算法的硬件发生故障时,运动规划环节将不受影响并通过交互系统向驾驶员报告故障;如果相同故障发生在城市道路场景,那么该行人探测算法将在备份的处理器核心上以较低速率运行,同时运动规划环节将降低行驶速度。至今,在传感损毁条件下进行运动规划的研究工作相对稀少。
3 决策模块故障条件下的故障安全运动规划方法
现存的面向决策模块故障的运动规划方法可分为两类:被动紧急规避与主动防范碰撞。被动紧急规避策略是在碰撞即将发生时通过执行紧急制动或规避动作来尽可能避免碰撞事故。主动防范碰撞是在环境态势恶化初期通过提前采取保守行驶方案,从而避免车辆陷入紧急情境中。
3.1 被动紧急规避策略
基于被动紧急规避策略的故障安全运动规划方法用于应对决策模块软件故障。具体而言,在车辆自动驾驶过程中,如果车辆只是简单地推测其他交通参与者未来的正常趋势,但对其潜在的异常行为及可能造成的后果不做任何预判,则自动驾驶行为将显得激进而不够慎重;一旦其他交通参与者的未来行为偏离预期,自动驾驶车辆将很可能陷入危险处境,此时车辆既定的正常运动规划问题不再有解,这会很自然地导致正常运动规划求解过程失败,即1.2节所提及的决策模块软件故障。由于车辆此刻已处于危险境地,车辆需要作出应激性的快速规避动作来应对。实现此类功能的故障安全运动规划方法包括人工势场算法、弹性带算法、模型预测控制算法、在线查表法以及采样搜索优化法。
3.1.1 人工势场法
人工势场法因其简单直观、规划速度快且易满足紧急避障算法实时要求的特点,在运动规划技术发展早期被用于为故障安全操作提供应激性紧急避障路径。
1986年,Khatib[59]首次提出人工势场算法并将其用于机器人路径规划。人工势场算法原理如图6所示,目标点和障碍物分别对车辆产生引力和斥力;在引力与斥力叠加作用下,车辆在避障的同时趋向目标路径。人工势场算法原理直观、模型简单、消耗计算资源极少,因此作为一种紧急工况下的应激性避障约束方法具有计算速度极快的优势。在基本人工势场法的基础上,一些研究通过引入道路边界斥力势场[60]或道路中线引力势场[61],使得紧急避障路径远离道路边界或车辆尽可能沿目标车道中线行驶。
图6 基于人工势场的运动规划方法原理Fig. 6 Principle of motion planning based on artificial potential field
虽然人工势场法计算响应较快,但其显著缺陷是易陷入局部最优解而无法进一步提升路径规划质量。在解空间之中,局部最优解处于斥力、引力平衡点,往往导致规划路径的过早收敛或局部振荡[62]。文献[63]认为紧急避障运动规划的首要任务仍是躲避障碍物,因此去除目标引力势场的作用以避免紧急避障路径规划陷入局部极值;与此同时,周围障碍物的距离和自身车体运动方向等信息被综合起来,从而完善了对障碍物斥力势场的建模过程。在距离相同的条件下,处于运动方向的障碍物的威胁度要高于非运动方向的,以避免紧急避障路径规划对障碍物反应过度。
3.1.2 弹性带算法
弹性带(elastic band)算法最早由Durbin和Willshaw[64]提出,用以解决旅行商问题,后被广泛应用于机器人路径规划领域[65]。弹性带算法将待规划的路径视为一条可灵活伸缩的弹性带,弹性带受到障碍物排斥且在自身伸长受到内部阻抗力,斥力与阻力平衡条件下的弹性带形态对应着形态平滑优美、长度较短的行车路径。与人工势场法类似,弹性带算法计算速度极快,因此适用于紧急规避运动规划任务[66]。
文献[67]将弹性带算法引入到自动驾驶汽车的紧急避障路径规划问题解决方法中,通过三次样条曲线对生成的路径点列进行插值,从而获得符合车辆运动学规律的紧急避障路径。弹性带算法的缺陷在于弹性带的初始状态决定了最终结果的同伦类别,这意味着弹性带无法跨越障碍物,且被障碍物向着错误方向排斥至道路边界以外,或者陷入多重障碍物之间。为解决同伦类别关联的问题,文献[68]通过沿左右车道设置两条可选择的初始路径来确定多种同伦类别。文献[69]首先扩充备选弹性带数目,N个障碍物的2N种不同绕行方式分别有对应的弹性带,筛选出横向加速度最小的避障轨迹;并引入道路边界排斥力,以避免紧急规避运动规划的路径与道路边界相撞。
上述基于弹性带的紧急避障路径规划方法聚焦于确定道路行车的横向偏移量,未能充分利用车辆的全部横向纵向运动潜力。另外,车辆在高速行驶情况下急打方向盘容易发生甩尾及侧翻危险,因此在不考虑车辆非稳态动力学模型的前提下直接规划紧急规避路径存在安全隐患。针对这一问题,文献[70]为相邻弹性带节点赋予相同时间间隔,从而实现对转向和制动策略的同时规划,为车辆紧急避障提供更有力的安全保障。弹性带算法的其他改进策略已被应用于多车协同避障[71]、高速紧急避障[72-73]及行人避障[74-75]等涉及故障安全的规划任务中。
3.1.3 模型预测控制算法
模型预测控制(model predictive control,MPC)是一种以滚动求解最优控制问题为特色的控制方法。相较其他古典控制律(例如比例-积分-微分控制[76]等),MPC的特点是在滚动优化架构中求解一个简化的最优控制问题。这一特点使得MPC可在考虑车辆运动学或动力学特性的同时处理空间状态变量的各种约束,往往也被作为一种运动规划方法,体现了一定的抗干扰鲁棒性[77]。将MPC应用于车辆紧急避障路径规划,可获得符合车辆运动学约束且可靠的结果[78-81]。
因MPC需要调用梯度优化方法求解一个经简化形成的二次规划(quadratic program,QP)问题,因此,相较人工势场法或弹性带方法,其计算速度往往更缓慢。为防止MPC方法的计算效率进一步降低,上述QP问题一般不会包含精细的避障约束,这会导致车身与障碍物之间存在碰擦隐患。为解决紧急避障路径规划任务中的上述问题,文献[82]引入以阶跃函数为基础的禁区边界惩罚函数,并根据车辆的尺寸确定禁区圆半径,若模型预测过程中某一时刻车辆质心落入禁区内,避障惩罚函数值将急剧增大,从而确保所生成的故障安全路径成功避开障碍物。
车辆在极限情况下紧急避障时,躲避障碍物与保持车辆稳定未必能够同时实现,因此当二者发生冲突时需调配优先级。文献[83]使用BP神经网络来动态决策目标函数中避障惩罚项和稳定性惩罚项的权重,当车辆存在碰撞风险时,避障惩罚项将被赋予较大权重以优先满足避障需求。文献[84]将避障条件和车辆稳定性条件作为MPC中的约束,并分别引入松弛变量予以软化,避免在避障和车辆稳定性约束两者发生冲突时发生求解失败[85],在目标函数中被赋予更大权重的避障约束松弛因子将迫使故障安全路径违反车辆稳定性约束,从而保证避障。除紧急避障方案外,上述松弛方案旨在保障运动规划的成功率,这也是所鼓励的一种故障安全运动规划理念。
3.1.4 在线查表法
当决策模块发生故障的典型外部原因是环境发生突变时,其导致正常的运动规划命题不再有解,此时自动驾驶汽车通常处于危急的境地之中,这意味着故障安全运动规划方法必须在极短时间内形成应激性的紧急避险行车方案。除计算时效性之外,理想的故障安全运动规划方法必须充分考虑车辆的运动学/动力学规律,否则将生成一条不易被跟踪执行、无实际意义的避障轨迹。人工势场法、弹性带算法虽然计算实时性极强,但并未对车辆运动学规律显式建模,生成的路径未必易于跟踪;MPC方法虽然能够体现车辆运动学甚至是动力学约束,但计算量较大,因此实时性较差。事先离线生成备选轨迹数据库并进行在线查表的方法有望同时满足故障安全运动规划的实时性和易跟踪性要求。
在以紧急驻车为目标的故障安全运动规划中,文献[86-87]对初始车速和停车点进行离散化采样枚举后,采用计算最优控制方法离线生成数条“换道+减速停车”轨迹并存入数据库。在紧急情况发生时,从数据库中调取符合初始车速条件的轨迹进行在线碰撞检测和代价评估,筛选出最佳轨迹作为故障安全运动规划的结果。
3.1.5 采样搜索-优化算法
采样搜索-优化方法属于更加彻底的MPC方法,其首先采用采样搜索方法确定同伦类别,随后以热启动的方式实施计算最优控制,从而得到数值最优轨迹。该方法的优点在于可规划出符合车辆运动学约束、安全且舒适的轨迹,但其计算实时性低于MPC方法的。为保证实时求解故障安全停车轨迹,文献[88]将路径和速度规划解耦以简化运动规划计算复杂度;为避免速度规划问题引入精细碰撞约束而导致优化求解缓慢,通过混合A*算法在“位移-速度-时间”三维离散状态空间中采样搜索得到的粗糙结果来构建线性碰撞约束,使得速度规划问题转化为QP问题,从而得以快速求解。
3.2 主动预防碰撞策略
基于被动紧急规避策略的方法并未对周围环境恶化情况进行及时预判,因此可能将车辆引入决策模块难以处理的危险处境中,严重情况下甚至会使车辆进入不可避免的碰撞状态(inevitable collision states,ICS)[40,89],即无论车辆执行何种轨迹,碰撞终将发生。基于主动预防碰撞策略的故障安全运动规划方法旨在对故障发生的隐患进行提前预判,从而提前采取规避风险的行动。
2016年,基于主动预防碰撞策略的故障安全运动规划算法被首次提出[90-91]。图7示出该算法在相邻两时刻(ti和ti+1)的规划过程。该算法在每个时刻采用基于计算最优控制方法生成名义轨迹和故障安全轨迹。名义轨迹仅对交通参与者的未来状态进行简单预估,该轨迹在较长时域Th1内引导车辆正常行驶。故障安全轨迹对应较短时域Th2,其基于计划轨迹(名义轨迹前t′时间部分)进行运动规划,以规避其他交通参与者的可达区域。该可达区域采用基于集合的预测方法[43,92]对交通参与者在运动能力范围内的所有可能行驶行为做出了保守估计,使得计划轨迹和故障安全轨迹的安全性得到保障。
图7 基于主动预防碰撞策略的故障安全运动规划Fig. 7 Fail-safe motion planning based on active collision prevention strategy
主动预防碰撞策略的关键思路如图7(b)所示。在ti+1时刻,只有同时存在合法的计划轨迹及其对应的故障安全轨迹时,车辆才被允许正常执行计划轨迹;否则决策模块将因存在故障隐患而触发故障安全机制,立即执行所计算的ti时刻故障安全轨迹而紧急驻车,及时采取保守驾驶行为以避免决策模块处理复杂棘手的外部环境。该算法的缺点在于使用基于计算最优控制与基于集合的方法计算轨迹和可达区域,会导致计算量大且无法满足算法实时性要求[93]。此外,若处于较为狭窄的道路环境中,对可达区域过于保守的估计将不利于行驶效率的提升。
文献[93-99]对文献[91-92]提出的故障安全运动规划算法不断改进。文献[93]采用凸优化理论[94]将故障安全运动规划问题转化为横纵方向分别求解问题,由此得到的QP问题可被快速求解,从而有利于保证规划的实时性,但分别对横纵方向运动进行规划在一定程度上会牺牲运动规划的灵活性[95-96]。文献[97]通过对交通参与者之间的相互关系进行分析,更合理地推测交通参与者的运动轨迹,从而修剪可达区域中的冗余部分,尽量避免因估计的可达区域过大而使得故障安全轨迹的规划显得保守。文献[98]在碰撞检测中,采用从简单到复杂的运动模型来逐步描述交通参与者的可达区域,并对前一时刻可达区域的计算结果进行复用,以降低对计算资源的消耗量,从而保证算法的实时性;采用任意时刻策略与主动预防碰撞策略相结合的方案,可在计算资源有限的情况下保证车辆的安全性。文献[99]考虑计算安全跟踪名义轨迹的最大时间窗口,在保证故障安全轨迹存在的前提下充分拓展计划轨迹的时域t′,从而降低计算故障安全轨迹的频次,该方法适用于道路上行人、车辆数量较少且相距较远的情况。
4 控制模块故障条件下的故障安全运动规划方法
本章重点回顾控制模块故障情况下的运动规划方法,包括以制动停车为目的的速度规划方法和容错控制方法。需要注意的是,本章所涉及的一些容错控制方法在底盘执行机构失效时承担了部分运动规划的职责,因此将这些容错控制方法视为故障安全运动规划方法并加以分析。
文献[100-101]提出一种由备份的树莓派电脑提供计算能力的制动停车系统,在故障发生时,该系统假设前轮将被固定在某一角度,然后根据实时行驶路况求解最优的制动液压缸阀门位置序列,从而实现速度规划,避免因紧急停车而发生车辆失控和追尾等危险,并尽可能使停车位置远离危险区域(铁道口、十字路口及正常行驶的高速车道等)。
一些有关车辆容错控制的研究针对转向系统故障设计了具有容错功能的控制器,并基于故障信息重构车辆运动控制模型,为自动驾驶提供冗余行驶的能力,实际上承担了故障安全运动规划的工作。文献[102]在基于四轮转向的车辆发生前轮或者后轮转向系统故障时,改用后轮或前轮转向控制模型继续进行车辆运动控制,避免因盲目停车导致正常行驶的道路拥堵而发生事故。文献[103]针对轮内电机驱动车辆的转向系统故障提出一种利用差动转向[104]控制四轮的转矩输出来实现车辆运动控制的方法。文献[105]在转向系统故障时利用差动制动产生减速度和偏航力矩,控制车辆的横纵向动态并引导车辆安全靠边停车。文献[106-110]则在转向系统故障时通过给前轴两轮施加不同的驱动力矩促使前轮发生转向,利用差动辅助转向[111-112]实现车道保持和路径跟踪控制。
文献[113-114]对速度传感器故障时的纵向运动容错控制进行研究,观测故障信号的误差并对其进行补偿,以避免因输出错误控制量而导致追尾、翻车等事故,从而实现故障安全纵向运动规划。
5 发展展望
故障安全运动规划将成为自动驾驶产品品质控制的重要环节,以下问题在今后的研究中将值得关注:
(1)对车辆故障进行准确、快速诊断是故障安全运动规划方法得以顺利实现的重要前提。如何在故障无法被准确诊断的不确定性条件下设计合理的故障安全运动规划方案,这是一个具有现实意义的科学问题。
(2)故障安全运动规划的能力边界需要被清晰地界定。随着智能车的不断发展,车辆的故障类型将增加,故障组合情况数目也会相应增加,而决策规划领域相关技术也在不断发展。因此,应设计一些相对稳定的原则与准则去判断某类故障是否适合由故障安全运动规划方法处理。另外,必须指出的是,故障安全运动规划方法的使用将会导致一些自动驾驶中的故障情况被掩盖,不利于自动驾驶车端模块的隐患排查。因此,故障安全运动规划适合被部署在一些相对成熟的自动驾驶车辆系统之中。
(3)故障安全运动规划技术的发展应坚持兼顾多重因素,协调计算实时性与轨迹质量(即运动学/动力学可行性)之间的矛盾以及冗余安全性与行车高效性之间的矛盾。笔者认为,3.1.4节所述的在线查表方法是目前在工程实践中最有希望被应用的方案,它可以兼顾上述多重技术开发诉求。在沿袭该方案的基础上,针对性地研发专用处理器硬件也是值得重视的故障安全运动规划技术发展方向之一。
(4)故障安全运动规划的结果对车辆系统以及外部环境未来影响的推演值得重视。例如,在车辆前轮偏转机构部分失效的故障条件下,特定类型的前轮偏转角度指令可能会造成偏转机构的进一步损害,导致车辆故障进一步演化;车辆在执行紧急规避动作时,也应充分考虑周围社会车辆的未来交互式应对行为。上述因素复杂程度极高,几乎无法直接构建于运动规划模型之中进行求解,因此应设计全新的计算架构来处理复杂的故障安全运动规划任务。
(5)灯光与鸣笛是人类驾驶员操纵车辆运动过程中的交互式沟通方式,巧妙的灯光与鸣笛操作有望高效地替代被动的规避行驶动作。从长远来看,广义的故障安全运动规划应将灯光与鸣笛操作纳入决策变量范围之内。
(6)在自动驾驶网联化发展的趋势下,利用车辆编队整体能力对编队中个别车辆出现故障的情况进行弥补是一项极具研究潜力的议题。
6 结语
自动驾驶运动规划技术在近年来已取得了长足进步,但故障安全运动规划方法仍值得深入探究。本文从自动驾驶车端感知、决策及控制三大模块发生故障的角度对现有的故障安全运动规划方法进行了分类、梳理与分析。
随着自动驾驶技术的成熟及其产业化进程的推进,故障安全运动规划将在安全保障方面发挥愈发重要的作用。本文旨在为从事该领域研究的学者提供开展研究的参考,并呼吁更多学者与我们一道投身此研究领域中。