AV-FUZZER:发现自动驾驶安全违规

自动驾驶车辆‐模糊器:在自动驾驶系统中发现安全违规

李冠鹏∗,李一然∗,绍拉布·贾∗,蔡志明†,迈克尔·沙利文†,希瓦·库马尔·萨斯特里·哈里†,兹比格涅夫·卡尔巴尔奇克∗,拉维尚卡尔·艾耶∗
∗伊利诺伊大学厄巴纳‐香槟分校, †英伟达

摘要

本文提出了AV‐FUZZER,一种用于在动态交通环境中发现自动驾驶汽车(AV)安全违规的测试框架。我们通过对交通参与者驾驶操作的扰动,构造可能导致自动驾驶汽车出现安全违规的情境。为了最优地搜索应引入的扰动,我们结合车辆动力学的领域知识和遗传算法,以最小化自动驾驶汽车在其预测轨迹上的安全潜力。该过程确定的扰动值提供了定义参与者轨迹的参数。为了提高搜索效率,我们设计了一个局部模糊器,以增强在高概率存在安全隐患区域中对局部最优解的利用。通过在搜索空间中采用显著不同的起始点重复优化过程,AV‐FUZZER能够识别出多种不同的自动驾驶汽车安全违规。我们在工业级自动驾驶平台百度阿波罗上验证了AV‐FUZZER的有效性,并在短时间內发现了五种不同类型的安全违规,而其他现有技术最多只能发现两种。我们对在阿波罗系统中发现的安全违规进行了分析,并讨论了其根本原因。

索引术语

自动驾驶车辆,安全关键应用

一、引言

从减少交通拥堵到改善交通可达性,自动驾驶车辆(AV)具有显著潜力,可提高生产力并改善生活质量。确保自动驾驶车辆的安全对于其在市场上的成功至关重要,特别是由于公众对其安全性存在认知问题,这种公众的担忧影响了自动驾驶车辆制造商生产和部署这些车辆的决策。

测试是自动驾驶车辆开发中至关重要的环节,可确保由自动驾驶软件驱动的车辆具备安全性。通常,使用压力测试技术对自动驾驶车辆进行测试。一种常见的做法是利用人工指定输入,即由人工操作员指定交通中周围车辆的操作,并观察目标自动驾驶车辆的行为[1]。然而,由于涉及大量人工劳动,这种方法成本高昂且耗时极长。最近,研究人员提出了自动生成(或半自动生成)自动驾驶车辆测试用例的技术[2]–[6]。这些方法要么采用随机采样方法,要么依赖训练机器学习模型来引导测试用例生成[4],[7]。然而,这些技术常常忽略边缘情况,或倾向于反复发现与已发现故障类似的缺陷。此外,在使用工业级模拟器测试真实世界中的自动驾驶车辆时,这些方法可能效率低下,因为车辆行为的状态空间(包括所有车辆的物理状态和自动驾驶车辆的内部软件状态)极为庞大。自动驾驶技术厂商,如百度阿波罗每周发布软件更新[8],[9]。在如此快速发展的自动驾驶汽车行业中,扩展现有的自动驾驶汽车测试技术具有挑战性。

本文提出了AV‐FUZZER,一种高效的自动驾驶汽车测试框架,用于生成测试用例,以确定自动驾驶车辆在动态交通环境中出现的安全违规情况。我们通过扰动交通参与者(例如,环境中其他车辆)的驾驶操作,来创建可能导致自动驾驶车辆发生安全违规的情况。我们的方法基于以下见解和观测:(1)我们可以将引入扰动的搜索过程建模为一个优化问题,并利用遗传算法和车辆动力学的领域知识来求解该问题。我们最小化自动驾驶车辆在其预测轨迹上的安全潜力,此过程所确定的扰动值提供了定义各参与者轨迹的参数。(2)通过设计一种局部模糊器,动态增强在高度可能发生安全隐患情况(即接近事故等情况)区域中对局部最优解的利用,可以提高发现安全违规的效率。(3)我们开发了一种重启机制,在未探索的搜索空间中采用显著不同的起始点重复进行优化,以识别出多样的安全隐患情况,使自动驾驶车辆在这些情况下会出现安全违规。

我们在百度阿波罗(Baidu Apollo)上展示了AV‐FUZZER,这是一个工业级的四级自动驾驶软件栈,广泛用于控制公共道路上的自动驾驶车辆[10],[11]。我们发现了阿波罗中一些此前未被发现或报告的关键安全缺陷,并能够在相对较短的搜索时间内找到这些安全违规。具体而言,我们找到了13个关键场景,在这些场景中阿波罗进入了危险状况并导致碰撞。相比之下,其他技术(如随机模糊测试和自适应压力测试)[4],在相同的搜索时间内分别仅发现了1个和5个安全违规。随后,我们分析了AV‐FUZZER在阿波罗中报告的安全违规的根本原因,并将其归类为5种不同类型的软件缺陷。在这5种类型中,有2种模仿了过去向加州机动车管理局[12]报告的真实世界自动驾驶车辆事故。尽管AV‐FUZZER在20小时的搜索内就发现了全部5种类型,但现有技术[4]即使给予10倍的搜索时间(200小时),最多也只能发现2种不同类型。

由于AV‐FUZZER既高效又有效,因此可以将其集成到自动驾驶汽车开发周期中。据我们所知,这是首个(i)提出高效测试框架以评估交通参与者的驾驶操作对端到端、真实场景下工业级自动驾驶车辆系统安全性影响,并且(ii)研究导致自动驾驶安全违规的阿波罗软件缺陷的研究。

总结如下:

  • 我们提出了AV‐FUZZER¹,一种自动驾驶汽车测试框架,能够在动态变化的交通环境中快速发现由自动驾驶车辆引起的多样化安全违规。
  • 我们在工业级的四级自动驾驶技术栈百度阿波罗上展示了AV‐FUZZER的能力,并且比其他现有的自动驾驶测试方法更高效地发现了更多的安全违规。
  • 我们分析并分类了AV‐FUZZER在阿波罗中报告的安全违规行为,共分为5种不同类型,并讨论了其根本原因。

¹AV‐FUZZER 可在 https://github.com/cclinus/AV‐Fuzzer 下载

示意图0

II. 背景

在本节中,我们介绍了自动驾驶系统的架构、遗传算法的高层概念以及本研究中使用的高保真仿真。

A. 自动驾驶系统

