去年,Uber无人驾驶测试车酿成的致死事故对整个行业的发展造成了不小的负面影响,在资本市场不景气的情况下,明显能感觉到自动驾驶领域的投融资规模缩紧不少。美国国家运输安全委员会(National Transportation Safety Board,简称NTSB)经过初步调查后指出,由于Uber禁用了自动驾驶车辆的紧急制动系统,从而导致悲剧发生。
一年多的时间过去了,NTSB近日发布了一份新的报告(下载地址:http://1t.click/aXhd ),称「碰撞发生的五秒钟之前,雷达已经探测到了行人Elaine Herzberg。」但不幸的是,一系列的软件设计缺陷使得系统在撞向行人的前0.2秒才作出反应,但一切为时已晚,事故不可避免地发生了。
2018年3月发生在美国亚利桑那州坦佩市的Uber无人车致死案一度让整个行业陷入停滞| ABC电视台画面截图
这次无人车撞人事件去年五月发生在亚利桑那州的坦佩市,NTSB的初期调查显示,距碰撞发生还有1.3秒时,Uber测试车辆的自动驾驶系统决定需要紧急制动提供辅助,但Uber却禁用了测试车辆(Volvo XC90)的该项功能。Uber给出的理由是:当时车辆由车载计算机操控,这样做的目的是为了降低车辆出现难以预测行为的可能性。
很明显,Uber自动驾驶测试车的硬件并没有出现问题,恰恰是设计存在缺陷的软件导致了这起致死事故的发生。在这份NTSB的新结案报告中,它探寻了Uber无人驾驶系统软件工作状态的详细信息,并解释了酿成事故的重要原因。
追悔莫及
和绝大多数公司开发的软件类似,Uber的自动驾驶系统遵循的也是「感知-决策-控制」的流程,先通过外部传感器对识别的目标进行分类,继而通过计算平台决策出合理的行驶路线,最后执行输出的命令。只不过Uber的这套系统在坦佩市翻了个严重的错误。
Uber自动驾驶测试车硬件搭载外部视图| NTSB官方文件
NTSB在报告中详细地给出了精确到秒的时间线,以说明Uber自动驾驶系统的软件在车辆不断靠近行人的过程中是如何思考的。当时Elaine Herzberg正推着自行车横穿一条多车道的马路,而她并没有遵守交通规则,沿着人行横道通过。
--距离碰撞还有5.2秒,系统将其判定为「其他」物体;
--距离碰撞还有4.2秒,Elaine被识别为「车辆」;
--碰撞前2.7~3.8秒,系统对Elaine的识别结果在「车辆」和「其他」之前摇摆不定;
--距离碰撞还有2.6秒,系统将Elaine和她的自行车识别为「自行车」;
--距离碰撞1.5秒,Elaine被系统识别为「未知」;
--距离碰撞1.2秒,她又变成了「自行车」。
从这些描述中可以得到两点重要信息:
一、在任何时间节点,系统都没有将Elaine Herzberg判定为「行人」。NTSB表示,「软件系统设计中并没有考虑到不守规则、横闯马路的行人。」
二、频繁更改对Elaine Herzberg识别的结果导致Uber的自动驾驶系统无法准确地计算出它的行驶轨迹,同时也没有意识到她处在与车辆碰撞的路线中。按理说,无人车在识别到有物体进入它的行驶路线之后,即便不确定这个物体是什么也应该主动进行刹车。然而Uber的软件设计逻辑并非如此。
在探测到目标物之后,系统通过物体之前的位置来推算出其速度以及可能的行动轨迹。「然而,假设感知系统对目标物的识别结果改变后,相应的对它行动轨迹的推测也会重新来过。」NTSB报告指出。
所以实际来看,由于系统无法将Elaine Herzberg和她的自行车进行分类,因此假设其处于静止状态。这个结论从NTSB精确至秒的分析中也不难发现。
事故现场鸟瞰图。通过标注可以清晰地看到碰撞前Uber无人车与行人的相对距离|官方文件截图
距离碰撞4.2秒~5.2秒这个区间,Uber的自动驾驶系统将Elaine识别为「车辆」并认为其是静止的,因此不会进入到车辆的行驶路线中。而很快系统又判定其正在移动,但会保持在其现有的车道内。可怕的是,当距离碰撞只有2.6秒的时候,系统才将其识别为「自行车」但依然认定其会保持在自己的车道内,这样的错误其实只要通过对比Elaine之前的位置数据就可以得到纠正。距离碰撞还有1.5秒,Elaine开始变成「未知」,在机器的眼里她依然静止。
最后,碰撞发生前的1.2秒,在Elaine开始进入Uber测试车辆的行驶轨迹时,系统才意识到这场碰撞已「无法避免」。
躲不开的人祸?
在此前公布的行车记录仪视频中,肇事车辆的安全员当时视线并未看向前方,但当事人表示「自己并不是在玩手机,而是在监控自动驾驶系统的运行情况」。可能大家都存在这样的疑问:即便当时碰撞已经无法避免,但假设系统能够采取紧急刹车的措施,将车速降下来或许能够救回Herzberg女士一条命。不过这样的事情没有发生呢?
碰撞前行车记录仪记录的画面显示,安全员处于惊慌状态,没有及时做出应对措施|视频截图
NTSB这样解释道:「当自动驾驶系统监测到紧急情况时,它会立即执行相应的行动抑制(action suppression)。通常这个过程只有一秒钟,系统会及时发起刹车指令、重新计算规划其他可行的路线或者由随车的安全员进行相应的处理工作。」
但根据Uber方面提供的信息,距碰撞发生还有1.3秒时,Uber测试车辆的自动驾驶系统决定需要紧急制动提供辅助,但Uber却禁用了测试车辆(Volvo XC90)的该项功能。它给出的理由是:当时车辆由车载计算机操控,这样做的目的是为了降低车辆因错误的警报出现难以预测行为的可能性。
所以,在距碰撞发生不足1秒时,驾驶员才试图操控方向盘来躲避行人,在碰撞发生后不到1秒的时间内才开始踩下刹车,但一切为时已晚。
据NTSB这份最终的调查报告称,即便已经错过了最后一秒钟可以挽回的时机,Uber的自动驾驶系统也并没有用全力刹车。对一场本来就无法避免的车祸而言,系统到最后都没有尽全力采取措施,而此时车上的安全员也形同虚设,「安全」两个字倒显得有些讽刺。
2018年,Business Insider的记者Julie Bort在报道中曾对Uber为何执行如此的软件设计策略进行了分析和推测。她指出,「当时团队正在为Uber新上任的CEO达拉·科斯罗萨西准备试乘演示。高层要求工程师们设法改善之前出现的一些「不好的体验」。很快,Uber就宣布禁用了车辆的自动紧急制动系统,保证了像急刹车或者急转向这种令乘坐者不适的现象再也不会出现。」
只不过急转向的功能最后又被重启,但自动紧急制动系统依然被禁用着,直到2018年3月那场致死车祸的发生。
Uber基于沃尔沃XC90车型改装的自动驾驶测试车搭载的传感器配置图|官方文件截图
Uber的自动驾驶测试车队都是由沃尔沃XC90车型改装而成的,本身自带了精密的紧急制动系统。不幸的是,Uber擅自决定在自动驾驶系统开启时将XC90的防碰撞功能关闭。其中一个原因,据NTSB透露称,是因为Uber安装的尚处于试验阶段的雷达传感器使用了和沃尔沃自带雷达相同的频率,有产生互相干扰的风险。
而自从事故发生后,Uber 已经重新对其后装的雷达系统进行了重新设计,以便在不同的频率能够保持正常工作。此外,Uber也开始允许在测试其自动驾驶技术时,将沃尔沃本身自带的防碰撞系统设置于开启状态。
就软件设计存在的缺陷,Uber也表示对其中不合理的地方进行了修正。首先,紧急事件发生时,刹车前不再设置一个「行为抑制」的缓冲时间;其次,进行目标物监测时,假设系统对目标物的分类发生变化时,不会将其过往的位置数据丢弃,试图从根本上杜绝这类事件的再次发生。
亡羊补牢
这其实并不是Uber无人车第一次闯祸。
根据NTSB提交的调查报告显示,在坦佩市发生撞人事件之前,2016年9月至2018年3月之间,Uber的自动驾驶测试车辆造成过37次碰撞,其中有两次是撞车事故。另外还有25起追尾,剩下8起则是剐蹭事故。在NTSB看来,一方面是自动驾驶软件系统设计存在缺陷,另一方面Uber并没有制定完备的安全计划。尽管该公司设有专门的安全团队,但缺乏安全指导文件且无安全运营部门。Uber承认其在这次严重人身事故发生前并没有制备完善的安全计划,直到2018年11月才发布了第一份安全报告。
这是一个开发安全无人驾驶车辆的通用框架,涵盖了自动驾驶系统测试以及功能安全等在内的折叠步骤图,点击可以看到Uber在车辆安全测试上的步骤及细节|官方网站截图
前不久,Uber成立了自动驾驶安全与责任咨询委员会(SARA),关注这项技术在面向大众过程中产生的潜在危险。此外,今年7月中旬,Uber还公布了业界第一个自动驾驶汽车安全框架,涵盖了自动驾驶系统测试以及功能安全等在内的多个安全环节,通过折叠框架图的形式展现出Uber在车辆安全测试上的细节。
事故之后,Uber或许对自动驾驶有了新的思考,而无论是自身安全机制的持续改善还是增设外部审查机构避免矫枉过正,这些近似亡羊补牢之举对整个行业朝着正确的方向推进,大有裨益。
2018年底,Uber自动驾驶测试重启。在一篇官方发布的博客文章里,Uber高级技术部门(Advanced Technology Group,简称ATG)埃里克·梅霍夫(Eric Meyhofer)详细介绍了Uber新实施的安全保障措施,例如针对安全手动驾驶和监控系统的培训计划,该系统可在驾驶员将视线移开道路时发出提醒。「我们花了几个月的时间在封闭道路上测试,并完成了漫长的内部审查。」梅霍夫强调称。
Waymo自动驾驶测试正逐步进入真正「无人」阶段,无疑它同样面临着很大的安全风险。而进行到这个阶段,技术已经不再是桎梏自动驾驶迈向商业化量产的单一因素,技术之外似乎要更关注有关「人」的问题。强调安全怎么都不为过。
本文由LinkNemo爬虫[Echo]采集自[https://www.ithome.com/0/455/633.htm]