厉健峰 孔德宝 吕颖 吕铮 赵小红
(1.中国第一汽车股份有限公司智能网联开发院,长春130013;2.汽车振动噪声与安全控制综合技术国家重点实验室,长春130013)
主题词:自动驾驶 决策系统 安全验证 责任敏感安全
缩略语
ADS Automated Driving System
RSS Responsibility Sensitive Safety
LTE-V Long Term Evolution-Vehicle
V2V Vehicle To Vehicle
ACC Adaptive Cruise Control
APB Automatic Preventive Braking
AEB Automatic Emergency Braking
ADAS Advanced Driving Assistant Systems
MTL Metric Temporal Logic
MPC Model Predictive Control
STL Signal Temporal Logic
RNN Recurrent Neural Network
近十年,自动驾驶系统(Automated Driving System,ADS)的研究表明,ADS能增加出行的便利性、安全性和舒适性,吸引了学术界和工业界的极大兴趣[1]。先进传感、智能决策和鲁棒车辆控制等关键技术的进步加速了自动驾驶的发展[2]。虽然已经取得了重大进展,但该行业仍处于运输革命的初级阶段,需要克服的困难很多[3]。
自动驾驶系统安全性是自动驾驶汽车走向量产的一大挑战[4]。现有的自动驾驶汽车安全性验证方法通常基于行驶里程、接管次数、虚拟仿真和场景测试[5]。这些方法在实际的应用中都呈现出各自的不足与局限,难以满足未来海量、多维场景下高度自动驾驶汽车安全验证的有效性、合理性与实用性[6]。
Mobileye提出了责任敏感安全(Responsibility Sensitive Safety,RSS)模型[7],旨在成为开放的在线安全认证标准。该模型基于安全规则实时校验车辆当前的安全态势,限制本车可能导致事故的行为,明晰发生事故时的责任主体,RSS由IEEE P2846工作组进一步开发[8]。
本文第2章,介绍自动驾驶系统安全性验证的相关方法,指出了应用责任敏感安全模型的优势。第3章,简要介绍责任敏感安全模型概念,现有的系统集成方案,已有研究中对该模型进行的改进,以及该模型本身对于感知系统的依赖。第4章,介绍应用责任敏感安全概念的研究尝试。第5章,给出责任敏感安全模型现状的总结以及未来研究的展望。
目前,在工业界广泛采用的评估自动驾驶车辆决策系统安全性的4种方法分别是:道路实测、人工接管次数、仿真和基于场景的测试。
道路实测方法是基于统计的观点,试图证明自动驾驶车辆在统计上比人类司机更好。要获得足够的统计证据来证明所声称的错误概率(即做出不安全驾驶决策的机会)已经满足,就需要行驶大量的里程。文献[7]推导并证明了为达到事故率为10-9/h,需要483×108km(300亿英里)的道路实测里程,且每次系统程序升级后需要再次进行测试。表1为截止到2020年11月各公司的自动驾驶系统实测里程,远未达到需要的里程。此外,在实测的过程中产生的驾驶里程对于自动驾驶系统来说很可能是低效的,简单场景下的安全行驶并不能作为安全评价的依据。
表1 各公司实测里程与每次接管的里程[4]
另1种方法为统计人工接管次数。人工接管被定义为由于自动驾驶系统做出了不安全的决策导致即将发生事故,而人类驾驶员不得不干预操作的情景。接管次数统计了更频繁发生的“即将导致事故”。该方法的问题与道路实测的方式是相同的,即实测中“简单”和“有挑战性”的场景分布是未知的。此外,“即将导致事故”与“真正的事故”在困难的工况下是否一致是未知的。表1统计了各公司在道路实测过程中平均每次接管的里程。
仿真的方法可以极大地提升道路实测的速度。其出发点在于构建1个虚拟的自动驾驶系统运行环境,在算力足够的条件下,可以在10 s内运行161×108km(100亿英里),以此来快速地达到目标测试里程。目前,已经有多家商业化的仿真平台[6],包括Apollo(百度)、Carcraft(Waymo)、Carla、Carsim、PreScan等。仿真验证的问题在于如何验证仿真器可以完全可信地代表真实世界。2种在真实世界中有着不同事故可能性的驾驶策略,可能由于仿真器中未建模的1种特性而在仿真器中测试得到的事故率一致。即使证明了仿真器可以反映某一驾驶策略的真实性,也不能保证可以反映另一种驾驶策略的真实性。
基于场景的测试的出发点是只要穷举在真实世界中存在的驾驶场景,然后将自动驾驶系统在这些场景下进行测试,就可以认为自动驾驶可以安全的做出驾驶决策[9]。这种方法的基本假设是只要自动驾驶系统可以通过这些选取出来的驾驶场景,那么它就可以通过所有类似的场景。问题在于系统可以通过拟合来通过这些测试,这会导致自动驾驶系统在测试了的场景上表现优异,而在未测试的场景上表现较差。
以上安全性验证方法在实际的应用中都遇到了一定的困难。而责任敏感安全模型作为1个形式化的安全模型,它基于安全规则实时校验车辆当前的安全态势,限制本车可能导致事故的行为,保障本车永远不会导致事故的发生。当所有车辆都遵循该模型时,交通事故将永远不会发生。在37个典型的事故场景下对责任敏感安全模型进行了理论测试,这些场景覆盖了99.4%的美国国家公路交通安全管理局(NHTSA)事故场景[10]。结果表明,责任敏感安全模型可以有效地保持车辆的安全状态[11]。
责任敏感安全模型包括了以下5条关键的规则[7]:
(1)不要从后部撞上其它车;
(2)不要鲁莽地插入前车;
(3)路权是给定的不是抢来的;
(4)对视野受限的区域要格外小心;
(5)如果可以避免一起事故而不引发新的事故,那么一定要这样做。
这些规则通过参数化的数学方程描述,通过它们可以决定自动驾驶车辆是否安全。如果不安全,RSS提供对执行器执行指令的限制,这会把自动驾驶车辆带回到安全的状态。因此,责任敏感安全模型在自动驾驶的技术栈内可以被用作1个独立的安全层(图1)。
图1 RSS在ADS规划中作为独立安全层的集成示例[13]
以规则1为例来详细说明。规则1指出车辆应该与其它车辆保持1个安全的纵向距离dsafe,以此来使自己有能力应对前车突然的紧急制动(图2右车所示)。因此需要保证dsafe≥dmin,dmin为后车反应和制动的距离总和,如式(1)所示。
图2 纵向后车反应和制动距离总和d min[13]
式中,ρ代表后车的反应时间,amax为后车在反应时间内的最大加速度,βmin为反应时间之后后车必须实施的最小减速度,Vr为后车当前的速度。同样,vf为前车的速度,βmax为前车制动产生的最大减速度。最后,[x]+定义为max[0,x]。
如果自动驾驶车辆进入了危险情况,例如:违反了前面提到的规则之一,责任敏感安全模型会提供1个“适当反应”。这是对执行器控制指令的限制,它会将自动驾驶车辆带回到安全的状态。在纵向的例子中,这表明2车之间的距离小于dmin,责任敏感安全模型会要求后车以至少为βmin的减速度减速,来避免本车造成事故。
处理的整个过程如图1所示,Extract Situation代表从传感子系统中抽取周围所有车辆的信息,Check Situation按照前面提到的规则进行检查,Proper Re⁃sponse计算在危险的情况下执行器指令的限制。
图3 RSS C++库集成进ADS系统[12]
该库仅实现了文献[7]中定义的1个子集,包括了多车道的纵侧向安全距离与适当反应定义,不同路型及不同路权的交叉路口纵侧向适当反应的定义,非结构化道路与行人[7]。Gassmann[12]等开发的开源标准C++库并未实现视野受限、无侧向冲突的交叉路口、纵侧向的补偿反应。
文献[12]展示了将该库集成到百度Apollo技术栈及仿真器中的1个示例,图4为其集成示意图。该示例直接将RSS模块集成到了自动驾驶系统的规划子模块中,接收来自Apollo的环境信息,转换为RSS世界模型的格式,执行RSS检查,最后产生的RSS适当反应输入到Apollo的规划子系统中做进一步解释。
此外,在文献[13]中,Gassmann等将RSS集成到了CARLA[14]的仿真环境中。图5为集成的架构示意图,分为RSS传感器与RSS限制器2个部分。RSS传感器部分可以像CARLA的其它传感器一样与车辆连接,产生RSS适当反应及加速度限制信息,而本身不对车辆的控制产生影响。当需要执行RSS限制的时候,可以实例化RSS限制器,按照RSS的限制值对客户端产生的车辆控制指令进行限制。
图5 RSS集成进CARLA仿真环境架构[13]
3.3.1 参数优化调整
RSS安全距离定义的数学模型中有多个需要预设值的参数,主要包括了反应时间、前车的最大制动减速度、后车的最大加速度和最小减速度值。这些参数值的大小直接影响到是否能保证本车的安全性,是否能保证足够的通行效率。绝对的安全性会导致极大的安全距离,从而使通行效率降到极低。因此参数的设定是对安全性与有效性的平衡。
Rodionova等[15]提出了1种评估自动驾驶系统安全模型性能的方法,利用了MTL规约作为安全的尺度。基于该方法Rodionova等在CARLA仿真环境中形成了评估RSS安全性的管道,评估了不同参数组合下RSS的安全性与有效性。结果表明,保持安全边界的同时稳定的驾驶行为可以达到最高的有效性。
动态地改变参数设定是另外1种平衡安全性与有效性的方法。Oboril等[16]提出了1种在RSS内部考虑驾驶场景风险的动态参数调整方法,在交通密度增加的同时显著降低安全裕度,同时保证了安全风险在限定的范围内,达到了安全性与有效性的平衡,图6为该方法的集成示意图。
图6 RSS动态参数调整系统集成示意[16]
此外,在特定的应用中,采用特有的参数设定也是平衡安全性与有效性的1种方式。Li等[17]在基于LTE-V的V2V通信的跟车工况下,分析了信息包传送的时间,发现其与距离和交通密度呈近似线性的关系。在RSS的反应时间参数设定中考虑了不确定性以及它与距离和交通密度的关系,深度定制化了该参数值。理论及仿真实验表明该改进的RSS安全策略的有效性。
金属性接地短路指线路发生接地时,短路电阻数值很小,可以简化为直接接地,如图1.1。最常见的有经弧光电阻接地。金属性短路接地故障点的边界条件为:UA=0;IB=0;IC=0(以A相短路接地为例)。
3.3.2 策略调整
在RSS的定义中,在结构化道路上的安全距离是基于车道坐标系定义的,在非结构化的道路上的安全距离是基于行驶轨迹定义的。而且适当反应的定义只是基于制动操作。这样的设定在某些应用中会出现冲突并造成车通行效率降低。因此,在一些研究中对相应策略做出调整,在达到保障安全的条件下提高通行效率。
Iaco等[18]指出安全的适当反应可以是制动减速,也可以是切换到相邻的车道上。在RSS的框架内将转向干预也视为1个有效的适当反应,可以实现更小的跟车距离,提高有效性。
Khayatian等[19]将RSS模型应用到网联自动驾驶车辆的运动规划中时发现,基于车道坐标系定义的RSS模型无法在复杂的交通场景下(如:环岛)保证安全,而且也无法解决死锁的问题。因此,提出了基于轨迹形式化的RSS模型,很好地保证了复杂场景下的安全,死锁的问题也被解决,通行的效率得到了提高。
自动驾驶系统的感知不确定性是普遍问题。RSS进行安全检查的前提是拥有对周围环境的语义理解,包括本车的运动信息、周围环境的高精地图、其他动态目标的运动信息,这需要通过自动驾驶系统的感知子系统获取。而目前感知子系统大多依赖深度学习算法,其安全性并没有通用的安全层来保证。因此为保证RSS正常工作,需要特定的安全保障措施。
Buerkle等[20]提出了1种基于动态占用网格的监视/恢复方法。该方法可以发现感知系统的失效,并且成功地从错误中恢复,提供给RSS一个正确的世界模型。
Salay等[21]提出通过使用感知不确定性的信息,建立1个与RSS相结合的形式化感知模型,以减轻误识别的影响。这种方法将不确定性表达为不精确的感知,并在RSS中将动作限制在给定感知不确定性的情况下支持安全的行为。
尽管完整的RSS在实际中应用还面临着诸多问题,但是在某些特定的场景下借用RSS中的特性实现现有系统改进的应用越来越多。这些应用可以分为以下3类:跟车场景、车道变换场景和将RSS作为场景是否安全的评判标准。
跟车场景是L2级自动驾驶中最为普遍的场景。在传统的ACC系统中集成RSS后可以提高原有系统的安全性。
Tran等[22]用部分可观测马尔可夫决策过程来优化ACC系统的驾驶策略,最后在自适应MPC控制下实现了RSS。
Chai等[23]针对在ACC中集成RSS导致跟车距离过大的问题提出了包含触发条件的RSS。定义了3种不同的跟车距离,分别对应着3种不同的情况:原RSS定义情况;在RSS基础上考虑后车在反应时间内不加速;在前1种情况的基础上考虑后车在反应时间之后以最大减速度制动。此外,还定义了2个触发器,以在3种情况之间切换。试验结果表明,该方法显著降低了跟车距离。
Li等[24]提出了态势已知的跟车避撞策略,将跟车的工况分为了3种状态,分别是跟车状态(前后2车速度接近)、远离状态(后车远离前车)、接近状态(后车接近前车)。分别对应了不同的最小安全距离公式。此外还考虑了感知的不确定性,通过增加安全系数进行了形式化。理论分析与试验表明,该策略在保证安全的前提下提升了有效性。
Shwartz等[25]提出了1套全新的APB系统,它在现有的ACC、AEB硬件基础上融合了RSS,在车辆进入不安全的状态时,提前执行轻微的制动动作,保证车辆永远处于安全状态。该系统相比于AEB系统可以显著提升舒适性,从根本上避免AEB误触发的情况,理论证明该系统可以进一步降低事故率。
车道变换场景也是L2自动驾驶系统的典型场景。Naumann等[26]提出了1种安全平稳地车道变换策略,提出了3种插入间隔,图7为其车道变换策略的决策流程图。
图7 融合RSS的车道变换决策流程[26]
Zhao等[11]提出了形式化的基于谈判的车道变换策略,平衡了安全性与效率。基于交流的形式化车道变换策略,解决了路权的分配,将车道变换的过程分为3个阶段,形式化了每个阶段的安全条件。
在为自动驾驶系统场景测试创建场景的应用中,RSS可以作为场景是否安全的评判标准。
Hekmatnejad等[27]将RSS模型形式化为STL,基于此来验证和测试自动驾驶系统。此外,Hekmatnejad等还在文献[28]中提出了基于仿真的驾驶测试数据筛选与分类的方法,用来训练和测试控制器,使用RSS规则作为限定规约,过滤掉不满足RSS假设的随机测试,剩余的测试覆盖了控制器不能安全反应的场景。Karunakaran等[29]提出了偏向于最坏场景的自动驾驶系统测试验证过程。训练出1个深度强化学习模型,来产生坏的驾驶场景。强化学习模型以RSS为尺度来产生出回报,逐步地训练使得模型输出的场景越来越坏。Karunakaran在文献[30]中提出了利用RNN作为深度学习模型来产生最坏场景的方法。Yu等[31]在驾驶员的驾驶能力评估应用中,提出了基于RSS的驾驶能力指示器,以此来评估驾驶员的驾驶能力。
自动驾驶系统安全性是自动驾驶汽车走向量产的一大挑战。现有的方法在实际的应用中都表现出自身的不足与局限。责任敏感安全模型作为1种实时的验证方法,在线地检查车辆决策决策系统产生的控制指令是否违反了安全边界,将不安全的执行限制在安全边界内(图8)。当所有的车辆都遵循该模型时,可以显式地证明永远不会导致事故的发生。
图8 责任敏感安全模型
然而,目前仅实现了责任敏感安全模型的1个子集,模型中非常重要的视野受限、补偿反应特性并未实现;模型的参数不可变化,无法针对交通态势做出相应的调整。此外,模型策略的制订被认为过于保守,会导致交通效率的下降。该模型依赖完美的世界模型,因为自动驾驶感知子系统的安全性是责任敏感安全的基础。
尽管责任敏感安全模型作为自动驾驶系统的安全层的应用目前面临着诸多问题,但是将责任敏感安全的概念融合到ADAS系统中的应用越来越多,这显著地提高了传统ADAS系统的安全性以及通行效率。责任敏感安全模型还可以作为1种场景安全性的评价标准,以此来筛选出自动驾驶系统不能安全行驶的场景,进行针对性地训练。
未来责任敏感安全模型的研究需要集中在以下3方面:(1)模型实现中集成视野受限、补偿反应特性;(2)参数与策略的动态优化调整;(3)安全冗余可自修复的感知子系统。