没有合适的资源?快使用搜索试试~ 我知道了~
1753→→DriveEF U zz:通过驾驶质量指导的模糊识别发现自动驾驶错误金世荣佐治亚理工学院美国佐治亚州亚特兰大市seulbae@gatech.edu全友锡UNIST大韩民国蔚山ysjeon@unist.ac.kr摘要刘少校德克萨斯大学达拉斯分校理查森,美国德克萨斯州,主修. utdallas.edu权永熙弗吉尼亚大学美国弗吉尼亚州夏洛茨维尔yongkwon@virginia.eduCCS概念美国俄克拉何马州埃德蒙市中俄克拉何马州李承jhree2@uco.eduChung Hwan Kim德克萨斯大学达拉斯理查森分校,美国德克萨斯州chungkim@utdallas.edu自动驾驶已经成为现实;价格合理的半自动驾驶汽车已经在街上,主要汽车供应商正在积极开发全自动驾驶系统,以便在这十年内部署它们。在将产品推出给最终用户之前,测试和确保自动驾驶系统的安全性至关重要,该系统由以复杂方式交织在一起的多个层组成。然而,尽管安全关键错误可能存在于任何层中,甚至跨层,但相对较少关注跨所有层测试整个驱动系统。以前的工作主要集中在各个层的白盒测试和防止对每个层的攻击在本文中,我们的目标是对自动驾驶系统进行整体测试,这些系统在其实体中集成了一整套层。我们不关注单个层,而是关注系统在驾驶环境中不断变化的车辆状态这使我们能够设计DrivEFUZZ,一个新的系统模糊框架,可以发现潜在的漏洞,无论它们的位置。D riv EFUZZ利用高保真驾驶模拟器,根据各种因素自动生成和改变驾驶场景。我们基于真实世界的交通规则构建了新的驾驶测试预言机来检测安全关键的错误行为,并通过参考车辆的物理状态的驾驶质量度量来引导模糊器对这种错误行为进行处理。DRIVEFUZZ在两个自动驾驶系统(Autoware和CARLABehaviorAgent)的各个层中发现了30个新错误,并在CARLA模拟器中发现了另外三个错误。我们进一步分析了这些漏洞的影响,以及对手如何利用它们作为安全漏洞来造成严重事故在现实世界中允许免费制作本作品的全部或部分的数字或硬拷贝,以供个人或课堂使用,前提是制作或分发副本的目的不是为了盈利或商业利益,并且副本的第一页上有本声明和完整的引用。 本作品的版权归ACM以外的其他人所有,必须予以尊重。允许使用学分进行摘要以其他方式复制、重新发布、在服务器上发布或重新分发到列表中,需要事先获得特定许可和/或付费。请求权限请发邮件至permissions@acm.org。CCS© 2022计算机协会ACM ISBN 978-1-4503-9450-5/22/11。. . 15美元https://doi.org/10.1145/3548606.3560558• 安全和隐私软件和应用程序安全;• 计算机系统组织嵌入式和网络物理系统。关键词自动驾驶系统;模糊ACM参考格式:Seuldam Kim , Major Liu , Junghwan“John”Rhee , Yuseok Jeon ,Yonghwi Kwon , and Chung Hwan Kim. 2022. D riveEFUZZ :Discovering AutonomousDriving Bugs through Driving quality-guidedFuzzing. 在2022年ACM SIGSAC计算机和通信安全会议(CCS '22)的会议记录中,2022年11月7日至11日,美国加利福尼亚州洛杉矶。ACM,纽约州纽约市,美国,15页。https://doi.org/10.1145/3548606.35605581介绍自动驾驶技术最近取得了重大突破,使自动驾驶汽车更接近实际用途[20,21]。价格合理的现代汽车已经配备了半自动驾驶系统。主要的汽车公司正在开发自动驾驶系统(ADS),以部署能够在十年内在公共道路上可靠运行的完全自动驾驶汽车。然而,尽管自动驾驶技术取得了显著的成功,但关于错误ADS导致的致命事故的报告仍在继续[9,11,60,61,82]。此外,最近的工作发现了开源ADS中许多未修补的错误[32],并分析了ADS的全面测试仍然具有挑战性[52]。为了确保自动驾驶的安全性,现有的工作集中在ADS的各个层具体来说,安全研究社区一直广泛关注在感知层上寻找对抗性示例[13,17,24,39,58,76,78,80],假设一个威胁模型,其中攻击者试图通过提供欺骗性的驾驶场景来混淆机器学习模型(例如,例如,在一个实施例中,修改交通标志)或欺骗传感器数据(例如,例如,在一个实施例中,注入伪造的LiDAR点)。其他一些作品使用驾驶场景的合成和变换图像来测试机器学习模型的鲁棒性[68,83,88]。也存在用于其他层的测试方法(例如,感测[15,33,42]和规划[16,64,84])。但是,它们仍然专注于单个层。1754CCS虽然这些工作大大提高了各个层的安全性,但它们并没有被设计为覆盖利用其范围或特定层之外的漏洞的攻击;例如,针对与机器学习模型无关的错误或致动层中的错误的攻击。此外,由于ADS的多层架构,其中不同层以级联方式一起工作,如果单独测试,则可能无法检测到一个层中的错误。例如,感知层中的错误在单独测试时可能不会造成可见的影响,但可能会导致规划层行为不端。此外,多个层中的错误可能共同导致一个错误行为。只有当所有集成层作为一个整体一起测试时,才能检测到此类错误在本文中,我们介绍了一种新的方法,使综合测试的广告,以发现关键的错误,在所有层。我们的目标是设计一个完全自动化的测试框架,在运行中生成真实的测试输入场景,以进行全面的测试ADS基于以下两个关键见解:随着自动驾驶车辆驾驶模拟器的最新进展[28,72,75],生成具有各种驾驶条件(包括地图、车辆、行人和天气条件)的无限数量的高保真测试输入场景已经变得可行,这些条件密切反映了真实环境,并提供了非常理想的测试环境,以强调测试系统的所有层。无论它们属于哪一层,错误的影响最终会影响车辆1的物理状态(例如,例如,在一个实施例中,位置和速度),例如,导致碰撞。因此,我们专注于通过监测ADS不断改变的车辆状态来检测不当行为 这些状态也可以用作反馈,以更有效地发现bug,而不依赖于特定于各个层的信息。基于这些见解,我们提出了D riv EFUZZ,这是一种用于驾驶模拟器(CARLA [28])的ADS杠杆端到端测试的反馈引导模糊框架。 D riv E F uzz将一个目标ADS插入到模糊框架中,并将自动驾驶系统堆栈作为一个整体进行测试,以促进测试覆盖范围跨越所有层。它生成并改变驾驶场景,其中ADS必须从一个点驾驶到另一个点,并在三维虚拟环境中模拟它们(类似于赛车视频游戏),其中它完全控制输入空间的空间和时间维度以及多个演员和实体,包括道路,行人和车辆。在测试过程中,D rivE F uzz利用我们从现实世界的交通规则和法规中获得的新驾驶测试预言[65],并主动监控车辆状态,以检测任何违反预言的不当行为。我们将ADS的不当行为定义为安全关键和非法交通违规行为,包括碰撞,交通违规和不动,这些行为具有明显的症状,对人类的安全如果没有发现这样的非法不当行为,则D riv EFUZZ通过量化指示鲁莽驾驶的因素e. 例如,在一个实施例中,加速太快了。然后将所得分数用作反馈,以更有效地生成后续测试场景(即,例如,从而导致更不安全的驾驶场景),1我们将使用车辆状态来指代本文中车辆的物理状态比完全随机模糊更快地触发角落情况错误(如现有软件模糊器所示[12,56,87])。我们通过测试Autoware[44,45]和行为代理来评估D riv EFUZZ,Autoware是汽车制造商和学术机构广泛使用的成熟(4级[ 25 ])ADS [ 5 ],行为代理是集成到CARLA中的原生ADS。到目前为止,DRIVEFUZZ共发现了34个严重错误;其中33个是新错误,包括17个Autoware错误,13个Behavior Agent错误和3个CARLA模拟错误。我们已经向开发人员报告了所有34个错误,其中10个已经确认并正在修补,其他的正在审查中。 我们对模拟错误的描述表明,D riv EFUZZ能够在软件堆栈的单层和多层中找到错误,包括用于自动驾驶的各种组件,甚至模拟器本身。我们观察并证明了我们发现的错误是现实的和实际的利用;也就是说,攻击者可以通过控制外部输入以看似合法的方式利用它们(e. 例如,在一个实施例中,移动附近的物体)。我们的设计是通用的,可移植到其他ADS(如。例如,在一个实施例中,百度阿波罗[4])和驾驶模拟器[72,75],因为它位于ADS和模拟器(e. 例如,在一个实施例中, ROS [70])。具体而言,D rive E Fuzz不需要源代码和仪器,也不需要目标ADS的领域知识,因为它只控制系统的输入(输入驾驶场景)并监控物理输出(车辆状态)。本文的贡献如下我们提出了一种实用的自动化测试方法,能够模糊ADS端到端,并揭示安全关键的错误,基于现实世界的驾驶测试神谕。我们设计了一种新的驾驶质量度量来评估测试驾驶场景在基于车辆状态探索ADS输入空间中的有效性,并利用该度量更好地引导变异引擎向触发安全关键不当行为的测试场景我们实现和评估所提出的框架中的原型称为D rive E模糊演示如何 反 馈 驱 动 的 模 糊 可 以 应 用 到 域 的 ADS 。我 们 在www.example.com上开源了D riv EFUZZhttps://gitlab.com/s3lab-code/public/drivefuzz。在我们的评估中,我们发现了33个新的错误,包括30个真正的ADS中的关键错误和3个成熟的驾驶模拟器中的错误我们表明,这些错误可以很容易地利用严重损害的ADS的安全,导致他们崩溃,停止运作,或违反安全关键的交通法规。2背景图1显示了一个通用的ADS,它是负责四个核心任务的硬件和软件层的合并:感知,感知,规划和驱动[19,40,41],其中每个层的目标是取代其对应的人类驾驶员。在每一层中,多个组件执行自动驾驶的子任务。这些层以级联方式一起工作以驱动车辆,即。例如,每一层从前面的层获取输入,并且所产生的输出被后面的层消耗。感应。自动驾驶车辆使用各种传感器获取周围环境的原始数据,这些传感器通常包括LiDAR(光检测和测距)、相机、雷达、GPS设备和IMU(惯性测量单元)传感器作为组件。任何故障······1755DriveEFU zz:通过驾驶质量指导的FuzzingCCS'22发现自动驾驶错误图1:由传感、感知、规划和驱动层组成的通用自动驾驶系统(ADS)通过将传感器感知的车辆状态和环境、3D地图和目的地作为输入,ADS最终输出控制命令,即。例如,转向、油门和刹车控制,这些控制又为循环的下一次迭代更新车辆状态。在传感器中,错误的数据会传递给系统,并且错误会传播到其他层,在最坏的情况下会导致系统级的故障。Perception. 感知模块融合并解释捕获的传感器数据,以了解车辆的当前位置和周围环境。例如,识别前方的交通信号或通过评估相邻车辆的速度来预测它们的运动属于感知层的任务许多系统利用各种计算机视觉和机器学习技术来完成这些任务。 感知错误会误导车辆做出错误的决定,例如。例如,在一个实施例中,估计到障碍物的距离比实际距离更远,最终击中它。规划规划层根据感知到的内部和外部状态,为给定的地图和目的地制定路径规划。通常,它首先计算由从初始位置到用户指定的目的地的一系列路点组成的全局轨迹然后,交通规则和感知状态(e。例如,在一个实施例中,附近的障碍物)被本地规划器考虑在内,该本地规划器在运行时更新轨迹以安全地行驶到目的地。这一层中的错误不仅会导致效率低下,而且会导致不安全的路由,包括不可行的路径,例如。例如,在一个实施例中,过河启动。 给定要遵循的生成轨迹,致动层设置由方向盘角度、航路点处的目标速度以及节流或制动量组成的具体运动计划,以无缝地遵循轨迹。这些命令被发送到方向盘、油门和刹车控制器,以按计划移动自动驾驶汽车当命令在驾驶环境中移动车辆时,车辆状态被改变并且在循环的下一次迭代中由感测层观察因此,致动层中的错误可能严重损害车辆在给定情况下正确操纵的能力,并且还可能通过改变车辆状态而影响回路中的3威胁模型攻击水面 我们假设攻击者利用ADS任何层中的漏洞。具体地,目标攻击表面不限于单层(例如,例如,在一个实施例中,感知层上的对抗性示例或将伪造的数据注入感测层)。我们假设攻击者不仅利用导致单个层立即失败的错误,而且还利用最终在其他层中出现的错误。例如,感知层中的错误可能在测量到对象的距离时产生不明显的错误,并且当错误的距离被用作寻找轨迹的输入(错误#15在§6中)。类似地,致动层中的错误可能会产生不正确但看似合法的移动车辆的命令,并导致感知层在更新的车辆状态的控制循环的下一次迭代中失败(§6中的错误#17)。我们不假设攻击者在物理上控制了ADS(例如,例如,在一个实施例中,通过OBD-II端口连接设备)或远程(例如,例如,在一个实施例中,执行远程代码执行)来利用漏洞。相反,攻击者只能控制外部输入,例如附近的对象或位置(例如,位置)。例如,在一个实施例中,移动附近的车辆),其目的是引起自主车辆的严重不当行为(例如,例如,在一个实施例中,碰撞、车道侵入、交通违规或变得不动)。这些外部输入是对ADS的合法和真实的输入,而不是通过对抗性攻击(例如,攻击)恶意制作的输入。例如,在一个实施例中,传感器欺骗)或合成生成的驾驶场景。实际可行性。 我们认为,我们的威胁模型中的攻击是现实和实用的。 我们进一步讨论了利用我们在§6.3中基于此威胁模型识别的漏洞的可行性。可扩展性。当前的威胁模型侧重于控制外部输入的攻击,因为它们是对ADS最紧迫和最现实的威胁。然而,由于我们的模糊设计是通用的(§4),威胁模型可以扩展到其他攻击,如传感器欺骗,e。例如,在一个实施例中,通过引入额外的可变组件。4设计4.1DR ivE F uzz概述D rivEFUZZ是一个反馈驱动的突变模糊器,它可以改变驾驶场景来测试ADS。它旨在生成物理上逼真的,但测试较少的角落情况下驾驶场景,以发现ADS中的安全关键的不当行为图2显示了DRIVEFUZZ的工作流程及其四个主要组件。提供一个输入驾驶场景,变异引擎(§4.2)生成并变异与任务(初始和目标位置),天气,演员(车辆和行人及其轨迹)和水坑(摩擦力相当低的区域)相关的各个方面。测试执行者(§4.3)启动待测ADS,协调驾驶模拟器为变异驾驶场景做准备,并将任务分配给自我车辆,即。例如,由ADS单独控制的飞行器[63,74]。 当自我车辆执行任务时,不当行为检测器(§4.4)利用我们的驾驶测试神谕来检测各种安全关键的车辆不当行为。 如果自我车辆完成了任务,没有任何不当行为,驾驶质量反馈引擎(§4.5)通过分析车辆状态来量化整体驾驶质量,以指导进一步的变化,从而产生降低质量的场景。4.2突变引擎4.2.1测试输入驱动场景。ADS的输入空间非常大,与现实世界中的输入空间类似,无论是时间域还是空间域。 为了有效地探索输入空间,我们确定了关键的可变组件在驾驶的情况下,可以影响各种组件的ADS扰动时。 如图3所示,我们的驾驶场景包括(1)预定义的3D地图,该地图使用标准化的1756CCS图2:DR ivE Fuzz的架构和工作流程概述表1:对驾驶场景的每个组件采取模糊操作直接影响的ADS层通过组合所有操作,突变场景的覆盖范围有效地跨越了所有层。组件行动受影响层地图和任务选种感知、感知、规划演员世代突变感知、感知、规划水坑世代突变规划、执行天气突变感知,知觉图3:如何将变化应用于种子场景的示例,其中定义了地图和任务添加指示水坑的蓝色框以实现可视化,并且在模糊化过程中不可见道路网络格式[10],(2)由初始位置和目标位置定义的任务,(3)行动者,i.例如,车辆或行人独立于自我车辆,(4)影响道路摩擦力的看不见的水坑,以及(5)天气条件。类似于传统的突变模糊器[2,87],当给定要进化的种子场景时,Driv E F uzz表现最好。重要的是要提到,生成输入种子是直接的,并且不需要ADS中的特定专业知识。具体来说,对于我们评估中的所有实验,我们从模拟器提供的现有地图中构建输入种子,其中每个地图包括一组有效的路点(即。例如, 两个航路点之间的任务保证是可实现的)。我们通过为初始点和目标点随机选择两个预定义的路点来获得种子 我们在[ 47]中用示例种子进一步解释了细节。4.2.2场景突变。D rive EFUZZ的场景突变旨在逐渐增加突变场景对测试中的自我车辆的影响。具体而言,通过根据突变计划(第4.2.5节)生成和突变情景的组成部分,它会影响ADS的所有四个层,如表1所示。地图和任务选择。 地图不仅定义静态世界对象(如影响感知模块的建筑物和树木),还包括道路结构(如交叉口或路缘石规划者积极地与之互动任务多样化的目的是探索地图的不同部分和相关对象以及道路结构,使D riv E Fuzz能够彻底测试感知和规划层中的各种问题。演员世代突变。场景中的参与者会影响感知层、感知层和规划层,因为参与者的行为可能会迫使ADS偏离原始的路由计划,例如:例如,在一个实施例中,堵住了路DrivE Fuzz通过随机选择角色类型(车辆或行人)、初始位置和目的地、导航方法、目标速度和轨迹来生成角色为了使行动者在自我载体的可交互范围内生成(即,例如,跨越任务的传感器范围),行动者的初始位置总是从自车辆的初始位置的可配置范围内选择。此外,为了使行动者可以呈现的情况多样化,我们定义了四种导航方法:1. 自动驾驶:一个演员执行一个安全和合法的自动驾驶,使用地面实况交通数据,并遵守所有交通规则,同时前往目的地。2. 机动:一个演员执行一系列的机动(即。例如,向前行驶,切换到左/右车道)。每个动作都有一个预定义的时间来描述动作的持续时间3. 线性:行为者盲目地沿着线性轨迹行进到目的地,而不考虑周围的交通或物体,从而不遵守任何规则。4. 不动:一个演员在初始位置保持静止参与者的突变包括修改生成的参与者的方面的过程。除了类型和导航方法,所有其他方面(e.例如,在一个实施例中, 初始位置)可以被突变以使演员表现出各种行为。水坑世代变异。看不见的水坑(e。例如,在一个实施例中,黑冰)减少道路的表面摩擦,从而影响ADS的致动。例如,基于道路的表面状况或轮胎状况,ADS必须相应地调整控制命令(e.例如,在一个实施例中,避免在车轮上产生大的扭矩)以确保自我车辆不会失去控制。1757()下一页←()()下一页←←()←()←←←()下一页DriveEFU zz:通过驾驶质量指导的FuzzingCCS'22发现自动驾驶错误DRIVEFUZZ通过随机选择位置、大小和摩擦力来生成一个水坑。与演员类似,它通过修改水坑的位置,大小和摩擦力来改变水坑。天气突变。 天气会影响传感和感知层,这些层充当ADS的眼睛。 Driv EFUZZ改变天气的以下八个方面:雨、云、风、雾、湿度、水坑、太阳方位角和太阳高度。 通过各种可用的组合,可以模拟和测试真实的天气条件。4.2.3确保物理上有效的突变。我们的目标是在现实生活中可能发生的物理可行的情况下测试ADS。因此,所有突变的驾驶场景都需要在语义上是实用的;例如,在模拟期间,演员不应该突然出现在自我车辆的前面与此同时,D riv EFUZZ不应该忽视不寻常但可能的场景,例如在高速公路上遇到一个人2。为此,我们确保测试总是在模拟完全加载场景后开始算法1:驾驶质量反馈驱动模糊输入:一组种子场景(种子库),一个突变策略,-Maximum #cycles,-Size of population输出:错误报告-详细的错误报告,错误场景1foreach∈do������������2_()3程序_45为6无菌包装���.无菌包装,���无菌包装//§4.2.2,§4.2.47__08为9.第4.2.2节,第4.2.3节������������������������������������������10第4.3节���������������������������������������������������������������������11如果������������������������.������������_/*§4.4*/==,则������������������������������������������������12_,J13返回14其他15←������������������������.������������_()//§4.5���������������������16如果≤__,则���������������������������17__←������������������1819���←���������������������������包括天气条件和所有演员/水坑,防止在测试过程中突然创建任何对象此外,在允许随机生成的对象,我们施加了空间约束和时间约束,以防止违反物理定律的事件,并防止假阳性的情况下,自我车辆是不是在错误的行为。空间限制。 为了防止导致物理上不可能的场景的不现实的堵塞,例如两个不同的车辆在相邻位置部分重叠,所有参与者的初始位置被约束为彼此相距至少几米。同样的约束也适用于静态对象(e)。例如,在一个实施例中,建筑物,交通灯);演员在其初始位置的尺寸不能冒犯静态对象的边界框如果空间约束被违反,则变异引擎将其视为不可行的场景,并且通过随机选择违反空间约束的行为者的位置来再次尝试变异。注意,这个随机过程导致很少的额外计算(例如,例如,在一个实施例中,生成随机数并检查空间约束),这只会导致可忽略的开销(参见§6.8)。时间限制。 为了防止演员的不切实际的运动,D riv EFUZZ通过将演员车辆和行人的最大速度限制为保守值e来施加时间约束。例如,在一个实施例中,分别为20和6个月空间和时间约束与导航方法相结合,旨在排除可能导致误报的最不切实际的鲁莽场景。例如,不能生成行人静止不动直到自我车辆接近并且然后在最后时刻突然跳入以引起无法避免的碰撞的场景,因为(1)在行人和自我车辆之间存在初始距离(空间约束),(2)行人不能不切实际地快速行走(时间约束),以及(3)他/她安全地行走(自动驾驶)、线性地行走到目的地(线性地)或者不移动(不动),坚持导航方法。4.2.4突变策略。根据要进行压力测试的目标ADS的特定方面,可以使用不同的突变策略。2这个人可能是停在路边的一辆坏车的司机可以开发和应用指定可变属性和约束。我们提出的战略包括但不限于以下内容:基于对抗的系统:仅引入和改变相邻参与者的操纵,强制与目标系统进行交互。例如,在一个实施例中,行动者车辆通过切换车道突然切断自我车辆。基于拥塞:仅引入自动驾驶仪参与者,以便目标ADS在日益拥塞但合法的场景中驾驶。基于熵:仅引入线性或不动的参与者,测试目标系统安全绕过鲁莽驾驶员和非法行人的能力。基于不稳定性:仅插入不同尺寸和摩擦的水坑,测试运动控制器应对外力触发的突然不稳定性的鲁棒性。每个策略可以独立地应用于模糊活动,或者在概率调度下协调联合应用。例如,在一个实施例中,随机选择下一个策略以在每轮之后应用4.2.5反馈驱动的突变调度。为了有效地探索输入空间,DriveE Fuzz利用反馈机制来生成和变异算法1中所呈现的场景的组件。 在每个循环中,D riv EFUZZ首先生成并向场景中引入一个参与者或puddle(第6行)。然后,生成的组件或天气被突变������多次,以创建大小的popul- lation������(第9行)。执行每个变异场景,并通过反馈引擎(§4.5)评估其质量,该引擎测量驾驶质量分数(第15)。在循环结束时,如果没有一个群体触发不当行为(线11),则根据驾驶质量分数对它们进行排名,并且选择群体中得分最低的一个(线18)并传递到下一个循环(线19)。D rivE Fuzz重复这个过程,在这个选定的场景添加随着模糊循环的重复,场景逐渐增加-随着更多的演员和水坑的插入,紧张局势然而,更多的突变可能并不总是导致严重的不当行为。防止····1758/CCS探索不太有希望的方向的突变,D rivE FUZZ中止,并开始一个新的运动与新的种子(线2)时,它达到了最大周期( 线2)没有发现一个错误的行为。4.3测试执行器测试执行器在驾驶模拟器中给定的驾驶场景下运行ADS,收集各种车辆状态用于模糊处理。对于模拟器,我们选择使用CARLA[28],这是一个使用虚幻引擎实现的高保真驾驶模拟器。CARLA以其积极的开发状态和使用、专业设计的逼真地图、广泛的支持传感器、控制驾驶场景各个方面的灵活性以及通过支持机器人操作系统(ROS)[70]轻松集成各种ADS的能力而闻名,ROS是一种通用中间件,许多机器人系统都建立在其上。4.3.1测试桥。 测试桥将突变引擎连接到ADS和模拟器,测试突变的驾驶场景。正在加载输入驱动场景。测试桥首先对CARLA模拟器进行调试,以在模拟世界中设置输入场景 它连接到模拟服务器,打开地图,配置天气,生成演员,水坑和由变异输入场景指定的自我车辆。 加载完成后,启动ADS。初始化目标ADS进行测试。 测试桥启动ADS堆栈并等待,直到它完全初始化。然后,它将自动驾驶功能附加到模拟世界中产生的自我车辆上 一旦系统联机并加载了自动驾驶代理,就可以进行模拟测试了。4.3.2驾驶模拟器。 驾驶模拟器在合成实时传感器数据以及计算车辆状态方面起着关键作用。 与使用配备适当传感器和配套计算机的真实车辆[64]来桥接ADS软件与车辆控制器的替代选项相比,回路中的模拟器具有多种益处。 我们在D riv E Fuzz中使用模拟器以充分利用以下益处:(1)测试不同物理规格的车辆和自动驾驶软件栈而不改变测试方案,(2)与物理车辆的测试相比,测试车辆具有显著更低的成本,(3)在各种情况下测试车辆,包括但不限于不太可能的情况,而没有物理限制,以及(4)完全自动化测试序列。在一个循环中,CARLA负责通过将ADS发出的控制命令应用于自我飞行器来模拟每个帧,并更新模拟中的参与者的状态,例如。例如,在一个实施例中,以1.5的速度向北移动的行人的位置。 ADS将自我车辆的更新状态与从模拟器读取的新传感数据相结合,以决定随后的控制命令。当车辆到达目的地或不当行为检测器发现任何问题时,循环终止4.4不良行为检测器当ADS无法处理输入场景时,它可能会导致来自面向软件的错误(例如:例如,在一个实施例中,部件中的存储器错误)到车辆误操作(例如,例如,在一个实施例中,碰撞)。我们的不良行为检测器打算指出适用明确的标准,在ADS驾驶行为中有明显的违法行为。 受ADS被设计为在现实世界中驾驶遵守交通规则和法规的事实的启发[65],我们构建了以下三个驾驶测试神谕,用于检查与人类安全密切相关的事件:碰撞,违规和自我车辆的不动性。碰撞 碰撞是对人类驾驶员造成重大损害的最具破坏性的事件之一。 通过将碰撞传感器连接到自我车辆(这将对应于真实车辆周围的多个传感器),捕获并报告与任何物体的碰撞。违法违规是指交通违规行为,包括(1)超速,(2)侵入车道和(3)闯红灯,分别直接涉及2018年美国年度致命事故的约30%,8.5%和4%。由于D rivE Fuzz可以完全访问模拟空间,因此它会比较车辆的状态(例如,例如,在一个实施例中, 当前速度)与所定义的交通规则(e. 例如,在一个实施例中,速度限制)检查是否有违规行为。不动。 在特定位置不移动的车辆将成为随后发生碰撞等不良事件的原因。例如,在一个实施例中,一辆车停在十字路口中间会导致其他车撞上它)。静止监视器测量车辆不移动的持续时间,不包括合法停车(例如,例如,在一个实施例中,交通信号灯)。如果它超过了一个阈值(本文中为60),那就被认为是一种不当行为。不当行为检测器监控模拟的每一帧,并参考这些预言机来检查任何违规行为(算法1的第11行)。 在检测到不当行为时,事件被报告,并且在记录所有车辆状态以供稍后检查之后,模拟立即终止。4.5驱动质量反馈引擎我们提出了一个新的驾驶质量度量,抽象的性能ADS下的测试方案。特别地,通过评估测试期间驾驶操纵中的各种事件来测量度量,这些事件不会立即触发安全关键错误行为,但可能导致这些错误行为。该度量稍后用于引导输入场景向错误条件变化。请注意,我们开发这个新的度量标准是因为现有的度量标准(如代码覆盖率)不适合我们的上下文。具体来说,虽然代码覆盖率引导的变异已被证明在许多现代灰盒模糊器中有效地近似顺序程序的已探索输入空间的量,但对于分布式和有状态系统(例如ADS)来说,它不是有效特别是,ADS运行由数据驱动的更小的节点改变状态,由运行状态机的循环组成。无论测试进度如何,它们的代码覆盖率都会很快饱和,因此不足以近似测试覆盖率(参见我们的扩展手稿[47])。4.5.1驾驶质量测量。 当没有检测到安全关键的不当行为时,Drive E Fuzz分析驾驶数据以引导输入变更器,使得其可以有效地将输入场景变更为可能触发安全关键的不当行为的场景。为了定量地测量车辆与安全关键的不当行为的距离,我们参考了美国交通部国家公路交通安全局的官方报告[1,57]。···1759/−//打开/关闭--DriveEFU zz:通过驾驶质量指导的FuzzingCCS'22发现自动驾驶错误美国国家公路交通安全管理局(NHTSA)负责调查交通事故的原因。根据报告,52%的已知原因的致命事故归因于鲁莽或笨拙的驾驶行为,如急加速或转向过度。许多汽车保险公司(e。例如,在一个实施例中,Allstate、Progressive和StateFarm)也支持这一观点,他们的程序根据急刹车、急加速和急转弯事件的数量来评估驾驶质量,以确定保险费率[7,69,73,79]。受现实世界使用的启发,D riv EFUZZ根据硬加速、硬制动、硬转弯、转向过度和转向不足的次数以及与其他参与者的最小距离来衡量驾驶质量。下面的段落1 -4介绍了我们如何通过利用模拟驾驶数据的车辆状态来测量构成驾驶质量的每个因素。1急加速和急制动检测。车辆的纵向加速度与重力常数 的比值(约9.82)是表示加速或制动事件的粗糙度的普遍接受的方式[14,36]。硬加速/制动指示器的读数由下式给出=/(1)如果���������超过阈值,则D riv EFUZZ将帧计数为硬加速或硬制动事件。对于阈值,NHTSA使用0。40. 6识别急加速或急制动[26,50]。其他研究表明,0。5是人们通常同意的阈值[14,36]。 取上界,我们使用0。6作为决策边界���������,这是车辆������在不到5秒的时间内从60英里处到达或停止的力。#���=���������������( ������≥ 0. 6),#���=���������������( ������≤ − 0. 6)(2)2硬转检测。 当驾驶员试图以过高的速度转弯时,就会发生急转弯。 由于硬转弯与施加到车辆的横向力有关,因此我们利用使用硬转弯指示器������的检测算法,使得=/(3)其中,分别表示横向速度和方向盘角度如果(1)大于转向阈值,且(2)高于硬转弯阈值,那么DRIVEFUZZ将帧计数为硬转弯。这两个阈值都是可配置的,我们根据经验分别将其确定为20和0.18,#���=���������������(���≥20������≥0.18)(4)3转向过度和转向不足检测。转向过度和转向不足表示车辆对转向力的反应。转向过度发生在后轮胎失去抓地力时,车辆的转向量超过驾驶员转向的量,而转向不足发生在前轮胎失去抓地力时,因此车辆的转向量小于转向量。这两种情况经常发生在需要积极控制的竞技赛车运动中,并且它们经常导致车辆在转弯时失去控制和打滑的事故 在正常驾驶条件下,由于控制不精确,或由于自然事件(如黑冰)引起的道路摩擦力较低,可能会发生转向过度或转向不足。无论原因是什么,两者都被认为是非常危险的[34,38],在NHTSA的“美国致命车祸的前12个原因”中排名第7。概括地说,有两种方法试图检测转向过度和转向不足事件:基于模型的检测和基于模糊逻辑的检测。基于模型的检测往往是准确的,需要精确的车辆、轮胎和摩擦力模型 另一方面,模糊逻辑[62,86]将连续体上语言语句的“真实性”近似为模糊值而不是布尔值,并使用规则聚合多个值以推断最终的输出水平。要把握整体安全并产生反馈,D riv EFUZZ并不要求检测做到一丝不苟的精准。此外,模型特定检测不适合D rive EFUZZ用作测试植入在各种车辆模型上的ADS的通用框架的目的。因此,我们采用了[8,67]提出的基于模糊逻辑的检测方法,该方法在不同的车辆模型中效果相当好。总之,可以从驾驶数据中获得的四个指标,转向角(转向角度)、纵向速度(纵向速度)、横摆角速度(横摆角速度 )和横向加速度(横向加速度)用于模糊逻辑以计算转向过度程度���������������������������和转向不足通过推断出的转向过度和转向不足水平(0,1中的浮点数),我们调整阈值以确定最终结果,如下所示:#=���������������( ������≥ 0. 4),#=���������������( ������≥ 0.(5)4最小距离任何未能与其他车辆或行人保持安全距离的行为都意味着系统接近潜在的不当行为。例如,如果到行人的最小距离是一英尺,我们可以将其解释为自我车辆差点撞上行人,并且稍微改变,该场景可能导致碰撞。 为了将这些事件考虑在内,Driv E Fuzz测量每帧从自我车辆到所有其他演员的距离,并跟踪最小距离。分数越小,扣除的驾驶分数就越多整体驾驶质量评分。 在所有要素准备就绪后,D riv E F UZZ通过对事件数量进行多路复用来计算总体驾驶质量分数。驾驶质量分数从零开始,减去上面捕获的事件数量,然后是最小距离的倒数(即。例如,1分)乘以一个可配置的系数,得到最终的反馈分数。总之,驱动品质因数由下式给出:��������������� = − ( #+���#+#������+#+#+ /) ( 6 )final���������������被传递到输入mutator,用于决定值得进一步突变的场景(算法1的第15行)。调整指标。 驾驶质量因素的权重可以被配置为根据用户的需求和目标系统的特性来优先考虑某些不当行为。在我们的实验中,我们平 等 地 对 待 所 有 因 素 ( 即 。 例 如 , 等 式 6 ) , 以 防 止DRIVEFUZZ偏向于任何特定的不当行为。4.5.2驾驶质量反馈的关键贡献 在测试ADS的背景下,我们的设计基于物理车辆状态的驾驶质量反馈是高度相关的原因有两个。首先,使用车辆的物理状态,它允许D riv EFUZZ实用地量化驾驶的鲁莽,而不需要代码级分析,也不检查内部状态,其可用性并不总是得到保证。其次,与相关工作[53]建议的反馈不同,这些反馈可能会导致ADS远离我们检测到的错误(参见第6.4节),我们的细粒度反馈机制为不安全驾驶场景提供了适当的指导,从而检测到实际的,安全关键的不当行为。1760·CCS表2:DR iV E Fuzz的实现复杂度组件LoC语言突变引擎440Python不当行为检测器和驾驶测试预言机119 Python反馈引擎和驾驶质量指标636 Python测试执行器1125 PythonAutoware 48的附加桥接器Shell脚本5执行D rivE Fuzz的原型大约有2.3K行Python 3代码,如表2所示。ROS和可移植性。ROS [70]是一个事实上的中间件,它提供了一种在分布式节点之间传递消息的方法,硬件抽象,以及一个更容易开发机器人系统的工具集。 D riv E F uzz将ROS纳入测试执行器的设计中,并使任何基于ROS的ADS [44,45]和模拟器[28,72,75]可插入系统。虫子繁殖 ROS利用了一个发布者-订阅者消息传递方案;节点将消息发布到一个主题,其他节点订阅该主题以接收消息。因此,包括传感器输入和控制命令的所有流都被概括在消息中。 D rivEFUZZ记录所有底层ROS消息,基本上捕获模糊化过程中发生的所有数据流,然后重放它们以重
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功