分享

浅析不同级别“自动驾驶”系统的设计

 十一号组织 2023-04-17 发布于上海

特斯拉FSD,英文全称Full Self-Driving,中文翻译为完全自动驾驶。

SAE J3016,将驾驶自动化系统由低到高划分为L0~L5六个等级,最高级别为L5,英文全称Full Driving Automation,中文翻译为完全驾驶自动化。

极其暧昧的名字,再加上特斯拉故带迷惑性的宣传,部分不明真相的群众以为多花1.2万美元就能让自己的车辆拥有自动驾驶能力,就可以堂而皇之的在开启了FSD(其中的导航辅助驾驶功能叫NOA)功能的车里睡大觉。

国内厂商们看了之后心领神会、相视一笑,不过不是站出来为消费者打抱不平,而是顺势将自家独门修炼的武功命名为NOP、NGP……,站在巨人的肩上命名,瞬间也积攒了足够的人气。

如果说NOA/NOP/NGP们的虚张声势唬唬普通消费者还情有可原,那么国内部分自动驾驶公司对标L2级别的NOA/NOP/NGP功能做自家的L4自动系统算怎么回事?

这不是无中生有,也不是夸大其词,这是和业内几个朋友交流之后的意外收获。听到之后既震惊又窃喜,震惊行业的急速扩张让部分从业人员还没来得及转变“打法”,窃喜从天而降一个科普L2、L3、L4本质区别的机会。

01回归到本源

业内但凡讨论L2、L3、L4的区别,总喜欢站在“担责的角度”,这逐渐让人们误解,但凡厂家声明出了事由驾驶员负责的就是L2,出了事由系统负责的就是L4,视具体情况而定责的就是L3。

那么厂家开发出来的这个驾驶自动化系统能力上有没有达到L2/L3/L4的水平呢,关心的人不多,评价的指标很少。就连如何正向设计一个具有不同级别“自动驾驶”的系统,目前也没有什么方法论。

这就导致部分自动驾驶公司开发自动驾驶系统时,最重要的工作就是对标,宛如众泰当年的皮尺部。但将自己要设计的L4系统降维对标到L2头上,也着实让人大跌眼镜。该如何从系统正向设计的角度去理解L2、L3、L4之间的区别,是行业内每位工程师必须修炼的基本功。

上述问题的部分答案其实在国际上古老的SAE J3016标准已经给出,但遗憾的是,从业人员很少能静下心来去细读这份完整标准。说他不懂,他却也能说上两句,说他懂,又说不出个所以然,这大概就是行业内的现状。

SAE J3016是国际上最早也是最权威的驾驶自动化系统分级标准,2014年第一次发布,2016年、2018年、2021年又分别发布了三次更新。下文提到这个标准的内容皆是出自2021年发布的最新版本。

SAE J3016将可以持续执行部分全部动态驾驶任务的驾驶自动化系统划分为六个等级:

L0:无驾驶自动化(No Driving Automation)

L1:驾驶员辅助(Driver Assistance)

L2:部分驾驶自动化(Partial Driving Automation)

L3:有条件驾驶自动化(Conditional Driving Automation)

L4:高度驾驶自动化(High Driving Automation)

L5:完全驾驶自动化(Full Driving Automation)

而这六个等级的划分原则,也构成了驾驶自动化系统正向设计的最顶层输入。而这个划分原则包括DDT、DDT后援、ODD,下文我们逐一分析。

一、DDT

动态驾驶任务(Dynamic Driving Task,DDT),安全驾驶一辆车所需做的操作,通俗一点讲包括眼观六路、耳听八方、手脚并用,文雅一点讲包括感知、决策和执行等,包括但不限于以下子任务:

目标和事件的探测与响应(感知);

驾驶决策(决策);

车辆横向运动控制(执行);

车辆纵向运动控制(执行);

车辆照明及信号装置控制(执行)。

而可以担负DDT子任务的不同,则是不同级别驾驶自动化系统的第一层不同。

L0没什么可多说的,驾驶自动化系统不承担任何DDT子任务,一切由驾驶员负责,就是典型的纯人驾驶。

L1长进了一点,驾驶自动化系统可以承担车辆的横向运动控制或者纵向运动控制了,以及具备有限的目标和事件的探测与响应能力。

前半句挺好理解的,驾驶自动化系统要么负责纵向加速、减速,要么负责横向转向,不会两者都负责,ACC和APA分别是L1驾驶自动化系统的典型代表功能;后半句理解起来有点绕,比如车辆现在具备单一纵向控制的ACC功能,那么系统只具备实现ACC功能所需要的纵向目标和事件的探测和响应能力,横向控制的APA功能所需要的目标和事件的探测和响应能力就不具备了。