自动驾驶车辆利用自动驾驶系统(ADS)技术替代人类驾驶员来控制车辆的转向、加速度以及监控周围环境(例如其他车辆)[3],[8],[13]。现代自动驾驶系统(ADS)架构由传感器层和六个基本模块组成[9],,如图1所示。

传感器层:

传感器层对输入数据进行预处理并过滤传感器噪声。自动驾驶系统支持多种传感器,例如摄像头、惯性测量单元(IMU)、全球定位系统(GPS)、声呐、雷达和激光雷达。在本研究中,我们使用原型车辆百度阿波罗,该车辆配备有两个摄像头传感器(一个位于车辆顶部,另一个位于车辆前方)和一个激光雷达[9]。

感知模块:

感知模块从传感器层读取数据,利用计算机视觉和深度学习技术检测交通环境中的静态物体(例如车道、交通标志或障碍物)和动态物体(例如乘用车或卡车)。目标检测算法根据来自各个传感器的传感器数据执行分割、分类和聚类等任务。然后,它使用融合技术(如扩展卡尔曼滤波器[14],)来合并数据,并生成最终的对象轨迹列表。

定位模块:

定位模块负责提供自动驾驶车辆的位置。它通过融合来自多个来源的输入数据,将自动驾驶车辆定位在世界模型中。该过程通过聚合来自GPS、惯性测量单元(IMU)和激光雷达传感器的输入数据实现。

预测模块:

预测模块负责研究并预测感知模块在世界模型中检测到的所有物体的行为。它生成物体的基本信息,如其位置、航向、速度和加速度,然后利用这些数据生成带有概率的物体预测轨迹。

路径规划模块:

路径规划模块根据自动驾驶车辆的当前位置和目的地生成高层级导航信息。该模块的输出,即通行车道和道路,是基于高精度地图计算得出的。

规划模块:

规划模块根据自动驾驶车辆的起点和目的地生成导航计划,并利用定位和预测模块的输出数据为自动驾驶车辆计算一条安全(即无碰撞)的行驶轨迹。

控制模块:

控制模块将规划轨迹作为输入,并生成控制命令(例如执行、刹车、转向),传递给控制器局域网总线,由该总线将信息传递至自动驾驶车辆的机械系统。

B. 遗传算法

遗传算法(GA)[15],[16]是一种受自然进化启发的元启发式搜索算法。该算法从一组初始候选解开始,这些候选解collectively被称为种群。算法由一个适应度函数驱动,该函数计算候选者的适应度评分。适应度评分反映了候选者在解决问题方面的优劣程度。

在每个阶段,会从种群中选择一些候选解进行重组操作。重组操作有两种类型:(a) 交叉和(b) 变异。在交叉操作中,随机选择两个候选者并交换其部分,以期从较优解中生成更优的解。该操作倾向于缩小搜索范围,向最优解靠近。在变异操作中,随机选择一个候选者,并翻转解中的某一位或某个实体,从而扩展算法的搜索探索能力。通常情况下,重组操作会产生新的、性能更优的个体,并将其加入种群中。而适应度分数较差的个体则逐渐被淘汰。每一次这样的过程称为一代,并不断重复,直到种群中的某个个体达到期望的适应度评分(即找到解),或算法超出分配的时间而终止。

C. 高保真仿真平台

我们使用基于虚幻引擎(UE)的实时仿真平台 LGSVL[17],,该平台能够利用城市布局、建筑物、行人和车辆的库来模拟复杂的城市和高速公路驾驶场景。该模拟器可以定期生成各种传感器数据(来自摄像头、激光雷达等),这些数据可输入到自动驾驶系统平台,为测试自动驾驶系统提供端到端的仿真环境。该模拟器支持具有代表性的物理模型,可模拟真实世界车辆动力学,从而实现对车辆行为及其运动轨迹的高保真仿真。高保真仿真也意味着车辆状态(即位置、速度、自动驾驶车辆内部软件状态等)的搜索空间巨大。该仿真平台是自动驾驶汽车行业用于开发和测试其自动驾驶系统的典型环境。

III. AV‐FUZZER 概述

本节介绍了AV‐FUZZER的概述。我们的总体目标是高效地识别周围车辆的交通操作,这些操作会导致自动驾驶车辆安全违规。我们使用遗传算法来最小化定义的适应度函数(等同于自动驾驶车辆的安全性),以指导对问题操作的搜索。在此过程中,每当发现高概率的安全违规情况时,我们就会进一步开发其周围区域(即扰动周围交通的参数),以精确定位导致安全违规的危险状况。为此,我们首先使用遗传算法在搜索空间中探索自动驾驶车辆安全性较低的高潜力区域;然后利用局部模糊器对每个高潜力情况进行充分开发,并尽可能将其演化为安全违规场景。当发现搜索过程陷入停滞时,我们将基于已探索的历史轨迹,在搜索空间中未探索区域的一个显著不同的起点重新启动搜索。通过在优化空间中以这种方式移动,我们能够确定多种多样化的自动驾驶汽车安全违规场景。

图1展示了AV‐FUZZER框架的整体结构,以及模拟器和被测自动驾驶汽车的示意图。AV‐FUZZER()由配置模块()、领域知识模块()和模糊测试引擎()组成,其中配置模块用于指定驾驶环境,领域知识模块用于定义安全模型和车辆动力学,模糊测试引擎用于驱动测试场景生成。AV‐FUZZER连接到一个图形模拟器(),该模拟器向被测自动驾驶汽车()提供传感器输入,并提供一个仿真平台。在本文中,我们将非自动驾驶交通参与者称为非玩家控制车辆(NPCs)或目标车辆(TVs)。我们将被测自动驾驶汽车称作自车(EV)或自动驾驶车辆(AV)。我们将场景定义为在给定驾驶环境中,在仿真过程中执行的一系列非玩家控制车辆操作。

A. 配置:驾驶环境设置 (在图1中)

配置模块指定测试所进行的驾驶环境。在设置中,AV‐FUZZER的用户指定一个driving environment:测试发生的道路结构、非玩家车辆(NPCs)及其初始状态,以及非玩家控制车辆在测试中的允许的机动动作。该驾驶环境可以从模拟器支持的现有道路结构中选择。例如,在我们的研究中,我们使用了LGSVL图形模拟器[17] ,该模拟器支持高速公路和城市道路结构。用户还可以为其测试创建其他道路结构。AV‐FUZZER不依赖于特定配置。

