特斯拉 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 范围。 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 还有很多在做驾驶自动化系统正向设计时候可供借鉴的点,后续我们有空再来深度剖析。 关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。