黄辛梅 罗覃月 王世勇
摘 要:随着汽车自动驾驶技术的发展,目前的EDR的标准无法满足自动驾驶汽车事故重建的要求。本文设计了自动驾驶汽车事件数据记录系统,包括系统的组成及控制原理,并定义了事件检测触发模块、数据缓存模块、数据记录模块。同时还设计了基于统一诊断服务读取/清除自动驾驶汽车事件数据的方法,用于辅助分析自动驾驶事故原因以及自动驾驶系统验证评估提供数据支持。
关键词:自动駕驶 汽车事件数据记录系统 系统方案设计 数据读取/清除
1 引言
随着汽车保有量日益增加,汽车交通事故的发生也更频繁,如何确认事故原因及责任划分是个难题,汽车事件数据记录系统(Event Data Recorder System,EDR)应运而生。EDR是记录碰撞前、后一段时间内的车速、制动状态、加速踏板状态、方向盘转速、安全气囊点爆状态等车辆状态,为事故重建提供数据支持,科学公正地划分主机厂与用户的责任界定[1]。
随着自动驾驶的发展,人工控制车辆的程度越来越低,车辆大部分时间都交由自动驾驶系统控制。当自动驾驶车辆发生事故时,自动驾驶系统可能会作为责任主体,所以对于自动驾驶汽车的事故重建不能再按传统的EDR方式进行[2]。需要记录事故发生前的车辆状态、驾驶员的操作以及自动驾驶系统内部的感知、规划、决策等数据,对于事故的责任划分、问题的排查和整改有重要意义。
自动驾驶目前还未有可用的方案,也无正式发布的标准。本文参考EDR标准的部分方法,设计自动驾驶汽车事件数据记录系统,记录碰撞、自动驾驶系统驾驶行为、驾驶员接管等事件触发时的车辆状态,为自动驾驶汽车事件分析提供客观的技术证据,并同步促进自动驾驶系统的迭代更新。
2 系统构成及控制原理
根据整车电子架构,有多种汽车事件记录系统架构方案,一般包括车载已有控制器集成、单独开发控制器、多个控制器共同实现事件记录[3]。
本文作者将自动驾驶汽车记录事件记录系统集成在自动驾驶控制器,其他控制器的报文数据通过CAN总线传输,自动驾驶控制器本身的数据不再通过外部传输,自行记录。系统结构图如图1所示。
自动驾驶汽车事件数据记录系统由事件检测触发模块、数据缓存模块、数据记录模块组成。再通过数据提取/清除设备提取/清除数据。汽车事件记录系统方案的工作流程,如图2所示。
事件检测触发模块主要用于检测出需要存储数据的汽车事件的触发信号;数据缓存模块主要用于对CAN总线、传感器等待记录的数据进行先进先出的缓存;数据记录模块主要用于当事件触发时,把事件触发时刻前后一段时间内的数据存储到非异失性存储器中;数据提出/清除设备主要用于实现数据读取和清除。
3 数据缓存
控制器上电结束后,数据缓存模块开始缓存CAN总线、传感器等待记录的数据,考虑到缓存空间的大小,此模块采用循环覆盖的原则缓存数据,当缓存空间缓存数据大于预设缓存时长时,最新的数据覆盖最先缓存的数据。缓存数据的总时长大于记录数据要求的总时长。
4 数据触发
控制器上电结束后,事件检测触发模块开始实时监控。对于事件检测触发模块判断事件是否触发,是通过自动驾驶控制器内部状态、以及采集CAN总线的其他控制器的报文信号进行判断的。
记录的数据需可判定是自动驾驶系统的误作用还是驾驶员的人为控制导致的,故事件检测触发类型应为自动驾驶的相关信息以及驾驶员的行为接管,具体类型如表1所示。
5 数据记录
当判断事件触发时,则数据记录模块存储缓存区内的数据。数据记录模块记录事件触发时刻点的前后一段时间内的数据。
数据缓存模块是实时采集存储不同周期的报文信号,报文时间没有对齐,数据记录模块要将报文进行时间的排序,使同一时间点的报文时间上对齐,便于数据提取后进行事件分析。
本文作者采用以下数据记录策略,每个事件采用独立的事件和时间戳标识符。如表2所示。根据数据记录时长和记录频率,确认记录的数据点,即事件触发前ai个数据点,事件触发时刻数据点,事件触发后Cj个数据点,如表3所示。单个数据点为所记录的不同报文信号数据的集合,并确定好每个信号的排列格式,包括字节序列号、信号长度、信号名称、单位、范围等。
数据记录模块根据控制器内存的大小控制记录事件的次数,参考EDR标准定义,不同事件应区分可锁定和非锁定事件[4],具体策略如下:
1)锁定事件记录达到预设记录次数时,不再记录新的数据,需通过数据读取/清除设备清除后,才可重新记录数据。
2)非锁定事件可以循环覆盖,按先存储先删除覆盖,即最新的事件数据将覆盖最先存入的事件数据。
6 数据读取/清除
自动驾驶汽车事件触发后,数据存在本地,需要通过特定的设备进行读取和清除。数据读取/清除可以通过CAN、LIN等多种方式实现,目前整车上以CAN总线为主,数据读取/清除主要还是基于CAN[10]。
目前数据读取采用最广泛的是ISO 14229规范的0x22服务,即通过本地标识读取数据。数据读取/清除设备通过车辆OBD口建立通信,将记录的数据以数据流的方式读取出来。
为提高数据的分析效率,本系统还开发了事件数据服务器,通过OBD口提取数据后,手动上传到服务器,便于技术工程师及时分析数据。
同时考虑到数据属于安全保密度较高,所以还需要通过UDS协议的seed key安全访问机制,即读取/清除数据前需要通过0x27服务完成安全访问。整车需要集成安全访问算法,完成安全访问。
不可覆盖事件需要通过数据读取/清除设备清除数据后,方可重新记录锁定事件数据。0x31服务是调用ECU内置的一些操作序列的接口,主要用于包括边界条件的检查、清除内存、校验数据、校验软硬件依赖性等,本文作者采用0x31服务进行数据清除。完整的数据读取/清除流程如表4所示。
7 结束语
本文基于自动驾驶的发展趋势分析,参考EDR标准,对自动驾驶汽车事件记录系统的系统构成、功能模块及诊断策略进行研究,给出了一套完整的控制策略方案,并设计了数据记录及数据提取/清除的流程及方案。与传统的EDR系统相比,本系统设计方案能够记录更多的自动驾驶汽车数据,并为自动驾驶事件重建还原、责任确定提供了强大的数据支持,具有重大现实意义。
参考文献:
[1]谷阳阳,柴智勇,全宝强.事故数据记录系统EDR在车辆质量司法鉴定中的应用[J].电子测量技术,2018,41(18):133.
[2]冯家豪,梁键民,何浚铭等.基于EDR 的自由驾驶汽车事故调查分析[J]. 时代汽车,2019(1):47-50,63.
[3]杨曦. 基于CAN总线的汽车事件数据记录系统开发方案研究[A]. 汽车电器,2021(4):51.
[4]刘全周,李占旗,陈慧鹏等.汽车事件数据记录系统控制策略研究[J].汽车电器,2019(11):52-54,59.