在本研究中,允许的非玩家控制车辆操作包括加速/减速、保持车道和变道。在加速/减速时,会为非玩家控制车辆设置一个目标速度(范围为0‐41 m/s)。车辆将根据自身的动力学特性尝试达到目标速度。这些操作由LGSVL模拟器APIs[17]实现并支持。

B. 领域知识模块 (在图1中)

示意图1

AV‐FUZZER利用领域知识进行有指导的探索,以搜索可能导致自动驾驶车辆安全违规的潜在场景。它通过结合车辆动力学和安全模型,并使用定义的适应度函数来指导场景生成过程,从而实现这一目标。

1) 安全模型:

AV-FUZZER允许用户根据自动驾驶车辆的设计要求、运行设计域(ODD)以及交通法规(取决于地理位置)在测试中定义一组安全约束。违反安全约束的条件即表示发生安全违规。自动驾驶车辆的一项要求是遵守交通法规且不引发责任事故。因此,我们定义了两条常见的安全约束,自动驾驶车辆必须遵守以避免在公共道路上造成任何责任事故。我们为每条约束提供一个真实世界的示例,以说明我们在安全模型中定义的安全约束。这些示例如图2所示。

SC‐1 :第一个示例对应特斯拉自动驾驶系统(Autopilot)的一个问题:特斯拉未能识别其前方的车辆并加速,导致追尾前车,引发致命事故[18]。根据交通法规,特斯拉在追尾碰撞中负有重大责任,因其未能与前方车辆保持安全距离。我们将与前方车辆保持安全距离定义为一项安全约束,即SC‐1。因此,未能遵守该约束并导致事故发生即构成安全违规。

SC-2 : 第二个示例(如图底部所示2)展示了一起事故,其中谷歌自动驾驶汽车未能让行从相邻车道后方驶来的车辆(TV),导致发生侧面碰撞[19]。在这种情况下,TV拥有先行权,而谷歌自动驾驶汽车应当向其让行。因此,谷歌自动驾驶汽车负有重大责任。我们将让行于拥有优先权的车辆定义为另一项安全约束,即安全约束SC‐2。未能做到这一点并因此引发事故将构成安全违规。

回想一下,我们的目标是确定在自动驾驶车辆将发生安全违规的场景中的非玩家控制车辆轨迹。可能存在许多可能导致自动驾驶车辆违反安全约束(无论是SC‐1还是SC‐2)的非玩家控制车辆轨迹——这些轨迹正是AV‐FUZZER旨在找到的。

2) 车辆动力学:

我们定义了一个将车辆动力学与安全模型关联的车辆动力学模型。该模型应用于碰撞中违反安全约束的情况,以量化安全潜力。在车辆动力学模型中,我们将自动驾驶车辆的纵向(即沿车辆运动方向)和横向(即垂直于车辆运动方向)笛卡尔距离作为衡量车辆瞬时安全准则的依据(见图3)。我们在(1)中定义了 δ,即安全潜力。

$$
\delta = d_{safe} - d_{stop} \quad (1)
$$

在方程中,$d_{safe}$[20]、[21]定义为自动驾驶车辆在不与任何静态或动态物体发生碰撞的情况下可行驶的最大距离。$d_{stop}$定义为在施加最大舒适减速度 $a_{max}$的情况下,车辆完全停止前将行驶的距离。类似模型已在[13]中提出。

如果一辆自动驾驶车辆相对于另一辆车在横向和纵向上满足 $\delta > 0$,则定义该自动驾驶车辆处于安全状态。安全潜力 $\delta$在驾驶环境中针对每个自动驾驶车辆,在整个场景中根据安全违规的条件进行全局测量和监控。通常情况下,$\delta$越小,此时发生安全违规的风险就越大,因为车辆需要比现有可用空间更大的距离来避免碰撞。

示意图2

C. 模糊测试引擎 (在图1中)

示意图3

图4展示了模糊测试引擎的工作流程。总体而言,我们的模糊测试引擎从遗传算法(在图中)开始,该算法根据适应度函数的反馈进行引导。我们将适应度函数定义为安全潜力 $\delta$,其通过实际的自动驾驶车辆自动驾驶性能和场景中非玩家控制车辆轨迹来衡量。遗传算法从种群中一组随机生成非玩家控制车辆操作的场景开始,然后通过重组操作对非玩家控制车辆操作进行修改。遗传算法根据场景的适应度分数保留安全潜力较低的场景,并淘汰安全潜力较高的场景。

此过程将重复执行,直到找到安全潜力更低的场景。通过这种方式,遗传算法在非玩家控制车辆操作空间中进行定向探索,以缩小搜索范围并趋向于发现安全违规场景。一旦遗传算法找到具有低安全潜力的场景,我们便将其作为种子场景用于开发(如图4所示)。需要注意的是,该探索过程也可由其他优化算法引导;但我们选择遗传算法,因为它在高保真仿真中优化轨迹时具有更高的效率。我们将在第IV-B和V-A节进一步说明这一点。

我们设计了一个局部模糊器(如图4所示),该模糊器接收种子场景,并迭代地探索其附近的变体以识别安全违规。当观察到具有低安全潜力的场景时,局部模糊器作为遗传算法的一个子程序被触发。我们的直觉是,在差点事故案例附近可能存在安全违规,因此我们在搜索转向其他目标区域之前,先利用其局部最优进行探索。在此步骤中,遗传算法的主过程被暂停,局部模糊器接管并在给定的搜索时间内针对种子场景周围的非玩家控制车辆操作搜索安全违规。局部模糊器执行结束后,恢复遗传算法的主过程。在此过程中发现的任何安全违规场景都将被报告。

我们监控遗传算法中生成的场景的适应度是否随时间提高。如果没有提高,我们判断遗传算法陷入了局部最优。一旦发生这种情况,我们将启动一个随机重启过程(如图4所示),重新初始化一批新场景,使遗传算法能够重新开始。具体方法是为新一批场景随机生成大量非玩家控制车辆操作,并选择那些与遗传算法之前生成的场景中最不相同的操作。该重启机制确保:(1)当搜索方向可能陷入死胡同时,遗传算法能够脱离停滞点;(2)通过在搜索空间的未探索区域进行重启,能够发现不同的安全违规场景。这些组件协同工作,动态平衡搜索过程中的探索与利用。

D. 将AV-FUZZER置于背景中

模糊测试引擎根据在场景中引入新的非玩家控制车辆操作后提供的反馈,实现基于信息的搜索。该反馈通过监控环境中车辆的状态,并基于适应度函数提供,在计算安全潜力时应用了领域知识。为了说明,我们在图5中使用AV‐FUZZER发现的一个安全违规场景作为运行示例。