因此,L1这一级别,驾驶员可闲不住,需要时刻监督驾驶自动化系统的性能,时刻承担系统能力之外的目标和事件的探测和响应职责,时刻承担系统不具备能力维度的车辆纵向或横向控制。

L2更加成熟,驾驶自动化系统可以承担车辆的横向运动控制和纵向运动控制了,以及具备有限的目标和事件的探测与响应能力。

有了L1的解释,L2的含义不言自喻,不过需要强调的是驾驶员仍需时刻监督驾驶自动化系统,除了横纵向控制以外的车辆控制(如灯、雨刮控制等),仍存在大量系统无法响应的事件,比如前方道路施工。

所以做的不好的L1或L2驾驶自动化系统,简直是驾驶员的噩梦,不仅眼观六路、耳听八方的职责没有少,还增加了照看这个小baby的责任。说好听点是辅助驾驶员,说难听点就是驾驶员照顾它,可以说是食之无味、弃之可惜的功能。

而对于L3~L5来说,已经是个大人了,可以独立负责所有DDT子任务了。在DDT层面,L3~L5没有区别,因此这三个级别驾驶自动化系统又被称为自动驾驶系统(Automated Driving System,ADS)。

二、DDT后援

DDT可以让我们区分出L0、L1、L2和L3~L5,但L3~L5之间有什么区别,可以让我们在进行系统设计时有所侧重。这样的条目很多,但DDT后援绝对是最重要的一个,这也是不同级别驾驶自动化系统的第二层不同。DDT后援听起来就像一个舶来品,但当你理解它的含义,你会发现翻译的精妙。

老虎都有打盹的时候,驾驶自动化系统也不例外,这其中就包括执行DDT相关的系统失效、超出ODD等。而当这些失效情况出现时,要么请求用户接管车辆执行DDT或执行最小风险策略使车辆达到最小风险状态,要么驾驶自动化系统直接执行最小风险策略使车辆达到最小风险状态,而这一行为被称为DDT后援。

这一段话异常难理解,那是因为出现了两个不太好理解的术语:

(1)最下风险策略:驾驶自动化系统无法继续执行DDT时,系统或用户所采取的使车辆达到最小风险状态的措施。

(2)最小风险状态:车辆平稳停车,可以最大限度减少碰撞风险的状态。

DDT后援可以说是驾驶自动化系统设计一个分水岭,而踩在这个分水岭上的就是L3驾驶自动化系统。

L1/L2驾驶自动化系统,准确来讲没有DDT后援的功能,驾驶员的职责本身就包括目标和事件的探测与响应以及部分控制,所以一般会早于系统发现失效,并第一时间补位。

L3定义的DDT后援非常暧昧,原文意思是L3驾驶自动化系统在部分情况下具备直接执行最小风险策略使车辆进入最小风险状态的能力,在部分情况下需要请求DDT后援用户进行接管,由DDT后援用户决定是接管车辆执行DDT或执行最小风险策略使车辆达到最小风险状态。

而如何定义这个部分情况将厂家分成了不同的样子,有的厂家将请求接管理解成了L3驾驶自动化系统的标配,但凡出现上文说的任何失效情况,都去请求DDT后援用户接管,DDT后援用户在一定时间没有接管后,执行失效减缓策略(本车道停车),而不去思考在部分失效情况下系统直接执行最小风险策略是不是比请求DDT后援用户接管更有效果。

举个不成熟的例子,如果L3驾驶自动化系统中的感知、决策子系统出现失效,请求接管没有问题,毕竟此时没有了眼睛的L3驾驶自动化系统如果执行最小风险策略只能选择停车(靠边停车或本车道停车),但是如果请求DDT后援用户接管,DDT后援用户可以替代系统继续执行DDT,而感知、决策子系统失效说不定在一定时间后可以自行恢复,L3驾驶自动化系统又可以重新激活,何乐而不为。

但是如果转向、制动等子系统失效,除非为DDT后援用户设计了一套专用的应急冗余执行机构,否则让L3驾驶自动化系统直接执行最小风险策略,完成安全停车,不才是最靠谱DDT后援吗!否则请求接管只能白白浪费安全停车的时间。

而且在请求DDT后援用户接管的几秒钟时间内,L3驾驶自动化系统需要具备继续执行DDT的能力,不加区分失效类型的请求用户接管,能做出来一个产品,但肯定不是一个好产品。

