第一起自动驾驶死亡车祸是怎么发生的?特斯拉事故复现分析
编者按:本文作者刘健皓,汽车信息安全专家 360 攻防实验室负责人,曾在 2014年 全球首例破解 Tesla 汽车,2015年 协助举办 HACKPWN 黑客大会破解市面上主流的智能硬件、在 Syscan360 大会上发表遥控驾驶汽车的演讲,参与国内智能网联汽车信息安全标准制定工作,2016年 将在美国黑客大会 Defcon 和第四届中国互联网大会上(ISC)发表关于传感器漏洞影响自动驾驶安全的演讲以及现场演示破解特斯拉自动驾驶。作者授权 36 氪发布。
曰前,美国一辆特斯拉MODEL S在自动驾驶时发生车祸导致驾驶员死亡,这是目前自动驾驶技术应用以来第一起己知的导致死亡的车祸。在事故发生后的第一时间,特斯拉就通报了NHTSA。事故发生后互联网上有人纷纷在讨论事故是如何发生的?
自动驾驶技术
首先我们来了解一下特斯拉汽车的自动驾驶原理,自动驾驶简单的来解释就是有传感器,控制器,和执行器组成。传感器负责感知周围的环境把信息传递给控制器,控制器结合各传感器的数据产生决策数据告诉执行器,让执行器执行控制请求。这样就可以通过感知路面的数据控制汽车自动行驶了。特斯拉的自动驾驶系统 (Autopilot) 传感器主要有以下几部分组成:
1、超声波传感器位于前后保险杠附近。
2、前视摄像头位于挡风玻璃上的后视镜下方。
3、雷达安装在前格栅中部。
超声波传感器负责探测车周围的障碍物,经过我们测得超声波传感器能够感知的距离大概在 5 米左右,前格栅下面使用的是 77G 毫米波雷达负责探测车辆前端 150 米距离的障碍物情况。包括距离、车速等信息。前视摄像头负责识别道路车道线、标识、车辆速度等情况。除此之外还会通过高精地图等其它数据对道路情况进行判断,通过自动驾驶算法反向控制汽车实现的自动驾驶技术。从理论上看特斯拉的自动驾驶技术还是比较可靠的。
事故分析
根据了解的情况,当时 Models 行驶在一条双向、有中央隔离带的公路上,自动驾驶处于开启模式,此时一辆拖挂车以与 Models 垂直的方向穿越公路。在强烈的曰照条件下,驾驶员和自动驾驶都未能注意到拖挂车的白色车身,因此未能及时启动刹车系统。由于拖挂车正在横穿公路,且车身较高,这一特殊情况导致 Model S 从挂车底部通过时,其前挡风玻璃与挂车底部发生撞击。
从这张图上来分析,特斯拉汽车的摄像头是因为白色拖挂汽车拐弯,导致其遮挡了视线,同时也有强光的原因导致摄像头致盲。如下图,摄像头致盲效果。强光或者是大面积遮挡物都会影响到前视摄像头的图像识别,这样自动驾驶就变得不可靠。
摄像头失效了,那么特斯拉的防撞系统是基于毫米波雷达的,毫米波雷达应该在 150 米左右就能够识别出车辆的存在,并且提前预替的。通过交通事故分析发现,白色大卡车是对向而行的,这是双向四车道,毫米波雷达不会识别行驶中对向的车辆。所以 150 米时没有看到大卡车。当大卡车转弯时。毫米波雷达被卡车车厢面积的遮挡给当住了,没有办法判断前方有几辆车。因为在毫米波雷达内部的天线矩阵发出去信号都有回波,会造成毫米波雷达测量不出有几辆汽车,从而不显示内容。
这里纠正几个观点:对于毫米波雷达系统,原因主要是其安装位置过低。
一般的毫米波雷达垂直视角在±5°以内,导致当 Tesla 靠近拖挂卡车侧面时,雷达波束从下侧穿过了卡车,导致漏检。
特斯拉的自动驾驶系统是能够检测出卡车、汽车、摩托车这三种车型的,所以因为车辆过高,传感器过低,所以没有检测到卡车的存在是有疑点的。
那么毫米波雷达因为识别的原因也失效了。这辆车的状态应该是在基于高精地图信息识别车道线的前提下,高速行驶。这样才会从卡车底部穿过。从而不会减速,我们也经常碰到自动驾驶识别不到前面物体,冲出去的情况。
假使当时车辆发生是正面撞击或追尾事故,即便在高速行驶条件下,Model S 先进的防撞系统都极有可能避免人员伤亡的发生,因为在此前的很多起事故中,Models 都有过如此表现。
总结:特斯拉的自动驾驶系统在传感器部暑上面还是欠缺全面的考虑,不过特斯拉把传感器的不足以强壮的自动驾驶算法来进行了弥补。但是在传感器遭受到攻击或者意外情况下,算法自然就失效了。对于特斯拉的建议有两点。
1、增加传感器的数量,增加 4 个 24G 毫米波雷达来判断车周的障碍物。或者增加一个激光雷达对周围障碍物进行扫描。
2、加强对自动驾驶的算法,提高传感器的弹性设置,增加摄像头滤镜等。
最后提醒广大自动驾驶车主,自动驾驶技术也是通过软件系统实现的,是系统总会存在漏洞的情况,但是汽车存在漏洞就是会影响到人的生命安全,所以不要完全依赖自动驾驶,开车时注意力应集中在路面上。如果发生任何情况应该快速接管控制。