示意图4

图5(a)显示了一辆试图超车自动驾驶车辆的目标车辆,在自动驾驶车辆前方留下较小的空间。如果目标车辆的速度增加,发生追尾碰撞的可能性会降低(如图5(b)所示)。我们将观察到$\delta$值的增加。然而,如果目标车辆的速度降低,$\delta$将减小,导致自动驾驶车辆响应和避免碰撞的时间与空间更少(如图5(c)所示)。理想情况下,如果自动驾驶车辆无缺陷,则应能够在满足安全约束的条件下应对目标车辆的这些变化行为,并避免引发事故(见第III-B1节)。然而,如果自动驾驶车辆存在缺陷,后一种情况(具有较低$\delta$)将导致一种场景,使得自动驾驶车辆更有可能暴露出安全违规问题。遗传算法在每个场景中随机变异非玩家控制车辆操作。通过监控$\delta$这些场景中的情况,遗传算法能够选择因变异而导致安全潜力较低(即较低的$\delta$)的场景,并淘汰安全潜力较高的场景。在我们的示例中,类似于图5(b)的场景可能会被消除,而类似于图5(a)的场景则会在遗传算法进化过程中保留下来。通过这种方式,存活下来的场景将包含更可能导致自动驾驶汽车安全违规的NPC动作。

第四节 算法设计

本节介绍了模糊测试引擎的形式化方法。

A. 建模车辆行为

设 $m_t$ 为智能体(非玩家控制车辆或自动驾驶车辆)在时间 $t$ 执行的驾驶操作。我们使用 $m_{NPC, i}^t$ 表示非玩家控制车辆的操作,$m_{AV}^t$ 表示自动驾驶车辆的操作。非玩家控制车辆到时间 $t$ 为止执行的一系列操作记为 $\phi_{NPC, i}^t$,自动驾驶车辆的操作序列记为 $\phi_{AV}^t$。我们用 $\phi_{NPC}^t = {\phi_{NPC,i}^t : \forall i}$ 表示到时间 $t$ 为止所有非玩家控制车辆操作的集合。

我们将时间 $t$ 时 $i^{th}$ 智能体的状态定义为 $S_i^t$。它包括智能体的 (x)、速度(v)和加速度(a)。我们使用 $S_{NPC,i}^t$ 表示非玩家控制车辆(NPC)的状态,使用 $S_{AV}^t$ 表示自动驾驶车辆(AV)的状态。在时间步 $t$ 所有智能体的状态用 $S^t$ 表示。在本研究中,这些状态是从模拟器中观测得到的。

我们使用模拟输出表示在时间步 $t$ 的 。它是通过模拟器渲染引擎(例如虚幻引擎)生成的三维帧。自动驾驶车辆通过传感器读取模拟输出作为输入 $I^t$,这些传感器包括摄像头图像、激光雷达点云、雷达数据和GPS位置。

回想一下,驾驶环境由非玩家车辆(NPCs)和自动驾驶车辆的初始状态以及道路类型(即城市道路与高速公路)来表征。驾驶环境的示例如下如图7所示。一个场景,记为 $D$,由所有非玩家车辆(NPCs)的机动序列集合来表征(即 $D = {\phi_{NPC,i}^t \forall i}$ :)。

自动驾驶车辆的操作取决于自动驾驶车辆在时间 $t$ 的状态以及时间 $t −1$ 的前一次操作(如(2)所示)。这些操作由自动驾驶车辆的自动驾驶系统中的规划模块选择,并表示为 $P_{ev}$。自动驾驶系统中的控制模块接收这些操作,并提供执行命令(例如,转向、油门、刹车),表示为 $A_{AV}^t$。执行命令驱动自动驾驶车辆在模拟器中的运行。

$$
m_{AV}^t = P_{AV}(S_t^{NPC,i}, m_{AV}^{t−1}) \quad (2)
$$

自动驾驶车辆使用(输入数据 $V_{t−k:t}$),通过多个摄像头、激光雷达、雷达、全球定位系统(GPS)和惯性测量单元(IMU)感知数据,以确定自身状态以及所有非玩家车辆(NPCs)的状态。如(3)所示。其中,$L_{av}$ 对应于自动驾驶车辆的传感器层、感知模块和预测模块。状态 $t$ 是模糊测试引擎所观察到的内容,并用于在适应度函数中计算安全潜力。

$$
S_t = L_{av}(I_{AV}^{t−k:t}) \quad (3)
$$

在时间$t$时,$i^{th}$ NPC的操作取决于其自身状态以及在时间$t −1$时的先前操作,如式(4)所示。其中$P_{sim}$是模拟器的规划器,负责为非玩家控制车辆生成操作。控制器接收这些操作,并向每个非玩家控制车辆提供执行命令,记为$A_{NPC,i}^t$。这些执行命令驱动模拟器中的非玩家车辆。我们的模糊测试引擎通过模拟器API对NPC动作进行扰动。

$$
m_{NPC,i}^t = P_{sim}(S_t^{NPC,i}, m_{NPC,i}^{t−1}) \quad (4)
$$

每个智能体的状态可通过模拟器的直接访问获得。模拟器中所有智能体的状态和执行值生成3D帧$O_t$,形成自动驾驶车辆的观测数据,并转换为$I_{AV}^{t−k:t}$。

$$
O_{t+1} = R_{sim}(S_t, A_t) \quad (5)
$$

B. 遗传算法 thm

为什么选择GA?有多种优化算法可供选择以指导搜索。我们选择GA的原因如下:(1)我们通过实验观察发现,在高保真仿真中优化NPC轨迹时,GA比基于模型的技术(如强化学习(RL))更高效。这是因为在高保真仿真中,轨迹和车辆行为的状态空间非常庞大。为了观察到重复出现的情况(这是强化学习有效所必需的),需要强化学习积累大量历史数据,这可能非常耗时。相比之下,GA通过试错法指导搜索,而无需依赖大量历史数据。(2)在该问题中本质上存在许多局部最优

示意图5

每个空间可能对应一个独特的安全违规案例。我们的目标是尽可能多地发现安全案例,而遗传算法在促进解的多样性方面被证明是高效的[22]。(3)其他方法,如贝叶斯线性回归[23],贝叶斯优化[6],和变分推断[24],具有潜力,但可能存在数据效率低下或难以扩展到高维状态空间的问题。我们在第V节中评估AV‐FUZZER的性能,并将其与其他技术进行比较V。

