购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 自动驾驶系统算法设计

自动驾驶任务是利用各种实时传感器,如摄像机、激光雷达、毫米波雷达等捕获数据,然后自动驾驶系统执行必要的处理,以识别驾驶环境并做出操作决策的,最后操作车辆到达给定的目的地。

自动驾驶系统通常由三个主要部分组成。

场景识别: 用于车辆厘米级别的定位,并跟踪物体。

路径规划: 用于生成未来的路径。

车辆控制: 用于物理操作车辆,以遵循计划的路径 [2]

在自动驾驶系统中,这些算法是大多数现代自动驾驶系统的基础,已被建造的自动驾驶汽车Udacity所采用 [3] ,并且与Mobileye设计其自动驾驶系统的方式保持一致 [4] 。自动驾驶系统的组件如图1-1所示。

图1-1 自动驾驶系统的组件

传感器所捕获的视频将被用于检测对象和定位车辆的定位引擎中,然后传感器将检测到的对象传递到对象跟踪引擎,用于跟踪移动对象。融合引擎将车辆位置和被跟踪对象投影到相同的三维坐标空间中。运动规划会利用空间信息来制定操作决策。仅当车辆偏离由Google Maps之类的导航服务所生成的原始路线计划时,才调用任务计划程序。融合引擎检索跟踪器正在跟踪的对象坐标,并与定位引擎提供的当前车辆位置合并,然后将合并后的信息转换为相同的三维坐标空间,并发送到运动计划引擎,形成车辆操作决策。

下面讨论自动驾驶系统的感知、决策和控制等问题,以及现有自动驾驶系统的安全验证和测试方法的局限性。

1.3.1 感知

自动驾驶系统感知中的传感器,对于车辆定位至关重要。然而,因其准确性和高成本所限,并且由于全球导航卫星系统(GNSS)的传感器价格昂贵,在城市环境中不准确,且高度敏感,例如,集成了全球定位系统(GPS)的GNSS的传感器,仍然容易受到GPS定位错误的影响;基于GNSS的车道级定位方法,也容易受到多路径干扰的影响,当外部物体阻碍GPS信号时,会产生卫星时钟误差,以及GNSS坐标与高清晰度之间不可避免的不一致地图坐标。另外,虽然视觉传感器的成本较低,但在恶劣的天气条件和复杂的背景下,它们不准确,因为其设计目的是对更清晰的图像和视频进行操作。来自高清地图的信息,可用于改善视觉传感器所提供的图像质量,但是构建高清地图需要大量的软件和人工操作。而激光雷达传感器价格昂贵,并且因其在识别“非接地物体”方面存在局限性,目前尚不清楚它们是否能识别出其中的人何时意外地移动。最新的研究建议融合具有重叠功能但类型不同的传感器,以降低成本,实现冗余,并提高其安全性等性能。

在基于机器学习的感知系统中,例如神经网络,对传感器的输入,比对抗性样本更容易进行操纵。这些对抗性样本是通过修改摄像机图像,引起神经网络的某些行为而创建的。例如,降低系统对预测的置信度或导致预测对输入进行错误分类。操纵自动驾驶系统传感器的输入,例如,稍微修改道路标志,可以使自动驾驶系统的神经网络对这些标志进行错误分类、显示错误行为并造成道路安全危害。为了提高其对操纵的抵抗力,研究人员提出了一些方法来保护神经网络免受对抗性样本的攻击。

当自动驾驶系统感知的错误被传播到后续的软件组件中时,也会产生安全风险。感知算法能处理传感器的输入,并根据它们对自动驾驶系统环境的理解来生成输出。由于输出可能不够准确,并且在决策算法中用作输入,因此影响了自动驾驶系统的控制命令,从而可能会产生不安全的驾驶行为。这种来自感知组件的错误传播,曾导致Tesla的自动驾驶系统在2016年发生了致命事故。为了使系统能考虑到感知组件所引入的不确定性,估计和最小化每个单独组件中的不确定性至关重要。例如,通过使用贝叶斯概率框架和蒙特卡洛抽样,来估计自动驾驶汽车的感知系统所生成的预测置信度分数。每个组件中的不确定性,也应在所有的软件组件之间进行沟通和良好集成,以提供对系统不确定性的整体度量,促进决策的制定。