当然这也是L3驾驶自动化系统的设计难点、感知系统、执行机构都比L2要强一点,但又达不到L4全冗余的要求,在这样的条件下,能做出具备量产水平的L3驾驶自动化系统才是真正的勇士。而细数市面上,貌似只有奥迪、宝马这两位愣头青面向消费者推出过L3产品,国内高高在上的自动驾驶公司显然是看不上出力不讨好的L3。

然而对于L4驾驶自动化系统来说,没有请求接管这一说,DDT后援是其必备功能之一。L4驾驶自动化系统激活后,任何失效发生,系统都可以执行最小风险策略从而达到最小风险状态。

有人可能会有疑问,L4毕竟还是限定在ODD范围内,如果从起点到终点整个路线上,L4只能在高速公路这个ODD条件内激活,下了高速不还是要请求接管。其实不然,即将驶出高速公路这个ODD条件后,L4驾驶自动化系统会告知车内乘客,如果需要完成剩余路线,需要有人变成驾驶员继续执行DDT。

注意乘客这个名词,如果此时这名乘客带着耳机没有听到系统提醒,L4驾驶自动化系统会执行最小风险策略从而达到最小风险状态。等到车辆停下来半小时后,乘客发现自己需要执行DDT完成接下来的路线,才摇身一变,变成一名驾驶员。

而对于L3驾驶自动化系统来说,车内的直接相关角色就是DDT后援用户,用户监测系统需要对DDT后援用户的接管能力进行实时监测,下文用户监测章节会详细介绍。且在接管请求发出后,如果一定时间内DDT后援用户没有接管,系统执行的是失效减缓策略,也不是风险减缓策略。

这是L4和L3驾驶自动化系统的本质区别。所以打着做L4产品的名义,设计一堆DDT后援用户请求接管的逻辑,天花板就是L3,连L4的脚后跟都算不上。

当然L4驾驶自动化系统的DDT后援能力也不是大风刮来,需要的是全冗余:感知冗余、计算冗余、执行冗余……,否则你拿什么来执行DDT后援。

对于L5驾驶自动化系统来说,DDT后援要求和L4驾驶自动化系统一样,两者在DDT后援这一点上依旧撕扯不开。

DDT后援完美印证了贺诗人足球场上那句经典的解说:如何面对失效,把L3和L1~L2与L4~L5分成了不同的样子。

三、ODD

通过DDT,我们区分出了L0、L1、L2和L3~L5之间的区别,通过DDT后援,我们区分出了L1~L2,L3和L4~L5之间的区别,那么L4和L5有什么本质区别呢。

最重要的一个区别就是上文多次提到的设计运行范围(operational design domain,ODD),简单来讲L5驾驶自动化系统没有ODD的限制,L1~L4驾驶自动化系统都只能工作在ODD范围。ODD的详细介绍,可参考之前两篇文章《ODC,自动驾驶法力的边界》和《ODC,自动驾驶系统设计的“敲门砖”》,此处我们不在赘述。

02本源处求真

上一节三个方面主要基于车的角度谈论不同级别驾驶自动化系统设计时的区别,除了车之外,人作为一个重要的系统参与者,不能不提。当然我们不去谈论马路边的责任归属问题,只谈论人在驾驶自动化系统设计时需要承担的职责。

细心的朋友可能发现,前文中我们出现了驾驶员、DDT后援用户、乘客等多种角色,而这一些也不是随意乱叫,都在具体语境有着不同的含义。SAE J3016中统一用用户这一名称指代不同角色。而监控则是驾驶自动化系统中和用户强相关的功能。

一、用户

用户的第一层含义是驾驶员。

在L1和L2驾驶自动化系统中,只有驾驶员这一个角色。驾驶员通过一些开关操作决定什么时候打开激活驾驶自动化系统;在驾驶自动化系统激活后,监控驾驶自动化系统、监控驾驶环境、监控车辆性能,以便在需要时及时迅速替代驾驶自动化系统执行DDT。

在L3驾驶自动化系统中,在系统没有激活时,执行所有DDT并像L1和L2驾驶自动化系统一样,决定什么时候打开激活驾驶自动化系统。但是一旦L3驾驶自动化系统激活,驾驶员立马变成了DDT后援用户,这也是用户的第二层含义。

而对于DDT后援用户,一方面负责在接收到接管请求后,及时接管车辆执行DDT后援任务;另一方面在发生影响DDT执行相关的系统失效后,及时接管车辆执行DDT后援任务;最后在执行DDT后援任务时决定是自己变成驾驶员执行全部DDT还是执行最小风险策略达到最小风险状态。