遗传算法的高级工作流程如图6所示,接下来将进行描述。

1) 初始化:

我们以一组随机初始化的场景作为初始种群开始。回顾一下,一个场景由所有非玩家控制车辆操作的序列来表征(即${\phi_{NPC,i}^t : \forall i}$)。在遗传算法中,一个场景对应一条染色体,而第 $i^{th}$个非玩家控制车辆的操作 $m_{NPC, i}^t$ 对应一个基因。我们确保在时间步 $t= 0$,所有智能体都是安全的,即 $\delta_{t=0} > 0$。

2) 适应度函数:

在遗传算法中,候选者的适应度评分用于确定该候选者是否应被保留或淘汰。在自主系统测试领域,已有一些关于设计适应度函数的提议[25]。针对我们的测试目的,我们选择基于领域知识和车辆安全来设计适应度函数。

我们的适应度函数根据自动驾驶车辆和非玩家车辆(NPCs)的表现为每个场景赋予一个适应度评分。由于我们旨在发现导致碰撞的安全违规行为,因此我们将适应度函数的目标定义为降低安全潜力($\delta$)。$\delta$可以通过减小 $d_{safe}$ 或增大 $d_{stop}$(或两者同时进行)来实现,如公式(1)所定义。

AV‐FUZZER通过选择可能导致此类情况的非玩家控制车辆操作($\phi_{NPC}^t$),实现在第III‐D节中所示的方法。III-D。如(6)所示,我们的适应度函数优化了$\delta$的降低。

$$
F(P_{AV}, \phi_{NPC}^t) = \min{\delta_t: \forall t} \quad (6)
$$

在我们的仿真实验中,我们每秒四次测量场景的适应度评分³。在时间步$t$测得的较小的$\delta_t$表示在时间$t$发生安全违规的风险更高。该风险可能由于环境的动态变化而在下一步($t+1$)被缓解或增加。

我们希望在遗传算法中解决以下优化问题:

$$
\phi_{NPC}^* = \arg\min_{\phi_{NPC}} F(P_{AV}, \phi_{NPC}) \quad (7)
$$

其中 $\phi_{NPC}^*$ 是可能导致自动驾驶车辆出现安全违规的非玩家控制车辆操作。适应度评分用于对每一项进行排序这是为了平衡实验时间和测量粒度,因为每次测量适应度评分都需要暂停仿真,从而减慢整个仿真过程。候选者场景,遗传算法决定该候选者场景是否应在下一轮评估中被考虑。

3) 重组操作:

重组操作包括变异和交叉。这两种操作的高级概念如图6所示。

变异 :在某一场景中,给定一组$m_{NPC, i}^t$,变异算子以概率 $r_m$ 随机选择其中一个,并将其随机更改为允许的非玩家控制车辆操作(见第III-A节)中的某个操作。

交叉 :我们将交叉操作设计为一种交换操作,以增加将两个场景中的非玩家车辆(NPCs)组合成新场景的可能性,从而更有可能引发自动驾驶汽车安全违规。在每一代中,交换操作会从两个场景中各随机选择一辆非玩家控制车辆,并以 $r_c$ 的概率交换这两辆非玩家控制车辆。

我们在遗传算法文献推荐的范围内对 $r_m$ 和 $r_c$ 值进行了实验,并分别选择0.3和0.4作为 $r_m$ 和 $r_c$ 的取值;在我们的案例中,它们使得到达安全违规场景的时间最短。

4) 轮盘选择:

选择过程的目标是从种群中淘汰适应度较低的候选者。我们通过引入轮盘选择过程来实现这一点,该过程根据候选者的适应度分数按比例选择候选者。

如果一个场景具有更高的适应度评分,它将更频繁地被选中。为此,我们根据其适应度分数对候选者进行“定尺寸”。设 $T$ 为一代中所有场景的总适应度分数。从0到 $T$ 之间生成一个随机数,该数值会落入某个场景的范围内,从而选择该场景。采用适应度比例选择方法,一些适应度分数较低的场景仍有可能在选择过程中存活下来。原因是较弱场景存活的概率虽低,但不为零,因此它们仍有可能被选中。这是一个优势,因为即使较弱的场景也可能具有一些特征或特性,在经过重组操作[26]后可能变得有用。

C. 局部模糊器

局部模糊器的目的是在发现任何具有高安全违规潜力的场景时,动态加强对该区域的开发。这些高潜力案例可能代表接近事故的情况。我们将其用作种子场景。局部模糊器过程侧重于利用遗传算法收集到的这些种子场景,在其邻域内挖掘局部最优。一旦遗传算法在经过几轮初始进化阶段后找到了一个具有高适应度评分的场景(例如 $c_{high}$),该场景将被用作种子场景。此时,在遗传算法的进化过程中将调用一个局部模糊器的子程序。

GA暂停。在局部模糊器中,使用种子场景初始化一个包含 $c_{high}$ 的新种群,并基于该新种群执行基于变异的模糊测试过程。为了在局部模糊测试期间保持较高的安全违规潜力,我们沿用GA中的适应度函数,但将变异率加倍,并以种子场景作为局部模糊器的整个种群。局部模糊测试结束后,如果找到了适应度评分更高的场景,则GA中的 $c_{high}$ 将被该场景替换。这确保了更优场景中的优良基因有机会被引入到GA种群中。局部模糊测试结束后,子程序结束,GA的主过程恢复。

D. 随机重启

除了局部模糊器外,我们在AV‐FUZZER中还采用了随机重启(RR)机制以提升解的多样性。当遗传算法(GA)陷入停滞时,RR将按需激活,动态地将探索引导至搜索空间中的未探索区域。如果我们观察到适应度评分长时间未能提升,则强制执行一次RR。我们通过将当前适应度评分与过去五代的平均评分进行比较,来监控适应度的改善情况。我们完整保留了在每个过往场景中探索过的非玩家控制车辆操作的历史记录,并利用这些记录为RR生成新的初始种群。在强制执行RR时,我们创建1,000个候选场景,这些场景以随机的非玩家控制车辆操作初始化,然后从中选择差异最大的作为RR的新种群。

相似性比较是通过计算候选场景中由初始化操作投影出的NPC轨迹与所有过往场景中轨迹之间的欧几里得距离来完成的,因此无需运行仿真。欧几里得距离的计算基于每条轨迹上每隔一秒采样的位置数据。

E. 终止