自动驾驶系统的性能,受到对计算要求高的感知算法的限制。Lin等人 [5] 验证了目标检测、跟踪和定位等感知算法,这共同构成了自动驾驶系统计算能力的94%以上。这些计算约束阻碍了精度的进一步提高,因而采用更高分辨率的摄像机,并使用诸如图形处理单元(Graphics Processing Unit,GPU)之类的计算平台来克服这些限制,可能会产生额外的热量,从而显著增加了功耗,减少了自动驾驶汽车的行驶距离,降低了燃料消耗效率。虽然深度神经网络架构之类的机器学习技术能改善对象检测任务,例如边界框检测(最大限度地检测框内对象)和语义分割(对图像空间中的每个像素进行分类),但是对于它们可引入时间延迟,用于实时对高分辨率图像进行分类 [6]

1.3.2 决策

面对动态道路环境,自动驾驶汽车面临诸多挑战。这些挑战充满了不确定性和物体运动的不可预测性,例如道路封闭、事故清理等。其主要的挑战是在复杂的驾驶场景下,可能无法正确解释某些决策规则的含义。

建模和理解人机交互,对于在混合交通环境中安全导航,建立消费者对自动驾驶汽车的信任,并促进广泛采用人机交互,以实现自动驾驶汽车全部安全至关重要,但这仍然是决策算法的挑战。首先,了解自动驾驶汽车中的人是否准备重新获得对车辆的控制至关重要。例如,如果自动驾驶系统无法识别乘客疲惫或分心等行为特征,而将控制权移交给乘客,则会产生安全风险。其次,了解自动驾驶汽车和其他车辆附近人员的意图,是安全导航的关键。例如,人类通常使用手势和其他社交提示来表明他们意图违反某些交通规则,以提高交通流量。驾驶员在开车期间,例如在行车道超车和并线,还必须与其他车辆的驾驶员进行协商,这需要在人类行为的不确定性之间取得平衡,同时避免过分防御性的驾驶行为,确保交通畅通。然而,自动驾驶汽车可能无法正确解释或执行社交提示,这会阻碍其他道路使用者使用自动驾驶汽车的行为能力,产生不匹配的期望,从而导致碰撞事故的发生。现在已经有一些研究在探索人机交互对自动驾驶系统学习能力的影响,这对于解决上述问题至关重要。

决策算法还受到计算复杂性和其他软件组件中算法的约束,这些软件组件可能会破坏自动驾驶系统在动态环境中的性能和安全性。尽管研究人员已经成功开发出运动规划算法,例如图形搜索,以及针对自动驾驶和移动机器人的探索随机树,但是在计算上,寻找最佳路径非常费时,不总是可行的 [7] 。另外,在有诸如行人和其他道路使用者等多个动态障碍物的情况下,对计算有严格要求的感知算法,减少了运动规划算法连续计算新的无碰撞轨迹所需的时间 [8] 。运动规划算法还需要与控制算法很好地集成,并适当考虑控制算法所面临的约束,例如对时间、速度和加速度的限制,以及轨迹的演变,但这需要比现有处理器更多的计算资源。有鉴于此,一些研究人员已经开始研发路径规划算法,以解决感知不确定性和控制约束,减轻潜在的危险情况。此外,最初被认为是安全的车辆轨迹,可能在意外的环境变化时变得危险。例如,当移动障碍物影响了自动驾驶系统最初计划的轨迹和感知时,用于增量计划调整的新方法,可以增强自动驾驶汽车对意外情况的适应性 [9] 。通过5G网络的通信能力,利用更可靠的车辆对基础设施(V2I)技术,为自动驾驶汽车提供有关附近障碍物的更多信息,可以实现比现有4G网络更快的速度来支持近乎即时的决策。

1.3.3 控制

目前,研究人员已经开发出用于车辆运动的控制算法及其基本模型。该模型在轨迹跟踪方面取得了相当大的成功,从而确保了自动驾驶汽车沿着由其决策算法确定的路径运动。研究人员通常将控制算法称为“控制器”或“控制策略”。安全风险可能会来自控制算法,在对自动驾驶运动进行建模时存在不准确性,尤其是在意外的路况下。

