编者按:本篇研究论文完整地介绍了基于自动驾驶汽车安全性的自主决策与轨迹规划解决方案,依据本文及其前期工作,可以在预测交通参与者行为后,实现非保守驾驶行为的安全轨迹验证,并为非安全情况提供了可靠的安全后备轨迹。本文提出的在线验证技术,可视为自动驾驶汽车运动规划框架下的安全层,具有较好的适应性和扩展性,并提供了直观且合理的真实交通场景验证结果。
本文译自:
《Using onlineverification to prevent autonomous vehicles from causing accidents》
文章来源:
NATURE Machine Intelligence
作者:
Christian Pek, Stefanie Manzinger, Markus Koschi &Matthias Althoff
原文链接:
https://www.nature.com/articles/s42256-020-0225-y
摘要:确保自动驾驶汽车不会造成事故仍然是一个挑战。本文提出了一种基于在线验证的技术,用于在任意城市交通情况下保证“合法安全”。合法安全意味着自动驾驶汽车允许其他交通参与者按照交通规则进行任何行为而永远不会主动造成事故。本文提出的技术可作为现有运动规划框架的安全层,为自动驾驶汽车提供预期的轨迹,具体方式是:通过验证预期轨迹是否符合合法安全并在关键的危险情况下提供后备解决方案。该技术已在实际交通中的特定城市场景中得到了证明。即使规划框架采用的是未考虑其他交通参与者的预期轨迹规划器,自动驾驶汽车也只会执行安全轨迹,因此,本文提出的在线验证技术可以大大减少交通事故的数量。
关键词:自动驾驶安全决策,自动驾驶轨迹规划,安全性,在线验证,其他交通参与者
安全仍然是实现自动驾驶汽车技术最主要的挑战之一,自动驾驶汽车的不安全决策会危及人类的生命,并在产品责任方面造成各方面巨大的经济损失。尽管自动驾驶正在逐步走向现实,但最近一些涉及自动驾驶系统的事故引起了各方关注[1],可以预见的是,行业相关的政策制定者会继续就如何认证自动驾驶汽车的自主安全水平进行商讨[2]。为了使自动驾驶技术得到大众接受,安全决策必须使所有道路使用者完全满意,到目前为止,汽车安全主要依赖于各种仿真和测试。然而,由于现实交通环境的特殊场景是无法穷举的,这些技术不能确保严格的自主安全水平[3,4],特别是在使用机器学习进行运动规划时[5]。
本文倡导将决策安全问题从“如何降低碰撞风险”转变到“如何通过在线验证确保主动安全”,这是证明无人驾驶系统始终满足安全规范的过程[6]。然而,在安全运动规划的背景下,人工标定或分类出所有不安全场景及自动驾驶汽车正确反应是个一项繁琐的任务[6]。虽然不能完全排除自动驾驶汽车发生事故的可能性(例如:当后面的汽车故意追尾导致碰撞时),但主动引起的事故能够而且应该被消除。为了避免自动驾驶汽车主动引起事故的发生,我们可以对人类司机有什么要求呢?根据《维也纳道路交通公约》(是全球78个国家的安全驾驶基础),人类驾驶员“应避免任何可能危及或妨碍交通的行为”[7]。受这些法律规则的启发,本文要求在其他交通参与者执行不违反交通规则的动态可行行为前提下,自动驾驶汽车的运动必须保持无碰撞,即“合法安全”(合法安全)[8][9]。
与相关工作相比,本文提出的方法考虑了其他交通参与者的所有合法行为以及自动驾驶汽车的无碰撞后备解决方案,可作为现有得到了目标轨迹的运动规划框架的安全层。本文提供以下三个关键特性:
1.在线评估:通过严格预测场景的所有合法未来演变,同时考虑测量不确定性,在自动驾驶汽车运行期间在线评估每种交通情况的安全性。与经典测试方法相比,甚至可以处理具有任意道路几何形状和交通参与者数量的场景;
2.危险情况的安全操作:该方法确保自动驾驶汽车始终具有危险情况的安全轨迹,可以在指定的安全区域内停止,作为发生危险情况时的后备计划;
3.结构化修正:无论提供的运动规划框架如何,都可确保自动驾驶汽车运行始终符合合法安全。即使某些交通规则尚未包含在该技术中,仍然保证安全有效,因为可从所有动态可行行为的集合中,仅删除根据所考虑的交通规则非法的行为;
图1 合法安全的验证。目标轨迹(黑线)通常只考虑其他交通参与者最可能的行为(灰线),本文的在线验证技术通过一直保持危险情况的安全轨迹(红线)来确保自动驾驶汽车符合合法安全。这些危险情况安全轨迹与其他交通参与者的所有合法行为集(蓝色区域)相比是无碰撞的,并保障自主车辆沿着其预定轨迹进入安全状态(灰色区域)。
一方面,当前的自动驾驶汽车验证技术一般是在系统部署之前的离线完成[10]。但因为自动驾驶汽车要在高度不确定的真实交通环境中运行,已经引入了在线验证方法来验证自动驾驶汽车运行安全性(参考[11]第 II-C 部分),如:通过逻辑推理[12][13]或避免不可避免的碰撞[14][15]。一旦轨迹被归类为不安全,以上方法通常不会为车辆提供后备计划。另一方面,在控制领域流行的安全方法是:鲁棒模型预测控制[16]-[18]和成熟控制器如边界保证[19]、李雅普诺夫函数[20]、控制器综合[21],这些方法可确保自动驾驶汽车避免不安全状态或始终保持在一组不变的安全状态内[22][23]。最新工作结合了可达性分析来计算系统随着时间的推移能够达到的状态集,可以验证在操作期间不达到危险状态[9][24]-[26]。然而,现有方法通常在计算需求上难以处理,也不能推广到任意交通场景,或者不能提供动态环境中危险集的所需预测。
自动驾驶的时变不安全集通常被定义为其他交通参与者的未来占用位置,可通过运动预测获得[27],现有的预测方法通常利用应用概率[28]-[30]或机器学习[31]-[33]来计算几组可能行为。只有当交通参与者偏离很少数预测行为时,自动驾驶汽车的安全才能得到保证,但这种偏离在现实交通场景中经常发生。通过结合可到达性的分析,预测能够考虑无限数量的动态障碍物未来可能行为[9][34]-[37],然而,允许其他交通参与者的所有动态可行行为过度限制了自动驾驶汽车的机动性。因此,本文基于可到达性的预测仅考虑在道路网络中动态可行且不违反交通规则的行为(见图1的蓝色区域)。
危险情况安全轨迹的运动规划器必须能处理小而复杂的解决方案空间,常用的轨迹规划技术要么使输入或状态空间离散化[38][39],要么在连续空间中应用变分法[40]-[42]。前一种方法受离散影响,可能无法在解空间中找到狭窄通道[43]或可能无法达到安全的终端状态[44]。而尽管基于变分的方法克服了这些限制,但由于非线性车辆动力学和避撞导致的运动规划问题的非凸性成为了重大挑战。因此,基于变分的方法通常在计算上很复杂[45]-[47]或必须通过解集引导才能在密集交通情况下工作[48][49],如:从左边或右边越障时,获取驾驶走廊的方法通常不考虑自动驾驶汽车的动力学[50]-[52],因此可能无法推理可驾驶性。本文将可到达性分析与凸优化相结合,以确定任意交通场景中动态感知驾驶走廊内的可驾驶危险情况安全轨迹。
本文的验证技术可保证连续的验证周期内自动驾驶汽车规划轨迹合法安全。每当现有运动规划框架的预期轨迹规划器提供目标轨迹Ic时,新的验证周期c就开始,其中每接收到下一个预期轨迹时,c递增 1。如果Ic被成功验证为安全,则自动驾驶汽车只能执行从tc时刻开始的新预期轨迹Ic。如果一条轨迹满足:(1)与由其他交通参与者的所有合法行为产生的预测占用位置无碰撞;(2) 可将自动驾驶汽车引导至安全终端状态,则该轨迹是合法安全。
通常,Ic用于规划预期运动的时间范围TIc是几秒,但是由于未来行为的不确定性越来越大,周围交通参与者的预测占用集在更长的时间范围内变得越来越大。因此,Ic在其整个时间范围TIc内通常是不安全的。因此本文不考虑全部预期轨迹Ic,而只考虑Ic的一小部分,即从tc持续到tc+Δsafec范围内认为其是合法安全的,如果它在其整个持续时间Δsafec内与预测的占用集无碰撞,则将其称为Icsafe。因为Icsafe不能确保自动驾驶汽车在t>tc+Δsafec时保持安全,本文计算连续的危险情况安全轨迹Fc,它需要平稳地接力Icsafe,在其整个时间范围TFc内与预测的占用集无碰撞,并将自动驾驶汽车过渡到安全区域。如果Icsafe和Fc存在并且在tc之前计算,本文称Ic验证成功,Icsafe和Fc的串联表示验证轨迹,并表示为Icsafe||Fc。
图2 重新规划期间的验证
a)在每个验证周期c中,通过计算安全部分Icsafe来验证给定的预定轨迹Ic和危险情况安全轨迹Fc;
b)如果周期c的验证结果是成功的(如图中c={1,2,4}),验证的轨迹Icsafe||Fc是从tc时刻开始执行的;如果验证结果不成功(如图中c = 3),验证的轨迹Ic-isafe和Fc-i被执行,直到一个新的预定轨迹再次被成功验证(如c = 4)。
图3 场景I(城市十字路口)的结果(预期轨迹Ic只有在成功验证后才会显示)
a)摄像机图像和场景的俯视图;
b)所选验证周期c的验证结果。
c)预期轨迹Ic只有在成功验证后才会显示
通过图2解释重新规划期间的验证程序,在最初的t0时刻假设自动驾驶汽车处于安全状态,在接下来的验证周期c=1中,成功验证了给定预期轨迹I1后(即获得I1safe和F1),在时间t1时刻允许自动驾驶汽车进入自动驾驶模式并开始执行I1safe中验证轨迹的I1safe||F1。然后,预期轨迹规划器可以提供新的预期轨迹Ic-c>1,以供验证。如果新的轨迹Ic被成功验证,自动驾驶汽车可以在tc时刻从先前验证的轨迹Icsafe转换到新的验证轨迹Icsafe||Fc;如果无法验证预期轨迹Ic,则继续执行周期c-i, i ∈ {1, …, c – 1} 中最近验证的轨迹Ic-isafe||Fc-i。当顺序执行Ic-isafe||Fc-i时,只有在最后时刻Ic-isafe之前没有新的预期轨迹可以成功验证时,才会执行危险情况安全轨迹Fc – i。因为本文已经预测了其他交通参与者所有未来的合法行为,只要他们不违反交通规则,这个先前验证的轨迹Ic-isafe||Fc-i就不会发生碰撞。因此,无论验证结果如何,都确保了合法安全。
对于实验中的所有验证周期c,危险情况安全轨迹Fc的开始时间等于下一个预期轨迹Ic+1的开始时间,即tc+Δsafec=tc+1。这是通过选择恒定的重新规划率Δt=tc+1−tc(意味着新的预期轨迹应以速率 Δt 执行)来实现的,该速率对于所有c设置为在Δt=Δsafec下恒定持续时间Icsafe。因此,当执行经过验证的轨迹Icsafe||Fc时,危险情况安全轨迹Fc的转变仅可能发生在tc+1。因此,在每个时间间隔[tc, tc+1] 中,自动驾驶汽车要么完全执行Icsafe,要么执行经过先前验证Ic-isafe||Fc-i的Fc-i一部分。换句话说,只有在当前验证结果不成功的情况下,自动驾驶汽车才会从预期轨迹安全部分过渡到危险情况安全轨迹。
图4 场景二(乱穿马路的行人)的结果
a)摄像机图像和场景的俯视图;
b)所选验证周期的验证结果;
c)预期轨迹Ic只有在成功验证后才会显示
在城市环境中,大多数事故发生在有行人的十字路口[53],为了证明本文提出的验证技术允许自动驾驶汽车处理这些关键情况,本文通过记录BMW 7系的真实交通情况创建了两个场景。通过对真实世界的记录进行后处理,并离线应用本文的验证技术,本文获得了如下所示的结果。对于每一个场景,本文使用来自BMW 7系的记录图像来说明交通状况的概览,并显示所选验证周期c的验证结果(如图 3 和 图4)。此外,本文在这两种情况下都证明了本文的方法可以保证任意预期轨迹规划器的合法安全(如图 5)。在补充信息中,本文进一步提供了一个说明安全车道变化的场景(该场景是发生事故的第三大原因[53]),进一步的结果包括视频、详细的计算时间(平均177毫秒)、所有使用的参数和可视化软件等以验证周期。
图5 不同规划期的验证结果
a)方案一中执行的速度曲线(周期c={1,6,10}的结果被标记为标示);
b)方案二中执行的速度曲线(周期c={1,4,14}的结果被标示出来)。
A. 场景一,在城市工况十字路口左转:
在车辆靠右行驶的国家,十字路口左转是最危险的操作之一,因为自动驾驶汽车必须考虑迎面而来的车辆通行权,并为专用车道上的潜在自行车让路 (见图3a)。迎面而来的车辆或自行车的行为可能会随着时间的推移而迅速改变,这增加了未来交通场景演变的不确定性。在任何情况下,自动驾驶汽车都必须为迎面而来的交通让路,同时不会因过于保守的行为而中断交通流。
本文通过使用危险情况安全轨迹来保护激进的预期轨迹来完成这一挑战,这个危险情况安全轨迹(1)符合通行权并且(2)永远不会在交叉路口区域停止自动驾驶车辆。自动驾驶汽车自动尊重路权,因为预测考虑了其他交通参与者的所有合法行为,并通过验证技术,决定是否可以在迎面而来的车辆进入交叉路口之前完成左转操作。
如图3b所示,在t1=0s时,自动驾驶汽车首先沿其预期轨迹接近交叉路口,即执行Icsafe, c ∈ {1, …, 4}。从t5=2.4s到t10=5.4s,本文的方法自动检测到预期轨迹不安全的情况,在这种情况下,在自行车明确通过之前不能排除在交叉路口区域内与迎面而来的车辆发生碰撞。因此,危险情况安全轨迹将自动驾驶车辆停在交叉路口(参见图3b中t6=3s时的危险情况安全轨迹)。在骑自行车的人通过后,立即成功验证了预期轨迹,并且自动驾驶汽车在迎面而来的车辆之前继续左转,如图3b所示,t10=5.4s。请注意,在该图中,危险情况安全轨迹覆盖了占用集,因为占用集显示在危险情况安全轨迹的最后时间(参见补充图 8,了解中间时间的占用集)。图3b还表明本文的预测包含了交通规则,在t10=5.4s时刻,考虑迎面而来的车辆的占用集ID=1718。由于法定安全距离禁止车辆以阻碍自动驾驶车辆的方式跟随自动驾驶车辆,因此,ID1718的车辆只允许继续直行或左转,但不得右转。
B. 场景二,乱穿马路的行人:
弱势道路使用者对自动驾驶汽车构成了特殊挑战,因为他们经常表现出意想不到的行为变化,尤其是行人可以快速改变行走方向,这使得自动驾驶汽车难以及时做出反应。尽管行人乱穿马路(即在有车流的情况下横穿马路)是违法的,但行人偶尔会疏忽并直接从过往车辆的前面横穿马路。如果自动驾驶汽车的预测不包括这种行为,可能会发生致命事故。
在图4所示的第一个验证周期c=1中,ID=323的行人走在人行道上看手机(图 4a)。为了预测这个漫不经心的行人可能会乱穿马路,本文通过松弛其预测约束来扩大该行人考虑的合法行为范围。因此,自动驾驶汽车会计算该行人在过马路和部分在与人行道平行道路上行走时的未来占用率(参见图4b中t1=0s时刻的危险情况安全轨迹占用率;请注意,行人的占用集未在道路外可视化)。由此产生的危险情况安全轨迹F1(从t2开始)确保自动驾驶汽车保持在行人后面。
在接下来的验证周期c={2, 3, 4}中,自动驾驶汽车无法验证新的预期轨迹。事实上,每条预期轨迹都会与乱穿马路的行人发生碰撞。因此,通过自动执行第一个计算出的危险情况安全轨迹F1,自动驾驶汽车减速以避免与ID=323的行人发生碰撞(参见图4b中的t4=1.8s)。在行人过马路后,自动驾驶汽车加速到所需的速度,危险情况安全轨迹意味着自动驾驶汽车能够在行人可能走回自动驾驶汽车的车道之前通过(见图4b的t14=7.8s)。
如本场景所示,本文的验证技术为其用户(例如移动服务提供商)提供了灵活性,可以为特定类型的交通参与者定义不同的合法行为。例如,当开车经过一所学校时,人们可能希望预测任何孩子甚至任何行人都可能过马路。
C. 任意预期轨迹下的合法安全:
本文将验证技术应用于三种不同的预期轨迹规划器(有关详细信息,请参阅补充信息):
-
规划器1使用连续优化来规划与其他交通参与者最可能的行为无碰撞轨迹,该规划器还用作方案I和方案II先前结果的预期轨迹规划器;
-
规划器2基于规划器1进行修改,忽略了其他流量参与者,使用这个规划器,本文模仿了一种尚未学会避免碰撞的强化学习方法;
-
规划器在离散状态空间中采样339个样本,以规划与其他交通参与者最可能的行为无碰撞的轨迹。
图5说明了每个预期轨迹规划器在场景I和II中自动驾驶汽车的速度分布图,在场景I中,本文的验证技术独立于应用的预期轨迹规划器进行干预,以便自动驾驶汽车停在交叉路口前(见图 5a)。而尽管规划器2不知道其他交通参与者,但本文的验证技术使自动驾驶汽车能够安全地左转。因为规划器2比规划器1和3更激进地尝试达到所需的速度8 ms-1(参见图5a中验证周期c={1, 2}的结果),所以随后执行的危险情况安全轨迹导致自动驾驶汽车快速减速(峰值加速度为-6 ms-2)(参见图5a中规划器2的验证周期c={3, …, 8}的结果)。但是规划器2的危险情况安全轨迹的执行只会导致很短的延迟,因为在交叉路口的停车时间小于2秒。
在场景II中,预期的轨迹规划者不知道行人的乱穿马路意图,因此,需要执行危险情况安全轨迹以减慢自动驾驶汽车速度(参见图5b中验证周期c={2, 3, 4}的结果),直到规划器1和3对行人做出反应,而规划器2需要一直引导以避免与行人发生碰撞。虽然执行的类型轨迹,即Icsafe或Fc−i,连续交替,但使用规划器2 的自动驾驶汽车的平均速度比使用规划器1的平均速度高5%(分别为6.36m s−1和6.09m s−1)。
总之,即使使用忽略其他交通参与者的规划器,本文也能够为不同的预期轨迹规划器保证合法安全。此外,由于在充分考虑车辆动力学的情况下规划了危险情况安全轨迹,因此产生的速度曲线平滑且连续。
图6验证技术的计算步骤
a)一个验证周期c的时间离散化tk;
b)检验任意预定轨迹的计算步骤概述:1) 计算占用集,即在一段时间内其他交通参与者的所有合法占用位置;2) 计算自动驾驶汽车的可驾驶区域,以确定危险情况安全的机动性;3) 纵向和横向的驾驶走廊是从可到达性图中选择的,从可及性图中选择纵向和横向驾驶走廊,并对纵向和横向轨迹进行优化,从而获得一个危险情况安全轨迹。
安全认证是使用验证技术取得商业成功的主要障碍,已经为铁路系统、工业机器人和航空系统等各个领域制定了监管指南,但只有有限的自动驾驶汽车运动规划法规(例如 ISO 26262 和 ISO 21448)。本文通过制定合法安全并提出验证技术来确保在自动驾驶汽车在运行过程中满足此规范,从而为安全认证奠定了基础。此外,安全保证需要在交通规则适应新要求时得到维护,如果合法安全成为自动驾驶汽车的公认标准,移动供应商可以确保本文提议的验证技术在其车辆中的使用。因此,本文预计即使用于生成预期轨迹的运动规划框架发生变化,社会对自动驾驶汽车的信任也将会增加,测试工作可以显着减少。
合法安全是一种受交通法规启发的有应用前景的新型安全方法,适用于安全认证。相关概念如:责任敏感安全[54]、无过失驾驶[26]以及compositional and contract-based verification[55],与本文避免(自动驾驶汽车造成的)事故的前提相同,但与本文提出的解决方案有很大不同。
责任敏感安全假设其他交通参与者按照常识性规则行事,并根据安全距离定义自动驾驶汽车的适当响应。问题在于即使执行了适当反应,但也不能排除自己造成的事故,因为其他交通参与者的行为可能与预期不同;而本文的方法通过考虑所有合法行为来解决这个问题。
无过失驾驶计算分为移动、制动和停止阶段的单个轨迹,并且可证明与给定预测无碰撞;相比之下,本文允许独立于危险情况安全轨迹来规划预期轨迹,如使用尽可能的预测来优化舒适度。在参考[55]中,有限数量的离线验证和本地模型可以在线拟合当前的交通情况,但如果在当前情况下找不到这些局部模型的有效组合,则这种方法可能会导致不安全的行为。本文的验证技术在线评估轨迹安全性,并始终提供危险情况安全轨迹以消除自行造成的事故。本文的验证技术的详细计算步骤在方法中进行了描述,并在图6中进行了可视化。
基于形式化的验证技术通常被认为会导致控制性能下降(例如,平均速度降低导致行程时间延长)和无人系统的保守行为[56,57]。然而,本文确保了自动驾驶汽车可以在提供高性能的同时,确保合法安全。这就促使本文在之前工作的基础上,改进了基于集合的预测[58-60],危险情况下的安全轨迹规划[61]和使用可到达集的轨迹规划[62]。在本文之前工作的基础上,提出了以下创新之处:
-
本文提出的验证技术在复杂的交通场景下,以一种计算效率高的方式确保合法安全。特别是,通过将驾驶走廊[62]嵌入到危险情况安全轨迹规划[61]中,本文将可能的危险情况安全操纵方案的计算推广到不同的交通情况中并可以考虑多个安全终端集。
-
在包括测量不确定性在内的实际交通中记录的各种城市场景中,证明了所提出的验证技术的适用性。此外,本文的结果表明,尽管采用了过度近似的、基于集合的预测,但仍可以实现非保守的驾驶行为。
-
详细介绍了本文的验证技术与自动驾驶汽车的预期轨迹规划器在随后的验证周期中的时间相互作用。
-
用三种不同的预期轨迹规划器进行的实验验证了本文的验证技术能够确保任意轨迹规划者的合法安全。
关于更多之前工作的基础与细节(验证技术的输入、可到达性分析的预演、算法步骤概述以及验证技术的安全性保证),将在补充资料给出。
参考文献
联系人:张老师
电话:15221659529
原文始发于微信公众号(同济智能汽车研究所):应用在线验证技术防止自动驾驶汽车主动事故