我们重复上述遗传算法、局部模糊器和随机重启的步骤,直到给定的时间预算耗尽。然后AV‐FUZZER返回在进化过程中导致自动驾驶汽车安全违规的所有场景。有可能未找到此类解决方案场景,在这种情况下,AV‐FUZZER报告空结果。请注意,AV‐FUZZER可能无法找到任何安全违规场景的原因有很多。例如,被测自动驾驶系统可能对违反定义的安全约束具有较强的鲁棒性,或者为AV‐FUZZER分配的搜索时间可能太短。

V. 结果

在本节中,我们展示了AV‐FUZZER在发现安全违规所需时间及其多样性方面的效率和有效性。随后,我们分析了在阿波罗系统中发现的安全违规,并讨论了其根本原因。我们的实验在一台配备256GB内存、英特尔至强CPU和NVIDIA GTX1080 TI显卡的Ubuntu电脑上进行。实验中使用了阿波罗3.5版本和LGSVL 2019.05版本。

示意图6

A. 效率

我们通过以下两个方面评估其效率:在固定搜索时间内(1)发现的安全违规总数,以及(2)发生安全违规的平均时间,并将其与两个基线进行比较。对于第一个基线,我们构建了一个随机模糊器,该模糊器在每个场景中生成随机的非玩家控制车辆操作。对于第二个基线,我们选择了一种基于强化学习(RL)的最先进的自适应压力测试(AST)技术[4]。强化学习是一种基于马尔可夫决策过程的流行机器学习算法。我们通过采用[4]中的一种强化学习AST技术的代码来建立该基线。类似的AST技术也在[5],[7]中被使用。我们将这两个基线连接到我们的仿真基础设施中,方法是将框架中的模糊测试引擎(图1)替换为随机模糊器或强化学习AST。

图7展示了仿真引擎支持的两种驾驶环境(高速公路和城市道路),这些环境在我们的评估中被使用。在每个环境中,自动驾驶车辆和非玩家控制车辆被放置在道路上,彼此之间保持一定距离。带有边界框的蓝色车辆是非玩家控制车辆,其操作可能会发生变化。这些驾驶环境是驾驶员日常遇到的常见驾驶场景。车辆初始化时速度为零,并处于安全状态。自动驾驶车辆的目的地设置在道路另一侧的远端。在我们的设置中,每次驾驶环境的仿真平均需要3.6分钟进行评估。

示意图7

图8a显示了在DS‐1和DS‐2中,给定每种技术在DS‐1和DS‐2中各10小时仿真时间预算的情况下,AV‐FUZZER、RL AST和随机模糊器在DS‐1和DS‐2中发现的安全违规数量。可以看出,随机模糊器在DS‐1中未发现任何安全违规,RL AST发现了3起,而AV‐FUZZER发现了5起。在DS‐2中,AV‐FUZZER发现了8起安全违规,而RL AST和随机模糊测试分别仅发现了2起和1起。

图8b展示了AV‐FUZZER、RL AST以及随机模糊器在DS‐1和DS‐2中发现的安全违规的平均安全违规时间。在搜索过程中,AV‐FUZZER分别在DS‐1和DS‐2中生成了5个和8个种子。局部模糊器基于每个种子运行5代。平均安全违规时间通过将总仿真时间除以某技术发现的安全违规数量来计算。对于AV‐FUZZER,在DS‐1中的该值为120分钟,在DS‐2中为75分钟。DS‐2分别为约300分钟和200分钟,而随机模糊器至少需要600分钟。此外,AV‐FUZZER在DS‐1中找到第一个安全违规用时177分钟,在DS‐2中用时162分钟。在RL AST中,分别需要296分钟和224分钟才能在DS‐1和DS‐2中找到第一个安全违规。在整个评估过程中,随机模糊器仅在DS‐2中发现了1次安全违规。

总体而言,我们的评估表明,在相同的搜索时间内,AV‐FUZZER能够发现更多的安全违规情况,因此比RL AST或随机模糊测试更高效。AV‐FUZZER优于RL AST和随机模糊测试的原因如下:(1)AV‐FUZZER中的局部模糊器(第IV-C)节通过在可能的安全违规情况附近动态增加开发来减少寻找不同局部最优解所需的时间。我们进一步测量发现,如果在AV‐FUZZER中移除局部模糊器,平均安全违规时间平均会增加约1.8倍。(2)重启机制(第IV-D)有助于AV‐FUZZER在陷入停滞时继续搜索,从而节省了搜索时间。(3)遗传算法(GA)作为一种元启发式搜索算法,在优化NPC轨迹方面比基于模型的强化学习(RL)提供了更快的解决方案。这是因为NPC轨迹由大空间内密集的连续值集合组成。观察重复的轨迹是强化学习有效性的前提,而这需要积累大量历史数据用于训练,可能非常耗时。一种缓解方法是通过指定较少的离散航点来简化NPC轨迹,以近似车辆应移动的位置。类似的方法已在[6],[7]中用于较简单的环境。然而,在我们的实时高保真仿真中,这种对车辆动力学的简化显著扭曲了实验,使得驾驶场景和物理特性变得不真实。因此,在此类设置中发现的情况不再具有现实代表性,也无法为阿波罗等工业级自动驾驶车辆的测试提供有价值的见解。

B. 安全违规场景

我们回顾了实验中观察到的所有安全违规场景,并根据其根本原因将相似的场景归类。因此,我们基于车辆轨迹和阿波罗中可能存在的设计缺陷,将所有安全违规场景分为5种不同类型。在获得上述结果后,我们继续对DS‐1和DS‐2分别进行了额外90小时的测试。AV‐FUZZER在搜索过程中又发现了46个安全违规场景,使得在200小时搜索期间总共发现了59个安全违规场景。我们观察到,包括新增场景在内的所有安全违规场景均为这5种类型的变体。此外,这5种类型在最初的20小时搜索中通过AV-FUZZER发现的13个安全违规中均已暴露出来,AV‐FUZZER表明搜索已趋于饱和。需要注意的是,在整个200小时的搜索过程中,RL AST和随机模糊器分别仅发现了5种类型中的2种(类型1和类型3)和1种(类型1)。这表明AV‐FUZZER能在更短的时间内(在我们的仿真实验中为20小时)发现更多样化的安全违规场景,其中许多场景即使给予10倍的搜索时间(200小时),现有技术也无法找到。我们在图10中展示了每种类型的一个示例。

示意图8