由于几何算法与运动学控制算法具有简单性和相对较低的计算成本,因此它们均已得到广泛采用。然而,由于它们仅对车辆的几何尺寸和运动特性(如加速度和速度)进行建模,因此可能会产生误差和车辆的不稳定性。又因为几何算法和运动学控制算法对车辆动力学的忽视(如不考虑诸如摩擦力、轮胎打滑和能量之类的车辆动力学特性),它们可能会导致在高速行驶时产生危险的驾驶行为。在这种情况下,动力学性能会影响车辆的运动,例如车道突然变化,或者试图避免意外障碍。在“纯粹追求”几何算法的应用中,车辆“不断追求虚拟运动点” [10] ,在高速行驶过程中,车辆路径的快速变化会导致算法“高估”该系统产生转向输入,以纠正车辆运动的能力,从而导致车辆过度转向和打滑。此外,将控制参数设置为“补偿”,以忽略动力学特性,使得几何算法和运动学控制算法对参数变化高度敏感。例如,为纯追踪算法调整“前瞻距离”的最佳值是一项挑战。此最佳值是根据车辆从现有位置选定的“路径点”测得的,较大的值会导致车辆在急转弯时偏离实际的弯曲路径,从而产生“弯道”,其值太小又会加剧运动轨迹的振荡 [11]

自适应控制算法或模型预测控制算法现已在自动驾驶中使用,但是当其违反假设并计算昂贵时,它们仍然不准确。首先,动态控制算法结合了车辆动力学的线性或非线性模型,这些模型主要来自轮胎力。轮胎力是由轮胎与路面相互摩擦产生的,并且是车辆运动时的主要外部影响。当转向角和侧滑角超过5°时,线性模型会变得不准确,此时非线性模型可能更准确,尤其是在高速行驶和大转向角时,但计算量更大。与纯追踪几何算法相似,某些动态控制算法仍然对“前瞻距离”的变化和未知的车辆参数(如轮胎-路面摩擦系数)高度敏感。这些参数无法被实时获取,安装附加传感器的成本颇高。其次,由于自适应控制算法使用机器学习技术来调整算法参数,因此对环境变化更具鲁棒性。但由于机器学习需要处理大量的数据,它们的效率也会较低,因此,Amer等人 [12] 开发了一种自适应几何控制器,该控制器既拥有几何控制器所具有的低计算成本优势,又具有适应各种路况的鲁棒性。最后,模型预测控制(Model Predication Control,MPC)算法考虑了系统约束、输入和输出,以优化执行器输入,并成功用于自动驾驶轨迹跟踪,且同时满足安全性和时间约束。然而,MPC需要高度复杂且对计算要求很高的在线优化,尤其是在考虑非线性车辆动力学特性时更是如此。研究人员提出了线性化非线性车辆模型,并放宽一些避免碰撞的约束,以减少这些计算需要的方法。随着计算能力的不断改进,以及在自动驾驶中实现MPC控制器的高效算法的创新,这些车辆控制技术在将来可以得到进一步的发展。

此外,所有控制算法都将面临其他软件组件所引起的约束,在处理意外情况时将面临诸多挑战,以及缺乏足够的实际测试。首先,大多数控制算法只有在通过决策算法计算出的轨迹是连续的,而且尚未考虑到计算量巨大的传感器传播的时间延迟时,才表现良好。这些传感器可能会严重破坏车辆的稳定性。研究结果表明,在意外情况下(例如,避免紧急碰撞),突然的路径变化会导致自动驾驶汽车的轮胎侧滑,轨迹跟踪和车辆的稳定性会受到损害。其次,由于计算量巨大,对于大多数控制算法,仅在仿真过程中进行了测试,而不是在实际环境下的自动驾驶中进行测试的,并且仅在参数变化最小和环境变化不大的情况下才进行验证 [13] 。为了确保控制器适用于实际环境下的自动驾驶,研究人员提出了使用所谓的“硬件闭环”仿真。在仿真测试中,研究人员开发了一种V2X系统,该系统利用环境数据来更新硬件。自动驾驶系统的控制参数随驾驶条件的变化而变化,并对无线网络中断具有鲁棒性,研究人员开发出了在各种路况下都集成转向制动和悬架控制等的控制器。

