冯敏健,张 辉*,巨志扬,许 庆
(1. 北京航空航天大学 交通科学与工程学院,北京 100191,中国;2. 汽车安全与节能国家重点实验室,清华大学,北京 100084,中国)
自动驾驶汽车(autonomous vehicle)作为复杂的网络物理系统[1],随着人工智能等技术的发展,在改善交通拥堵情况、促进节能减排以及舒适安全驾驶等方面展现良好的性能,具有广阔应用前景以及潜在社会效益[2],但在网络安全和隐私方面也迎来新的挑战,严重威胁着人类生命财产安全[3]。定位数据对于自动驾驶汽车尤为重要,其主要依赖于外部设备所传输的数据信息,相比与速度、加速度等其他数据更容易受到攻击[4,5]。延迟攻击(delay attack)作为一种常见的网络攻击(cyber-attack)形式,通过破坏定位信息的实时性引发系统故障与崩溃,进行数据延迟条件下的定位信息估计研究有重要的意义。
数据延迟及其相关问题广泛应用Kalman状态估计器来解决[6],实现最优估计需要满足多种条件,如系统模型精确匹配、噪声为Gaussian白噪声、初始状态以及噪声统计特性已知,反之则表现出较差的性能[7]。有限脉冲响应(finite impulse response,FIR)估计器是另一种有效状态估计的方法[8-10],近年来广泛应用于信号处理与控制领域[11-14],但很少有研究学者将其应用于处理延迟网络攻击下的系统状态估计,在FIR中的无偏差有限脉冲响应(unbiased finite impulse response,UFIR)忽略了噪声统计特性以及初始状态信息,具有较强的鲁棒性[15-16],用于处理延迟网络攻击下的状态估计问题具有较大的潜力。
面向“ 高级驾驶辅助系统(advanced driving assistance system,ADAS)”的虚拟仿真测试工具如PreScan、CarMaker等主要用于汽车电子电器设备功能安全的测试与验证,偏向于车辆动力性能仿真能力的研发,搭建自动驾驶相关仿真实验较为复杂[17]。百度Apollo自动驾驶平台具备一套完整的软硬件和服务系统,包括车辆平台、硬件平台、软件系统、云端数据服务等4部分[18],其中软件系统开源了感知、定位、预测、规划与控制等模块的源码,可根据开发指导文件进行算法的添加与替换。同时,基于Unity开发的LG开源自动驾驶仿真器(LG Silicon Valley Lab,LGSVL)能够自定义编辑与导入车辆模型与高精地图,提供仿真测试场景,同时还可以与Apollo、Autoware以及机器人操作系统(robot operating system, ROS)等系统进行数据交互,搭建联合仿真平台。
本文提出了一种网络延迟攻击下的自动驾驶车辆定位估计器设计方法,建立延迟攻击下的车辆运动学模型,推导延迟模型下的KF与UFIR估计器,分析Apollo系统功能模块数据流动并根据应用需求修改相应模块,基于LGSVL与Apollo系统搭建联合仿真平台并进行仿真实验,与KF估计结果进行准确性比较,以验证UFIR估计器的效果和基于Apollo/LGSVL进行自动驾驶仿真实验的可行性。
本文具体考虑如图1所示的网络攻击场景。自动驾驶车辆可基于“全球导航卫星系统(global navigation satellite system,GNSS)” 或路面设施等外部设备所提供的定位信息,进行路径跟踪控制,定位信息在传输过程中遭到延迟攻击,使得车辆所获得的定位信息产生了时滞,在此情况下,需使用状态估计器对当前真实位置信息进行估计。
图1 网络攻击场景
应对延迟网络攻击通常采用KF进行定位估计,其估计效果取决于精确的系统模型以及噪声统计特性,在实际场景中难以满足;因此本文提出一种延迟攻击下的UFIR定位估计器,忽略噪声统计特性等信息,利用有限时间窗口的延迟定位信息进行估计,并基于Apollo自动驾驶系统以及LGSVL模拟器进行联合仿真实验。仿真研究框架如图2所示。
图2 仿真研究框架
Apollo系统总体上是由多个功能模块组成,如图2中的感知、规划以及控制,其本质上为多个已经封装好的算法;因此在无数据输入的条件下,系统本身无法进行仿真实验。故本文采用LGSVL模拟器为Apollo系统输入仿真场景信息并接收底盘的执行数据反馈,实现数据交互。为验证UFIR估计器效果,考虑在系统内部加入延迟攻击与估计器算法部分,如图2中红色虚线部分,针对感知模块发送的定位信息进行延迟攻击,估计器基于延迟数据来估计真实位置。
在无网络攻击情况下,车辆运动学模型可表示为如下的离散状态空间方程:
式中:t为系统采样时间,xn与yn分别为车辆的横向与纵向位置,分别为车辆横向与纵向速度。
在网络延迟攻击情况下,传感器数据yn滞后于当前状态信息xn,假设所获取的数据都带有时间戳,车载终端可直接计算当前时刻n的数据延迟时间dn,则式(2)更新为:
将式(4)带入式(3),得到:
延迟攻击下的车辆运动学模型由式(1)与式(5)组成,基于此模型本文推导了UFIR定位估计器,同时,为对比验证估计器效果给出了标准KF算法。
Kalman滤波算法是一种以最小均方差为最佳准则的递推估计,是线性系统状态变量最小方差意义上的最优估计[19],具备递归运算、计算简单与前瞻性等多项优点。实现其最优估计的前提是精确的噪声统计特性,但由于实验样本和其他约束条件的影响,在实际工程通常难以满足,导致最终滤波精度降低甚至发散的现象[20]。FIR估计器也可用于处理相关系统的估计问题,UFIR作为其一种特别的扩展形式,在未知噪声与扰动的情况下可表现出相较KF更为优异的性能,因此在本节中给出了延迟攻击下的UFIR估计器推导过程,同时,为对比验证UFIR估计器效果,首先简单介绍了KF算法。
基于文献[21]中标准Kalman滤波器,在延迟攻击模型下的计算公式为:
先验状态估计:
后验状态估计:
式中:Kn为Kalman增益矩阵,I为单位矩阵。
自动驾驶车辆的行驶工况复杂多变,在多种不确定性因素影响下,噪声统计特性具有较强的变化性,对Kalman滤波器效果产生极大影响。UFIR估计器对噪声统计信息具有较强的鲁棒性,利用有限时间长度上的观测量进行状态估计,下文将给出延迟攻击下的UFIR估计器。
基于文献[9-10, 22]对线性系统UFIR滤波器的推导,本文考虑长度为N的时间窗口[m,n],其中m<n且N=n-m+ 1,将式(1)和式(5)所构建的延迟攻击下的车辆运动学模型扩展如下:
对于n时刻的车辆状态xn,根据文献[22]按批式UFIR状态估计值可表示为:
其中:Hm,n为UFIR增益矩阵,Ym,n为m至n时刻的累积观测矩阵,如式(12)所示。为满足UFIR的无偏估计要求,状态估计值需满足下式:
式中:E{z}表示z的期望值,xn可以通过式(11)中提取的等式进行表达:
将式(13)与式(15)代入式(14),其中Yn,m用式(12)表达:
因wn与vn均为Gauss白噪声,均值为零,则可化简为:
故在无偏估计条件下,增益矩阵Hn,m满足下式:
将式(16)中的I替换为化简得到UFIR增益为:
式中,矩阵Gn为广义噪声功率增益(GNPG)。按批式UFIR状态估计式(13)可表达为:
按批式UFIR参数矩阵的维数随时间窗口长度N的增大而增大,为满足计算简单以及实时性要求,需采用其迭代形式,迭代式计算公式与KF公式相似。首先,按批式UFIR对时间窗口进行计算,得到时刻s的估计值,其中为按批式窗口长度,一般取值远小于N:
加入辅助变量l,l=m+K,以s时刻为初始值,依照式(20) ~(23)逐步迭代,当至l=n时结束,最终得到n时刻的状态估计值[22],与卡尔曼滤波计算公式(6) ~(10)相同,式(20)首先计算先验状态估计值,式(21)(22)根据无偏估计要求得到偏差纠正增益矩阵最后由式(23)得到后验状态估计值:
本文基于百度Apollo系统与LGSVL模拟器搭建联合仿真平台,平台内部具体结构如图3所示。Apollo系统基于CyberRT计算框架搭建了感知、决策、规划与控制等自动驾驶功能模块,同时设计了前端交互界面Dreamview对系统进行可视化操作;LGSVL模拟器可导入基于Unity3D自定义编辑的车辆模型与地图,形成仿真场景,向Apollo系统输入环境数据信息并接收数据反馈进行可视化显示。
图3 仿真平台内部结构
图4 Apollo系统结构
为实现在Apollo系统中嵌入延迟攻击与估计器部分,对其系统整体结构进行了分析,如图4所示。系统各功能模块体系结构完整,包含数据格式编辑、参数定义与赋值、功能算法实现以及模块数据通信,Dreamview交互界面内可直接控制各模块的开启与关闭并实时监测模块运行状态,通过输入目标行驶位置向功能模块下发路径跟踪任务,从而启动Apollo系统进行仿真实验,界面将自动呈现可视化的车辆行驶轨迹。
本文考虑依托Apollo系统路径跟踪进行延迟攻击下定位估计算法仿真实验,通过分析模块间的数据流来选择算法嵌入点,路径跟踪涉及的功能模块有感知、规划、公共和控制,如图5所示。规划模块基于感知模块发送的感知信息以及操作者在Dreamview界面设定的目标位置生成规划轨迹,公共模块将定位信息、车辆反馈的状态信息进行整合,输出状态信息;控制模块基于规划轨迹与状态信息对车辆进行横纵向控制,向底盘输出控制命令,最后反映为车辆状态的变化。车辆所接收的定位信息最终将作为控制模块的输入参量参与内部的算法流程,因此本文考虑以控制模块为具体的延迟攻击模型与估计器算法嵌入点。
图5 实现路径跟踪的模块数据流
Apollo系统路径跟踪控制主要采用的是基于道路误差模型的线性二次型调节器(LQR),控制器以车辆与目标轨迹点的位置偏差作为控制量,具体涉及模块函数ComputeLateralErrors,通过车辆位置信息(x,y)遍历寻找规划轨迹上与其最近的点作为参考点(xdes,ydes),并进行位置偏差的计算。基于上述分析,通过在此函数中对真实定位信息进行拦截,将其赋值为所存储的历史定位数据来模拟延迟攻击,最后加入估计器的算法,利用延迟定位数据对当前位置进行估计。
仿真实验场景:CubeTown;仿真车型:Lincoln 2017 MKZ;仿真实验参数设定如表1所示。
表1 仿真实验参数设定
将加速度视为过程噪声wn,测量噪声vn与传感器测量精度有关,由表1参数可得噪声的协方差矩阵为:
启动LGSVL模拟器,选择CubeTown地图与Lincoln2017MKZ 参数(Apollo 5.0)车辆搭建仿真场景,如图6所示。启动Apollo系统,在Dreamview交互界面中选择与模拟器对应的车辆以及地图,与LGSVL构建的仿真场景相匹配,启动控制、规划、感知以及公共等功能模块,在地图中选择点A作为目标位置输入,系统将根据初始位置点B与目标位置点A自动规划行驶路径,如图7中红色箭头所示,规划完成后系统将开始执行任务,进行仿真。
图6 LGSVL模拟器仿真环境
图7 系统规划行驶轨迹
为简化所研究的问题,仿真中假定网络攻击下的数据延迟时间dn为定常值,与仿真时间无关,即首先针对d= 1s的延迟网络攻击进行仿真,以车辆初始位置为(0, 0)点,结果如图8、图9所示,分别为y与x方向上车辆真实行驶轨迹、延迟数据轨迹、KF与UFIR估计器的估计轨迹以及估计误差。
对比分析得到,在延迟攻击情况下,KF与UFIR估计器整体上均表现出良好的性能,在车辆沿x(y)单方向行驶过程中,方向y(x)上的估计值更为精确,误差几乎为零,如图8中35~45 s与图9中55~75 s;但在车辆行驶方向发生转变的过程中,估计值产生较为明显的波动,如图8、图9中轨迹数据图像中的凸起部分,估计误差也产生了尖峰;同时,KF在初始0~8 s内x与y方向估计均产生了较大的偏差,分析此现象与噪声统计信息精确度有关,UFIR估计器与KF相比,估计误差相对偏小。
图8 延迟1 s情况下y方向上4种轨迹数据与估计误差
图9 延迟1 s情况下x方向上4种轨迹数据与估计误差
如图10所示,分别为x与y方向上车辆行驶方向发生转变时的相关轨迹,KF与UFIR的估计值均产生了较大偏差,但分析得到,UFIR估计器在此情况下响应速度更快,偏差幅值更小,性能相对更好。
图10 延迟1 s情况下行驶方向变动时轨迹数据
进一步地扩展延迟网络攻击影响范围,分别进行不同数据延迟时间的仿真实验,估计器平均估计误差结果如表2所示。
表2 不同延迟时间下的估计误差
分析得到,UFIR相对KF估计精确度较高,在0~1 s数据延迟时间内估计效果较好,当超过1 s时,估计器性能明显下降,平均误差已达到m级。
提出了一种延迟模型下无偏有限脉冲响应(UFIR)估计器应用方法,构建了延迟网络攻击下的车辆运动学模型,扩展模型至有限时间窗口,基于无偏估计条件推导延迟模型下的UFIR估计器的按批处理式与迭代式,利用Apollo自动驾驶系统与LGSVL模拟器搭建联合仿真平台并进行实验。
结果表明: 延迟攻击条件下UFIR估计器的有效性,该估计器不依赖于噪声统计特性等信息,相较于KF具有一定的优势,即便在噪声信息较为精确的环境下,UFIR估计器性能仍优于KF,鲁棒性更强,当延迟数据发生较大变化时,UFIR估计器响应速度更快,波动幅值较小。本仿真平台,系统结构层次分明,功能模块完整,具备良好的二次开发潜力,可自定义地图与编辑车辆,适用于自动驾驶相关的测试与实验。
本文只针对延迟网络攻击下定位数据的估计进行研究,在后续的研究工作中将考虑其他常见的攻击模式如拒绝服务攻击与重放攻击等,如何进一步提高UFIR估计器的精确度也是后续工作的一个重点。