示例1如图10所示,这是一个自动驾驶车辆追尾试图超车的非玩家控制车辆的场景。从自动驾驶车辆的角度来看,非玩家控制车辆在其后方出现时即被检测到,并且以高速移动。然而,自动驾驶车辆无法预测该非玩家控制车辆将要变道至其前方的意图,因此未采取减速让行等预防措施。随后,非玩家控制车辆开始并入自动驾驶车辆车道,但此时自动驾驶车辆速度过快,无法与非玩家控制车辆保持安全距离,从而导致追尾碰撞。通常情况下,人类驾驶员能够避免此类事故,因为他们可以根据超车行为的早期迹象判断对方意图。这些早期迹象使人类驾驶员能够提前踩刹车,从而可能避免事故发生。缓解自动驾驶车辆此类问题的一种方法是,根据非玩家控制车辆的轨迹识别其操作行为,并相应减速,以协作完成其并道操作,就像人类驾驶员通常会做的那样。遗憾的是,阿波罗系统并未配备此类安全措施。

我们注意到,小马智行最近向加州机动车管理局报告了一起类似的事故[12],该事故发生于加利福尼亚州弗里蒙特。根据报告内容,一辆特斯拉Model 3试图超车并并入小马智行正在路测的自动驾驶车辆所在车道。不幸的是,该自动驾驶车辆未能识别特斯拉的意图,导致发生追尾碰撞。这表明AV‐FUZZER发现的这类缺陷确实存在于现实世界自动驾驶系统和交通环境中。

示例2在图10中显示,自动驾驶车辆试图超车其前方缓慢行驶的非玩家车辆(目标车辆1和目标车辆2)。规划的路径是一条包含目标车辆1和目标车辆2的弯曲轨迹。当目标车辆1加速时,自动驾驶车辆仍试图将其保留在轨迹内,导致该弯曲轨迹变得非常长。因此,自动驾驶车辆沿着该轨迹在两条车道之间巡航,而未考虑目标车辆2的状态。最终,自动驾驶车辆未能向拥有先行权的目标车辆2让行,并与其相撞。该场景的时间演进仿真视图如图11所示。可以看出,目标车辆1和目标车辆2已被检测到

示意图9

示意图10

自动驾驶车辆(从阿波罗的视角可见),但在超车过程中,自动驾驶车辆的规划模块未重新规划新的动作以应对移动的目标车辆1和目标车辆2;因此,自动驾驶车辆持续在车道之间巡航。该场景揭示了阿波罗在此情况下的设计缺陷。

示例3图10展示了一个自动驾驶车辆通常无法避免的事故通用案例。当自动驾驶车辆在高速巡航时,如果一辆非玩家控制车辆从相邻车道以极低速度切入,可能会导致追尾碰撞。原因可能是阿波罗系统中若干潜在问题的综合作用。(1)我们观察到,在此类场景中,阿波罗通常会错误预测非玩家控制车辆的未来轨迹,未能识别其超车意图。非玩家控制车辆的轨迹预测由预测模块(第II-A节)中的基于机器学习的模型完成。图12显示了事故发生前的瞬间。如图所示,自动驾驶车辆无法预测非玩家控制车辆的未来轨迹(该轨迹应显示为长尾),因此未能提前采取减速措施以避免碰撞。我们注意到,在此情况下,阿波罗预测该时刻非玩家控制车辆的速度为0 m/s,而实际根据模拟器测量,非玩家控制车辆的速度为4.56 m/s。(2) 我们还观察到,即使非玩家控制车辆的轨迹预测正确,阿波罗的规划器仍可能出现错误。图12(b)展示了这种情况。如图所示,阿波罗的规划器发出一个超车动作(以蓝色围栏表示),该动作穿过了非玩家控制车辆的估计轨迹。因此,自动驾驶车辆开始加速,导致事故发生。

示意图11

示例4展示了一起连锁事故。如图10所示,阿波罗正跟随目标车辆2行驶。目标车辆2开始加速,阿波罗也随之加速。在某一时刻,目标车辆2追尾了静止的目标车辆1,导致目标车辆2的速度突然降为零,使得阿波罗几乎没有时间反应。当阿波罗距离目标车辆2仅7.3米且速度为41 km/h时才开始刹车。根据我们的性能分析,阿波罗至少需要8.75米才能完全停下,因此发生了追尾碰撞。特斯拉自动驾驶系统(Autopilot)中也暴露出类似问题。[27]缓解此类问题的一种方法是将自动驾驶车辆转向相邻车道(如果可用),以避免事故发生。

示例5在图10中展示了一个自动驾驶车辆将并排行驶的两辆车辆误识别为一辆车辆的案例。图13显示了该场景随时间演进的仿真视图。如图所示,两辆非玩家车辆(NPCs)以非常短的距离在前方行驶。自动驾驶车辆将这两辆非玩家车辆(NPCs)视为一辆,并认为其位于相邻车道。因此,自动驾驶车辆继续加速,直到为时已晚,无法避免碰撞。该场景的发生是由于感知模块存在问题所致

示意图12

阿波罗的准确性。提高深度神经网络模型的准确性可能有助于防止类似的事故。

需要回顾的是,AV‐FUZZER基于安全约束(第III-B1节)报告的安全违规均为责任事故,即自动驾驶车辆违反交通规则并承担责任。如图10所示,这些事故是由自动驾驶车辆采取了错误操作或由于自动驾驶系统缺陷导致的能力不足所引起的。我们审查了所有这些事故,发现通过采取预防措施(例如刹车或切换到应急车道)或改进感知模块,这些事故实际上都是可避免的。

VI. 相关工作

A. 自动驾驶软件测试

许多现有的关于评估自动驾驶车辆鲁棒性的研究侧重于测试和改进自动驾驶系统中的某些组件(例如人工智能模块等)[2],[28]–[35]。弗里蒙特等人[2]提出了一种概率编程语言,用于设计和分析基于深度学习的自动驾驶车辆感知模块。裴等人[29]提出了一种基于神经元覆盖和交叉引用预言机的安全关键型深度学习组件的自动化白盒测试方法。卡洛等人[36]提出了顺序和组合方法,以搜索可避免自动驾驶车辆路径规划模块发生事故的替代配置。尽管这些研究有助于改进特定的自动驾驶车辆模块,但一个端到端自动驾驶系统包含多个协同工作的安全关键组件。因此,像本研究中所做的那样,对自动驾驶系统软件进行端到端评估,以理解系统的缺陷,具有至关重要的意义。