1.3.4 安全验证与测试

现有的自动驾驶测试方法尚存诸多局限性,使其无法在部署前验证自动驾驶的安全性。首先,研发人员进行了广泛的道路测试,并分析了已运行的公里数、伤害和死亡人数等数据,以提高自动驾驶系统的性能,直到达到相对较低的死亡人数和伤害比例。其次,对现有系统的安全要求标准是针对要求“已知”和“明确规定”的传统系统工程流程设计的(例如,ISO 26262标准),并且涉及创建功能要求,解释与安全相关的要求,并将其分配给安全关键子系统,根据这些要求进行设计 [14] 。但是这与自动驾驶设备中的自适应系统不兼容,自适应系统会实时对新数据进行学习,而不仅仅依赖明确定义的要求。因此,需要使用不同的方法来阐明自动驾驶系统的安全要求。

由于自动驾驶系统算法的不确定性和机器学习系统的自适应性,验证自动驾驶系统也具有挑战性。首先,由于自动驾驶系统中的非确定性算法会产生不可重复的和概率性的输出,因此很难评估自动驾驶测试结果是否正确。这表明在几乎相同的测试条件下,系统行为存在潜在差异,其对环境条件的微小变化具有高度敏感性,以及在实际部署测试和认证过程中存在潜在差异。这就需要一种新的测试方法,该方法侧重于建立足够的信心,即系统显示期望的行为,而不是期望某些输入的精确和唯一的输出。其次,机器学习系统中的训练数据可能包含偶然的相关性,从而导致错误的预测(过度拟合),因此必须对其进行检测,以防止系统学习到的规则发生任何重大变化。这也是一种挑战,需要使用昂贵、复杂的手动标记数据。

机器学习算法也会出现错误的极端情况,这可能会导致在自动驾驶试验中出现致命事故。但是,在现在的测试过程中,预先检测和纠正极端情况的方法,仍然高度依赖手动收集标记的测试数据,故难以扩展。模拟极端情况比测试更容易,特别是对于自动驾驶雷达系统,但是存在对模拟数据的过度拟合风险,因为即使是经验丰富的测试设计人员也会有盲点,无法涵盖所有的驾驶情况。由于非确定性系统对输入微小变化的高度敏感性,加剧了用系统的特定输入组合来确定特定情况,以检测系统在极端情况下的性能的挑战。最后,在基于机器学习的软件中,检测极端情况比检测有Bug的局部软件更具挑战性。因为后者的逻辑由易于检查的控制流语句表示,而机器学习算法中的逻辑是从数据中学习的,并被嵌入高度非线性的优化函数中,这就使得用于识别触发极端情况行为的输入更具挑战性。

我们可以通过多种方式(例如,通过故障注入)来改进自动驾驶和机器学习的现有测试与安全验证方法的局限性。该方法目前被广泛采用,用于评估安全性,并验证自动驾驶系统容错机制中的极端情况。例如,通过随机修改神经网络的权重,并模拟传感器的错误输入,映射到自动驾驶软件中可能在意外情况下激活的缺陷。综合方法和形式化验证工具,是验证自动驾驶控制系统的流行方法,但由于它们的计算成本高,因此在部署方面受到限制。诸如控制算法、网络在线验证之类的形式化验证工具,要求利用交通状况和道路用户的概率模型来表示,而传统的验证工具在对复杂的环境进行建模时却面临着诸多挑战。Tian等人 [15] 分析了大型机器学习算法在现实应用中的挑战,使这些验证方法更具可扩展性。

说明: 计算成本是在跨越自动驾驶软件组件的许多算法中需要考虑的常见问题,自动驾驶系统建模和理解人机交互仍然是决策算法面临的主要挑战,并且机器学习系统的不确定性和自适应性,使现有测试和安全性验证成为关键的一环,目前的验证方法还不足以确保自动驾驶安全。 xICqwHc/H9e0k4II4GXVyojeAJA8Yg4PmBnmFDD4037KysKZsNkHlOb208B0iewb

点击中间区域
呼出菜单
上一章
目录
下一章
×