在L4驾驶自动化系统中,在系统没有激活时,依旧可以存在驾驶员的角色。比如在一个起点到终点的行程中,L4驾驶自动化系统只能在园区内这个ODD内激活使用,出了园区要想开到终点,就需要驾驶员进行驾驶。当然驾驶员同样可以决定是否开启激活L4驾驶自动化系统。

不过L4驾驶自动化系统一旦激活,驾驶员角色立刻变为乘客,这是用户的第三层含义。乘客人如其名,不需要执行DDT,也不需要对DDT后援负责,真正可以在车里睡觉看电影。所以在设计L4驾驶自动化系统时,你用一堆传感器监视乘客的接管能力,不就是挂着L4的头卖L3的肉吗!

L5驾驶自动化系统和L4驾驶自动化系统一样,同样存在两种角色,毕竟现在还没有法律法规规定人没有开车的权力。

上文提到的驾驶员、DDT后援用户、乘客都是车内用户的角色,与之对应的是车外的远程驾驶员、远程DDT后援用户、远程调度员,一一对应,本文就不去多做介绍。

二、监控

你需要用户给你做这做那,但如果用户没有这能力怎么办,监控及提醒便是最好的方法。当然不只用户监控,还包括驾驶环境监控、车辆性能监控、驾驶自动化系统监控。后三者前文我们已经多次带过,不再重提,此处只重点介绍用户监控。

用户监控的目的主要是为了防止用户对驾驶自动化系统误用和滥用,怎么理解呢。L2驾驶自动化系统需要驾驶员时刻注意交通状态,系统运行状态,如果驾驶员过度依赖系统,系统激活了之后就开始玩手机,甚至睡大觉,是不是不太合适。

而为了避免这种情况发生,系统就需要对L2驾驶自动系统中的驾驶员角色进行监控。监控其是否走神、疲劳等,并在此种情况发生时对其进行提醒,提醒无效后执行失效减缓策略。

而对于L3驾驶自动化系统,用户在系统激活后变成DDT后援用户,需要承担DDT后援职责,那么DDT后援用户具不具备接管能力就需要我们对其进行监控。DDT后援用户不具备时,系统就要在适当时候对其进行提醒。但有一点很关键、系统是在监控到用户不具备接管能力后就开始进行提醒,还是在同时预测到可能有DDT后援任务时才去提醒。两者策略的不同将决定L3驾驶自动化系统体验的不同。

而前者不加区分的随时随地提醒也决定其和L2驾驶自动化系统不会有本质区别。

而对于L4/L5来说,系统激活后,用户角色就是乘客,乘客没有负责任何DDT和DDT后援的任务,因此是不需要对乘客进行监控的。

而对于L1来说,SAE通过数据研究发现,很少有用户会对L1驾驶自动化系统产生无用或依赖,所以也不需要对驾驶员进行监控。

综上所述,用户监控是L2和L3驾驶自动化系统的典型特征,敲黑板。

03求真后妄语

2021年9月的时候,我们自己的驾驶自动化分级国家标准GB/T 40429-2021也出来了,高兴肯定也是高兴的,但看到内容基本是SAE J3016的翻译、阉割及名词上面的创新,也不是那么高兴。矮个中挑高个的话,只能说国标为SAE J3016提供了一份中英文名词对照表,也算是幸事一桩。

SAE J3016虽2014年第一版已经出来,但行业内显然没有组织过好好学习,不然也不会出现这么多常识性的错误而无人指出。

最最不可理解的常识性错误我们要从驾驶自动化系统的定义来说:驾驶自动化系统将可以持续执行部分或全部动态驾驶任务的系统划分为六个等级。其中的关键词是持续执行,ACC激活时持续控制油门、刹车、TJA激活时持续控制油门、刹车、方向盘,这些都可以归类为不同级别的驾驶自动化系统没有问题。

但是像AEB这种,不是持续执行DDT,而是仅在危险情况发生时提供短暂的干预,它就不属于这六个等级里面。但是市面上大量的文章将其划为L0/L1。SAE J3016中其实已经给这类系统定义了一个名字,主动安全系统(Active Safety Systems)。此系统还包括FCW、LDW、BSD等预警类功能。

其它的常识性错误不再举例,列出来也不是为了批判,只是期望从事这个行业的人,该练的功还是要尽快练上,不是有那么一句话老话吗:练武不练功,到头一场空。

本文是基于作者认真看了一遍SAE J3016后做出的总结,也不保证完全理解正确,但至少有了自己的理解。SAE J3016还有很多在做驾驶自动化系统正向设计时候可供借鉴的点,后续我们有空再来深度剖析。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多