一些近期的研究致力于将传统测试技术应用于自动驾驶车辆[4],[5],[7],[35],[37]–[39]。阿卜德萨勒姆等人[7]利用自适应压力测试技术来发现自动驾驶车辆中的漏洞和故障。他们扰动交通参与者的轨迹,并向自动驾驶车辆的输入传感器数据中注入噪声,以引发事故。豪尔等人[25]为自动驾驶汽车测试中的优化算法设计适应度函数。克吕克等人[39]研究了一种基于搜索的优化算法用于测试先进驾驶辅助系统。阿卜德萨勒姆等人[34]使用可学习进化算法对基于视觉的控制系统进行压力测试。尽管这些研究为自动驾驶汽车测试提供了有益的见解,但它们并未专注于提升测试的效率和全面性。此外,它们的评估是在比工业级自动驾驶系统结合高保真仿真更简单的自动驾驶程序上进行的;因此它们提供的对现实世界自动驾驶系统的缺陷了解有限。相比之下,我们的研究提出了一种完整、实用且高效的工业级自动驾驶车辆测试框架。我们进一步报告并分析了在阿波罗中发现的关键安全缺陷。

B. 自动驾驶汽车漏洞与故障注入

故障注入技术已被用于评估计算机系统[5],[13],[40],[41]的漏洞。最近,贾等人[13]展示了一种用于自动驾驶车辆的快速故障注入框架,该框架利用贝叶斯网络来发现自动驾驶系统在瞬态故障下的漏洞。尽管该技术在查找关键故障方面实现了数量级的速度提升,但其重点在于自动驾驶车辆的硬件故障漏洞,而非系统的内在设计缺陷。

在自动驾驶汽车安全领域已有大量研究工作[29],[42]–[44]。这些研究大多集中在寻找对抗样本以误导自动驾驶车辆感知系统。博洛尔等人[42]通过在道路上添加划痕来展示漏洞,并诱使自动驾驶车辆偏离车道。切尔尼科娃等人[43]表明,对摄像头图像进行精心设计的微小修改可导致深度神经网络被错误分类至攻击者指定的类别。尽管这些研究突显了自动驾驶车辆的安全问题,但它们主要关注的是自动驾驶车辆在遭受攻击时的安全漏洞,而非发现自动驾驶系统固有的软件缺陷或漏洞。

C. 自动驾驶防御性驾驶

自动驾驶安全性的另一个研究方向是探究自动驾驶车辆在面对潜在危险时如何进行防御性行为。Zhan等[45]提出了一种在城市驾驶环境中应对不确定性的自动驾驶车辆统一规划框架。Abeysirigoonawardena等[6]使用贝叶斯优化来寻找会导致自动驾驶车辆发生碰撞的对抗性NPC行为。他们寻找碰撞,无论这些碰撞是否可避免或属于自动驾驶车辆的违规行为,以制定防御性自动驾驶策略。在我们的研究中,我们着眼于自动驾驶系统在安全违规方面的设计缺陷。

VII. 结论

我们提出了AV‐FUZZER,一种能够生成自动驾驶汽车安全违规场景的自动化模糊测试框架。我们在工业级自动驾驶平台百度阿波罗上展示了AV‐FUZZER,并及时发现了安全违规场景。这些安全违规可追溯至阿波罗系统中的设计缺陷。我们对这些缺陷进行了表征,并讨论了其根本原因。

VIII. 致谢

本工作部分得到了加拿大自然科学与工程研究理事会(NSERC)博士后奖学金、美国国家科学基金会(NSF)资助号1535070、1547249、CNS 18‐1667、桑迪亚国家实验室合同号1951381以及IBM博士生奖学金的支持。我们感谢英伟达公司提供的设备捐赠。本文所表达的观点、发现、结论或建议均为作者个人观点,不一定反映NSERC、NSF、桑迪亚、英伟达或IBM的观点。

软件概述 UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。 软件基础信息 • 支持系统: 64位 Windows 10、Windows 11 核心功能模块 一、创新设计:高效、灵活、无缝协同 全链路产品设计 涵盖从2D布局、3D建模、装配设计到图纸文档记录的各个环节,大幅提升设计吞吐量,缩短交付周期超35%。 强大的同步建模技术 打破数据壁垒,可无缝导入并直接修改来自其他CAD系统的几何模型,是跨平台协同设计的理想选择。 复杂装配管理 专为大型复杂产品打造,即使面对成千上万的零件也能从容应对,快速识别并解决数字样机中的干涉等问题。 集成设计验证 内置自动验证功能,实时监控设计是否符合公司及行业标准;结合PLM数据可视化合成,辅助工程师做出更明智的决策。 二、综合仿真(Simcenter 3D):精准预测,降低试错成本 极速前后处理 依托先进的几何引擎,将强大的分析命令与几何编辑紧密集成,相比传统有限元工具,可缩短高达70%的仿真建模时间。 全方位结构分析 在同一环境中集成线性静力学、动态、疲劳及非线性分析,底层由业界顶尖的NX Nastran解算器提供支持,确保计算的高精度与可靠性。 声学与热管理分析 提供内外声学仿真以优化音质、降低噪音;具备一流的热传导仿真能力,帮助电子产品和工业机械实现最佳热管理方案。 多物理场耦合 简化了结构动力学、热传导、流体流动等复杂物理现象的模拟过程,消除外部数据传输错误,真实还原产品运行工况。 三、智能制造(CAM):打通从计划到车间的数字主线 全面的制造解决方案 提供从工装设计、CAM编程到机床控制器(如Sinumerik)的一体化支持,助力制定更科学的生产决策。 深度集成的PLM环境 借助Teamcenter实现数据和流程的统一管理,避免多数据库冲突,支持重用验证过的加工工艺与刀具库。 车间级互联 通过DNC系统与车间无缝对接,直接将加工数据和刀具清单下发至CNC机床,实现计划与生产的紧密结合。 提质增效 优化NC编程与刀具路径,提升表面精加工水平与零件精度;减少人为错误,显著提高新机床部署成功率及制造资源利用率。 总结 UG NX 2023作为一款集成化的产品工程解决方案,通过其强大的设计、仿真和制造功能,为现代制造业提供了完整的数字化产品开发平台。无论是复杂产品的设计验证,还是精密制造的流程优化,UG NX 2023都能为工程师团队提供高效、可靠的解决方案,助力企业提升产品创新能力和市场竞争力。 适用领域 模具设计、汽车制造、航空航天、通用机械、消费电子等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值