摘要:
本文主要介绍包括功能模块图,涵盖了底层计算单元、示例工作负载和行业标准。
前言
本文档参考自动驾驶计算联盟(Autonomous Vehicle Computing Consortium)关于自动驾驶和辅助驾驶计算系统的概念系统架构。
该架构旨在与SAE L1-L5级别的自动驾驶保持一致。本文主要介绍包括功能模块图,涵盖了底层计算单元、示例工作负载和行业标准。
本篇为第一部分主要介绍各个功能模块。
自动驾驶系统架构组件
一、功能模块子系统介绍
1.1 ADS核心计算模块(蓝色块部分)
感知模块 - 使用传感器数据、车辆里程计数据和后端信息(即地图数据)来检测和跟踪传感器视野内的基础设施和对象,以产生对象、特征或规范的数据。
场景理解 - 评估当前的驾驶场景,并预测或预见动态实体相对于自主车辆的意图和行为。
自车运动 - 使用不同的传感器输入估计车辆的运动,例如来自惯性测量单元(IMU)和车轮速度传感器等的数据。
定位 - 确定车辆的位置、方位和方向。
运动控制 - 与执行器包括制动器、转向系统和传动装置互动,以实现期望的轨迹。
任务控制 - 根据乘客状态、车辆操作者请求或行为规划器的直接反馈来维持或改变车辆任务;向操作者提供反馈。
乘客监控 - 确定车辆乘客的状态,并识别可能需要修改任务、动态驾驶任务(DDT)和/或策略规划(导航)的情况。
路径规划 - 确定车辆应该采取的到达目标目的地的路线。
行为规划 - 在定义的路线目标内做出操纵决策(例如改变车道、超车、紧急停车等)。
轨迹规划 - 规划操纵路径并为运动控制模块提供目标轨迹。
操作域监控 - 监控参与动态驾驶任务的实体的能力、状态和情况,以确保车辆在ODD(操作设计域)内运行。
2、服务模块(灰色块部分)
人机界面(HMI)- 作为车内乘客的主要接口,以向系统提供输入(例如踏板、方向盘、图形用户界面或其他),影响系统的行为,或向用户提供当前任务或面前任务的状态和/或约束的反馈。HMI也可以作为车辆与外界的接口,以确保行人或其他车辆知道车辆的意图、健康状态或操作状态。
互联服务 - 提供数据接口,确保自动驾驶系统接收最新的地图、交通或其他数据以支持面前的任务。通信具有双向性,例如提供自动驾驶系统信息、乘客健康状态或其他相关数据。
车辆对X(V2X)- 车辆对基础设施或车辆对车辆作为相关的系统输入,以支持车辆的安全和高效操作。这可以提供基础设施的信息(例如交通灯状态或位置),或自主车辆可能看不到的车辆的信息。
3、跨功能属性(黄色块部分)
上述构建模块代表了从L1到L5的端到端功能的主要模块。黄色模块涉及跨功能的属性,虽然重要,但不是计算功能的关键,在本文后续不会完整涵盖。
二、自动驾驶系统核心功能及其交互
本节描述自动驾驶系统核心功能模块及其交互。模块之间的交互通过数据传输表达,我将其描述为“信号”。包含这些信号旨在帮助了解每个功能模块中可能存在的算法/计算类型。
由于功能架构旨在适应不同级别自动驾驶可扩展性和广泛的自动驾驶系统解决方案,每个功能模块所需的信号在不同实现之间会有所不同。
此外,这些信号的描述在许多情况下都留有解释空间,确保反映了当前解决方案/方法的多样性。
ADS的核心功能和相互作用
2.1 任务控制
任务控制
任务控制组合了来自车辆乘员、车辆操作者(司机或远程操作者)和操作域监督的输入,以维持或改变自动驾驶车辆任务问题目标和边界到路径规划。在此任务中,它使用两个关键抽象:
在这个任务中,它使用了两个关键的抽象概念:
注:在辅助驾驶(SAE L0-L2 级别,包括 L2+ 扩展)的背景下,对通用功能块图提出以下解释:用户主动的操作,比如踩踏油门、转动方向盘以直接控制或略微引导车辆运行轨迹,从这个简化的架构的角度来看,是对任务目标和用户路线偏好的短期设置变更。这些变更通过HMI任务请求从人机界面接收。
因此,这些抽象概念具有扩展的传统意义。这些解释包括“立即右转”或“加速”(均为用户路线偏好))以及更复杂的辅助行为,比如“如果交通情况允许,进行监控的自动超车”或“根据左转指示灯是否打开改变自适应巡航控制(ACC)”。
作为下游结果,“路线目标”(传递给行为规划)可能反映用户主动操控。
任务控制输入:
任务控制输出:
2.2乘员监测
乘员监测
乘客监测功能模块负责观察车内乘客的状态,并向辅助驾驶/自动驾驶系统的其他部分提供相关的状态数据。通过一个或多个专用车内传感器来感测乘客。可包括对驾驶员的监测,和/或对乘客的监测,以感知状态,潜在的医疗紧急情况,或不当行为状态。除了自动驾驶单元以外,还可以由车辆的其他系统提供。例如,车辆驾驶舱控制系统可能包括辅助驾驶/自动驾驶系统所需的乘客监测状态的超集,如用于车内娱乐的手势识别。在这种情况下,输入到这个模块将是乘客监测状态。
潜在的乘客监测示例:
乘客监测输入:
乘客监测输出:
2.3感知
感知功能模块负责检测、分类和跟踪自主车辆附近的实体和事件。来自车载传感器的数据可与其他来源的信息相结合,如高清地图、V2X或互联服务,以完成此任务。
感知模块负责建立和更新车辆感知范围内环境的虚拟表示。
感知功能模块图
感知模块可能包括以下算法:
感知模块以规范格式接收环境传感器数据作为输入。这些数据可能来自一个或多个传感器,这些传感器可以基于相似或不同的传感技术(例如,摄像头、雷达、激光雷达、超声波),并且可能有重叠的视野。如果同一物理实体被多个传感器“看到”,则可以采用多传感器融合算法来产生这些实体的统一视图。可以采用跟踪实体的时间变化的算法来维护这些实体的存在概率,并预测它们的路径/状态的短期预测。几乎所有检测都需要映射到一个公共的世界坐标系统。
感知输入:
感知输出:
2.4定位
定位功能模块图
在驾驶员辅助或自动驾驶车辆的背景下,定位是指识别车辆在世界和车辆地图子系统中的姿态(位置和方向)的过程。这个过程可能依赖于各种传感器(全球导航卫星系统GNSS、摄像头、光检测与测距LiDAR等)的输入,并将为自动驾驶车辆操作的其他方面提供信息。
“定位”涵盖的范围很广。一个简单的实现可能只包括一些车辆运动与原始GNSS输出的融合,而一个复杂的实现可能正在处理20个或更多传感器的输入,并将接收到的数据与地图中存储的位置进行比较,地图每英里可能有10MB以上的地图数据。
相关的计算负载从可忽略不计到远远超过当前典型汽车嵌入式微控制器的能力。计算负载也将根据“定位”之前对视觉、激光雷达、雷达和其他传感器的预处理量而有很大差异。
定位输入:
定位输出:
2.5场景理解
场景理解功能模块图
场景理解功能模块体现了负责“理解”当前驾驶场景的算法。如果自主车辆要在共享的驾驶空间中进行智能操纵,则有必要预测/预见该空间内其他实体的行动。场景或方案理解不仅仅是识别当前情况的“状态”,还包括对其演变方式的预测。
此功能模块中的算法可能能够模拟多种因果场景,以帮助为自主车辆选择最佳行动方案。然而,场景理解本身不会对自主车辆应该采取的行动做出任何决定,也不会选择要模拟的行动方案。
场景理解输入:
场景理解输出:
2.6自车运动
自车运动功能模块图
自车运动模块估计车辆随时间姿态(位置+方向)的变化。通过多种不同类型传感器计算和改进的运动估计的融合,可以获得比单一传感器测量更准确可靠的估计。
根据系统的不同,使用的输入数量各异。更简单的自车运动组件可能只处理IMU和底盘传感器的数据。然而,更复杂的系统可能使用所有或子集的其他输入来计算额外的运动估计,然后将其融合在一起。
自车运动输入:
自车运动输出:
2.7路径规划
路径规划功能模块图
路径规划功能模块提供算法来确定实时路径以到达目标目的地。它接受驾驶员所需的目的地,并从车辆当前位置计算到达该目的地的最短路径,同时考虑驾驶员偏好和交通条件。也称为任务规划,它负责将“从A到B”的期望任务分解成结构化的道路片段,如所提供的地图(典型示例是提供车道级子任务)所指定和定义的。
一组车道级子任务被输出,它们描述了车辆在每个交叉口的所需车道和转向。此外,当车辆完成当前的车道级子任务时,它会自动计算下一组目标并提供下一个车道级子任务。在设有停止标志、交通灯或让行要求的交叉口,该模块参考来自感知系统的输入来决定汽车是否可以进行到下一个提交。
路径规划输入:
路径规划输出:
2.8行为规划(驾驶策略)
行为规划(BP)功能模块提供算法以在路线目标内做出机动决策。
行为规划功能模块图
使用多模型路径规划算法进行机动,给定目标跟踪和空间及走廊内所有动态对象的预测行为,行为规划器同时评估多种可能的机动,然后将其与更新的道路观测相关联。
行为规划需要在车辆安全性和舒适性的基础上平衡驾驶效率。驾驶效率意味着确定最佳车道或道路以快速到达目的地,而舒适性考虑则意味着安全地到达那个车道或走廊。车道排名和可行性检查是车辆行为规划的两个核心要素。
关于车道排名,算法遵循三个主要原则:
1. 车道变化越少越好。
2. 距离前方移动物体越远评分越高。
3. 前方物体的速度越快,车辆在车道上的行驶速度就越快。
在每个可能的车道排名之后,定义它们的可行性并分配成本。下图显示了算法如何定义可行性的示例,以及如何选择成本更低的机动列表。
车道排序决策树
机动列表包含要由车辆执行的高级语义决策及物理参数,机动的示例可以是(不详尽):
行为规划输入:
行为规划输出:
2.9 轨迹规划(路径规划)
轨迹规划功能模块图
轨迹规划功能模块提供算法以规划机动的路径,以便控制转向、制动和加速。它与行为规划密切合作,有时两者作为相同算法的输出获得,或以反馈递归调整的方式获得。
自动驾驶车辆依赖实时的车辆状态和环境信息(例如周围车辆、道路条件)来获得确保安全通行的本地轨迹,同时最小化偏离整体行程轨迹(来自路径规划的全局轨迹)。本地轨迹规划可以定义为实时规划车辆从一个可行状态到下一个可行状态的过渡。这一切都在满足基于车辆动力学的车辆运动学限制、乘客舒适度、车道边界和交通规则的约束下进行,同时避免障碍物。
传感器范围、预测交通参与者运动的时间以及传感器不完善等限制将限制车辆的最大速度来计算机动。因此,对交通参与者运动进行风险评估预测是机动规划的一个重要部分,这通过基于模型的交通运动抽象级别来实现。用于避障的轨迹规划方法采用下表中显示的一种技术。
控制策略优缺点
需要注意的是,上述所有方法都假设轨迹规划系统可以按需获得环境和前导车辆状态的精确知识。不稳健的轨迹规划方法可能会导致不可实现和/或不安全的参考轨迹,这在高速行驶期间尤其存在重大安全风险。上述讨论的各种轨迹规划技术提出了不同的方法来处理当前环境感知中的不确定性和有限的未来预测能力。
轨迹规划输入:
轨迹规划输出:
2.10 运动控制(激活)
运动控制功能模块图
运动控制(激活)功能模块负责请求与自主车辆运动相关的推进变化,包括但不限于加速请求、制动请求和转向请求。 责任包括:
运动控制输入:
运动控制输出:
2.11 操作域监督(ODS)
操作域监督功能模块图
操作域监督模块监控与动态驾驶任务相关的能力、状态和情况,目的是确保自动驾驶车辆在操作设计域及其他适用的动态和静态约束下运行。它使用两个操作域表示实现运行时监控:
操作域监督主要影响任务控制功能,但也指导路径规划和行为规划。
一组主要条件指导操作域监测:
操作域监督信号输入:
操作域监督信号输出:
2.11 SAE级别的可扩展性
每个功能块内的复杂性(例如不同的计算元素、内存等)以及信号接口(例如信号数量和所需带宽)会根据自动化级别进行缩放。
功能模块图
例如,一个非常简单的SAE L1级功能可能只需要功能块的一个子集来执行相关计算,而其他功能块可能只是信号直通,或对整体系统性能需求贡献很小。
下面的示例说明了一个简单的SAE L1级功能,其中操作域监督、定位、乘客监测、任务控制、路径规划、地图和V2X的贡献有限(用黄色表示)。剩余的功能块将对函数实现做出主要贡献。
SAE 1级功能模块图示例
来源 | 智车Robot