自动驾驶和辅助驾驶系统的概念性架构(一)
摘要:
本文主要介绍包括功能模块图,涵盖了底层计算单元、示例工作负载和行业标准。
前言
本文档参考自动驾驶计算联盟(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乘员监测

乘员监测
乘客监测功能模块负责观察车内乘客的状态,并向辅助驾驶/自动驾驶系统的其他部分提供相关的状态数据。通过一个或多个专用车内传感器来感测乘客。可包括对驾驶员的监测,和/或对乘客的监测,以感知状态,潜在的医疗紧急情况,或不当行为状态。除了自动驾驶单元以外,还可以由车辆的其他系统提供。例如,车辆驾驶舱控制系统可能包括辅助驾驶/自动驾驶系统所需的乘客监测状态的超集,如用于车内娱乐的手势识别。在这种情况下,输入到这个模块将是乘客监测状态。
潜在的乘客监测示例:
- 驾驶员监测系统(DMS): 对于可能需要驾驶员介入/失败切换的辅助驾驶/自动驾驶系统来说,可以监测驾驶员的准备状态。准备状态可以包括意识、困倦、情绪、健康(例如:心跳检测)、姿态等。
- 乘客监测系统: 完全自动化驾驶系统可能需要根据车内紧急情况(例如:心脏病发作、癫痫发作、危险或暴力行为)改变目的地和路线参数。可以监测的参数包括: 占用的座位、乘客人数、乘客健康、姿态等。
- 自动驾驶出租系统: 可能包括检测车内遗留的个人物品。
乘客监测输入:
- 车内传感器数据:用于提取车内乘客的信息和状态。
乘客监测输出:
- 乘客状态:为辅助驾驶/自动驾驶系统的其余部分提供车内乘客的状态数据,例如,用于确定驾驶员能力和乘客状况。
2.3感知
感知功能模块负责检测、分类和跟踪自主车辆附近的实体和事件。来自车载传感器的数据可与其他来源的信息相结合,如高清地图、V2X或互联服务,以完成此任务。
感知模块负责建立和更新车辆感知范围内环境的虚拟表示。

感知功能模块图
感知模块可能包括以下算法:
- 检测基础设施元素,如可行驶路面、路标、交通灯、路缘、交通锥、施工、栏杆等,以及这些元素的动态属性(例如,收费站栏杆下降,红灯等)。
- 检测、分类和跟踪动态实体,如车辆、行人和障碍物。
- 检测环境条件,如可能存在的天气、火灾/烟雾、湿滑路面。
- 识别/分类更复杂的方面,如人的姿态、不稳定驾驶、危险载荷等也可能是感知模块的一部分。
感知模块以规范格式接收环境传感器数据作为输入。这些数据可能来自一个或多个传感器,这些传感器可以基于相似或不同的传感技术(例如,摄像头、雷达、激光雷达、超声波),并且可能有重叠的视野。如果同一物理实体被多个传感器“看到”,则可以采用多传感器融合算法来产生这些实体的统一视图。可以采用跟踪实体的时间变化的算法来维护这些实体的存在概率,并预测它们的路径/状态的短期预测。几乎所有检测都需要映射到一个公共的世界坐标系统。
感知输入:
- 环境传感器数据:以规范形式(根据传感器技术的不同而不同)接收来自环境传感器的数据,该数据经过处理和/或分析,以使下游功能模块更易于消费和处理数据,或从自主车辆的感知范围内提取有关环境和/或实体的可操作信息。
- 姿态:可以用于预选感知视野的某些部分进行特征/对象检测(无论是否使用高清地图)。
- 地图数据:可以通过将先验假设的基础设施与来自传感器的观测进行比较,使检测更加可靠。
- 自车运动:可以用于调整传感器的读数,以补偿自主车辆的运动。
- 感兴趣区域(ROI):可以用于配置传感器或算法,将注意力(分辨率/处理)集中在感知范围的特定区域。例如,这可以帮助分辨率不均匀的传感器进行配置,以便具有特定兴趣的道路/基础设施以更高分辨率“看到”。类似地,可以提取高分辨率图像的某些部分以全分辨率处理,以确定交通灯的状态。
- V2X:提供了一个额外的信息来源,可以利用它使检测更可靠(消除歧义)。
感知输出:
- 规范:可以以与原始输入数据相同的形式输出数据,同时进行了一些额外的处理或转换。传感器数据可能在不改变数据格式的基础上对原始数据进行了修改。规范的一个示例是图像,它可以被修改但仍然是图像(与将像素图像转换为物体列表形成对比)。
- 特征:根据实现的不同而不同。它们可以表示为3D世界坐标,也可以不表示;可以跟踪,也可以不跟踪。
- 对象:用于填充环境/世界模型。它们描述了自主车辆感知范围内检测到的、对后续处理阶段具有相关性的静态和动态实体。
- 感知能力:提供有关感知功能动态能力的信息。这可以简单地用感知范围以及在此范围内检测的估计延迟来表达。该能力本身可以从各种照明/天气/环境条件下的个别传感器的能力推导出来。
2.4定位

定位功能模块图
在驾驶员辅助或自动驾驶车辆的背景下,定位是指识别车辆在世界和车辆地图子系统中的姿态(位置和方向)的过程。这个过程可能依赖于各种传感器(全球导航卫星系统GNSS、摄像头、光检测与测距LiDAR等)的输入,并将为自动驾驶车辆操作的其他方面提供信息。
“定位”涵盖的范围很广。一个简单的实现可能只包括一些车辆运动与原始GNSS输出的融合,而一个复杂的实现可能正在处理20个或更多传感器的输入,并将接收到的数据与地图中存储的位置进行比较,地图每英里可能有10MB以上的地图数据。
相关的计算负载从可忽略不计到远远超过当前典型汽车嵌入式微控制器的能力。计算负载也将根据“定位”之前对视觉、激光雷达、雷达和其他传感器的预处理量而有很大差异。
定位输入:
- GNSS数据:用于直接识别地图上的可能位置。它还可以用于选择地图内的兴趣区域,以进行进一步的位置优化操作。
- 自车运动:可用于改进自身位置和姿态的估计。
- 规范|特征|对象:将传感器识别的特征与地图数据中包含的特征进行比较,以改进自身位置和姿态的估计。
- V2X数据:与地图信息进行比较以改进自身位置和姿态的估计。
- 地图数据:参考这些数据来识别自主车辆最可能的位置。
定位输出:
- 姿态:提供自主车辆在地图上的最可能位置和方向。
2.5场景理解

场景理解功能模块图
场景理解功能模块体现了负责“理解”当前驾驶场景的算法。如果自主车辆要在共享的驾驶空间中进行智能操纵,则有必要预测/预见该空间内其他实体的行动。场景或方案理解不仅仅是识别当前情况的“状态”,还包括对其演变方式的预测。
此功能模块中的算法可能能够模拟多种因果场景,以帮助为自主车辆选择最佳行动方案。然而,场景理解本身不会对自主车辆应该采取的行动做出任何决定,也不会选择要模拟的行动方案。
场景理解输入:
- 地图数据:提供当前驾驶场景中基础设施的布局。对预测其他道路使用者/实体的意图/行为有用。
- 静态对象:识别驾驶场景中对自主车辆和其他道路实体可能占用的可行驶空间有影响的不可移动对象。静态对象可能具有动态变化的状态,如交通灯变红或收费站变为关闭。
- 动态对象:用于预测当前驾驶场景可能如何演变,主要关注动态对象的轨迹和状态变化。动态对象的一个预测示例是车辆刚打开左转灯然后左转。
- V2X数据:可能提供可以利用的信息来预见当前驾驶场景的演变,如即将改变的交通灯。
- 自车运动:为预测引擎提供自主车辆自车运动信息。
- 姿态:允许预测引擎在地图上放置自主车辆。
- 自主车辆假设机动:为预测引擎提供自主车辆的假设机动。这种机动可能会引发其他道路使用者的反应,需要预测。例如,改道可能会强迫该车道上迎面而来的另一个道路使用者进行危险制动。在行为规划做出决定之前,可能会向场景理解功能模块提交多个自主车辆机动假设。
场景理解输出:
- 动态对象预测:用于安全计划改变自主车辆当前轨迹。
- 静态对象预测:用于安全计划改变自主车辆当前轨迹。
- 基于场景的运动约束:根据驾驶场景条件约束自主车辆的运动。
- 基于场景的机动约束:根据驾驶场景条件约束自主车辆的计划机动。
- 基于场景的路线约束:根据驾驶场景对自主车辆的路线规划加以约束。
- 场景数据:提供可以利用的集体驾驶条件视图,以确保自主车辆在其设计参数内运行。
2.6自车运动

自车运动功能模块图
自车运动模块估计车辆随时间姿态(位置+方向)的变化。通过多种不同类型传感器计算和改进的运动估计的融合,可以获得比单一传感器测量更准确可靠的估计。
根据系统的不同,使用的输入数量各异。更简单的自车运动组件可能只处理IMU和底盘传感器的数据。然而,更复杂的系统可能使用所有或子集的其他输入来计算额外的运动估计,然后将其融合在一起。
自车运动输入:
- 规范|特征|对象:使用连续的感知数据序列来估计自车运动。估计可以基于具有不同计算复杂度的各种算法。例子是光流和基于CNN的估计器,利用像素级数据或已经检测到的特征。也可以利用已分类的对象与已知速度(例如护栏)。
- 底盘传感器数据:包含控制/执行器反馈,改进自车运动估计。
- IMU数据:包含加速度计和陀螺仪传感器数据,提供自车运动估计。
- 罗盘数据:提供绝对旋转测量,改进自车运动估计。
- GNSS数据:从多个顺序的地理空间位置读数计算自车运动估计。
自车运动输出:
- 自车运动:提供自车运动估计使自动驾驶系统中的多个其他组件(例如感知或定位)能够完成其任务。
2.7路径规划

路径规划功能模块图
路径规划功能模块提供算法来确定实时路径以到达目标目的地。它接受驾驶员所需的目的地,并从车辆当前位置计算到达该目的地的最短路径,同时考虑驾驶员偏好和交通条件。也称为任务规划,它负责将“从A到B”的期望任务分解成结构化的道路片段,如所提供的地图(典型示例是提供车道级子任务)所指定和定义的。
一组车道级子任务被输出,它们描述了车辆在每个交叉口的所需车道和转向。此外,当车辆完成当前的车道级子任务时,它会自动计算下一组目标并提供下一个车道级子任务。在设有停止标志、交通灯或让行要求的交叉口,该模块参考来自感知系统的输入来决定汽车是否可以进行到下一个提交。
路径规划输入:
- V2X数据:用于接收交通信息或道路警报。
- 地图数据:计算路线。
- 姿态:提供路线的起点。
- 任务目标:指定目标目的地。
- 交通状况:提供自主车辆附近或路线计划上的交通状况的动态源信息。
- 用户路线偏好:提供约束路线选择的偏好或规则。可能包括乘车服务或自主车辆本身保持在操作设计域内或避免收费道路的约束。
- 基于场景的路线约束:提供动态确定的路线约束,如封闭道路标志、高速公路上封闭的车道或用路障封闭的高速公路入口。
- 基于操作域监控的路线约束:由于需要保持在操作设计域内而对路线进行约束。一个示例是由于缺乏路灯照明而在某些时间避免某些路线。
路径规划输出:
- 路径计划:提供自主车辆将要走的路线描述,包括适用的车道,以达到目标目的地。
2.8行为规划(驾驶策略)
行为规划(BP)功能模块提供算法以在路线目标内做出机动决策。

行为规划功能模块图
使用多模型路径规划算法进行机动,给定目标跟踪和空间及走廊内所有动态对象的预测行为,行为规划器同时评估多种可能的机动,然后将其与更新的道路观测相关联。
行为规划需要在车辆安全性和舒适性的基础上平衡驾驶效率。驾驶效率意味着确定最佳车道或道路以快速到达目的地,而舒适性考虑则意味着安全地到达那个车道或走廊。车道排名和可行性检查是车辆行为规划的两个核心要素。
关于车道排名,算法遵循三个主要原则:
1. 车道变化越少越好。
2. 距离前方移动物体越远评分越高。
3. 前方物体的速度越快,车辆在车道上的行驶速度就越快。
在每个可能的车道排名之后,定义它们的可行性并分配成本。下图显示了算法如何定义可行性的示例,以及如何选择成本更低的机动列表。

车道排序决策树
机动列表包含要由车辆执行的高级语义决策及物理参数,机动的示例可以是(不详尽):
- •巡航:在当前车道内,以设定速度。
- •跟随:保持在当前车道,以提供的速度限制行驶,以最小距离跟随前车,以提供的速度和ID。
- •转向:从当前车道转到目标车道,左转或右转,以提供的转向速度 。
- •改道:从当前车道移动到目标车道,以提供的加速度超车目标车辆[或以提供的减速度让目标车辆通过]。
- •停止:在提供的距离内减速到零速度并保持在当前车道。
行为规划输入:
- 静态对象预测:用于评估机动的安全性和舒适性。
- 动态对象预测:用于评估机动的安全性和舒适性。
- 路线目标:提供基本指导原则,例如车道或行驶走廊,用于机动决策。
- 基于场景的机动约束:用于排除被当前驾驶场景条件禁止的机动。
- 基于操作域监控的机动约束:确保自主车辆的结果机动不违反当前操作设计域边界条件。
- 自车运动:用于机动评估。
行为规划输出:
- 感兴趣区域(ROI):提供一个或多个应优先处理的感知区域的描述。
- 机动:提供要由自主车辆执行的高级语义决策及物理参数。
- 行为规划任务请求:由行为规划器请求修改任务。如果行为规划器确定无法按计划进行任务,则可能需要这样做。请求的性质可以是请求人类司机接管,例如。
- 自主车辆机动假设:准备一个或多个假设的机动,系统可以为此预测一个或多个结果。
2.9 轨迹规划(路径规划)

轨迹规划功能模块图
轨迹规划功能模块提供算法以规划机动的路径,以便控制转向、制动和加速。它与行为规划密切合作,有时两者作为相同算法的输出获得,或以反馈递归调整的方式获得。
自动驾驶车辆依赖实时的车辆状态和环境信息(例如周围车辆、道路条件)来获得确保安全通行的本地轨迹,同时最小化偏离整体行程轨迹(来自路径规划的全局轨迹)。本地轨迹规划可以定义为实时规划车辆从一个可行状态到下一个可行状态的过渡。这一切都在满足基于车辆动力学的车辆运动学限制、乘客舒适度、车道边界和交通规则的约束下进行,同时避免障碍物。
传感器范围、预测交通参与者运动的时间以及传感器不完善等限制将限制车辆的最大速度来计算机动。因此,对交通参与者运动进行风险评估预测是机动规划的一个重要部分,这通过基于模型的交通运动抽象级别来实现。用于避障的轨迹规划方法采用下表中显示的一种技术。

控制策略优缺点
需要注意的是,上述所有方法都假设轨迹规划系统可以按需获得环境和前导车辆状态的精确知识。不稳健的轨迹规划方法可能会导致不可实现和/或不安全的参考轨迹,这在高速行驶期间尤其存在重大安全风险。上述讨论的各种轨迹规划技术提出了不同的方法来处理当前环境感知中的不确定性和有限的未来预测能力。
轨迹规划输入:
- 静态对象预测:用于评估轨迹计算中的安全性和舒适性风险
- 动态对象预测:用于评估轨迹计算中的安全性和舒适性风险
- 机动:提供要进一步处理为轨迹的机动目标
- 自车运动:用于轨迹计算
- 基于场景的运动约束:提供驾驶场景条件的车辆运动限制,例如湿滑/劣化的路面,以在轨迹计算中考虑。
- 车辆运动约束:提供来自运动控制的动态运动限制反馈,以应用于轨迹计算
轨迹规划输出:
- 目标轨迹:沿轨迹路径表达转向、制动和加速变化的目标轨迹(曲线路径)
2.10 运动控制(激活)

运动控制功能模块图
运动控制(激活)功能模块负责请求与自主车辆运动相关的推进变化,包括但不限于加速请求、制动请求和转向请求。 责任包括:
- 提供与各种外部执行模块的接口,如电动助力转向(EPS)、自动制动(ABS)、PRNDL变速箱齿轮选择、牵引控制等。
- 提供必要的中间件层来管理与外部执行模块完整且足够的接口,这些模块具有不同的复杂性和能力级别。例如,外部执行模块可以包括基于环境数据和条件的学习能力,或者它可以是一个简单的、传统的基于请求的系统。
- 接收、管理和展示外部执行模块呈现的车辆运动约束,并呈现给其他自动驾驶系统功能模块。这可能包括聚合、同步、统计分析和封装等活动。
- 将目标轨迹转换为针对外部模块的适当执行请求,包括考虑自车运动输入和外部执行器预测。
- 根据需要为外部执行模块进行预处理。
运动控制输入:
- 目标轨迹:来自轨迹规划的请求,是运动控制(激活)输出的主要考虑因素。
- 自车运动:接收自主车辆姿态信息,与目标轨迹一起考虑以生成执行器请求。
- 执行器反馈:向系统暴露车辆运动约束。由于运动控制(激活)可以与各种外部执行模块接口,此反馈在单位、格式、类型等方面将有所不同。
运动控制输出:
- 执行器请求:向多个外部执行模块提供主要请求输出。
- 车辆运动约束:提供外部执行模块的限制反馈,汇总后呈现给其他自动驾驶系统模块,如轨迹规划(路径规划)。
2.11 操作域监督(ODS)

操作域监督功能模块图
操作域监督模块监控与动态驾驶任务相关的能力、状态和情况,目的是确保自动驾驶车辆在操作设计域及其他适用的动态和静态约束下运行。它使用两个操作域表示实现运行时监控:
- 授权操作域表示设计意图操作设计域和当前适用状态的并集,根据立法、验证和/或解决漏洞的行动,该域可能在系统生命周期中发展。
- 当前操作域表示上述基线域的有条件约束子集,由下述条件集修改。
操作域监督主要影响任务控制功能,但也指导路径规划和行为规划。
一组主要条件指导操作域监测:
- 机动能力:通过对场景数据、自车运动和V2X输入信号的解释,定义自动驾驶车辆的机动包线。
- 交通情况:提供当前和未来位置的其他道路使用者信息。
- 道路系统状态:包括道路表面、道路语义以及地理围栏的动态和静态方面。
- 驾驶员能力:评估驾驶员接管控制、自动紧急行动或其他任务改变的参与度。
- 乘员状态:指示自动驾驶车辆乘客状态,以终止或更改任务。
- 感知能力:表示传感器状态、算法置信度和与感知相关的环境条件。
- 系统完整性:包括传感器、执行器、支持系统和计算单元的技术状态,涵盖功能安全、可靠性、可用性和安全角度。
操作域监督信号输入:
- V2X数据:用于确定机动能力、道路系统状态和交通情况。
- 自车运动:用于确定机动能力。
- 地图数据:用于确定道路系统状态,并生成基于操作域监督的路线约束。
- 姿态:用于确定道路系统状态。
- 场景数据:用于确定机动能力、道路系统状态和交通情况。
- 乘客状态:用于确定驾驶员能力和乘客状况。
- 感知能力:直接用作操作域监控的一个主要条件。
- 系统完整性:直接用作操作域监控的一个主要条件。
操作域监督信号输出:
- 基于操作域监督的路径约束:通过组合主要条件集与地图数据生成路线约束,以确保当前驾驶状态的边界得到维持。
- 基于操作域监督的机动约束:通过组合主要条件集生成机动约束,以确保在当前和后续状态及位置保证机动性。这可以使车辆保持在当前自动驾驶任务内,而不会超出操作设计域边界条件。
- 操作域监督的任务请求:如果项目立即或未来将离开操作域,则生成该请求以通过改变自动驾驶任务来解决此问题,作为中期或短期策略来避免离开操作域。该请求可能导致驾驶员状态转变,例如从自动驾驶转为手动驾驶。
2.11 SAE级别的可扩展性
每个功能块内的复杂性(例如不同的计算元素、内存等)以及信号接口(例如信号数量和所需带宽)会根据自动化级别进行缩放。

功能模块图
例如,一个非常简单的SAE L1级功能可能只需要功能块的一个子集来执行相关计算,而其他功能块可能只是信号直通,或对整体系统性能需求贡献很小。
下面的示例说明了一个简单的SAE L1级功能,其中操作域监督、定位、乘客监测、任务控制、路径规划、地图和V2X的贡献有限(用黄色表示)。剩余的功能块将对函数实现做出主要贡献。

SAE 1级功能模块图示例
来源 | 智车Robot
相关文章:
自动驾驶和辅助驾驶系统的概念性架构(一)
摘要: 本文主要介绍包括功能模块图,涵盖了底层计算单元、示例工作负载和行业标准。 前言 本文档参考自动驾驶计算联盟(Autonomous Vehicle Computing Consortium)关于自动驾驶和辅助驾驶计算系统的概念系统架构。 该架构旨在与SAE L1-L5级别的自动驾驶保…...
【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之数码管静态显示(四)
本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL22G开发平台(盘古22K) 一:盘古22K开发板(紫光同创PGL22G开发…...
【洛谷】P3853 路标设置
原题链接:https://www.luogu.com.cn/problem/P3853 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 整体思路:二分答案 由题意知,公路上相邻路标的最大距离定义为该公路的“空旷指数”。在公路上增设一些路标&…...
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅 1. 简介 1.1 背景 关键信息抽取 (Key Information Extraction, KIE)指的是是从文本或者图像中,抽取出关键的信息。针对文档图像的关键信息抽取任务作为OCR的下游任务,存在非常…...
Gradle问题处理
目录 一、依赖搜索问题1.1 、Gradle不在本地 Maven 存储库中进行搜索一、依赖搜索问题 1.1 、Gradle不在本地 Maven 存储库中进行搜索 场景 build.gradle文件: buildscript {repositories {mavenLocal()google()mavenCentral()}dependencies...
架构:C4 Model
概念 C4说穿了就是几个要素:关系——带箭头的线、元素——方块和角色、关系描述——线上的文字、元素的描述——方块和角色里的文字、元素的标记——方块和角色的颜色、虚线框(在C4里面虚线框的表达力被极大的限制了,我觉得可以给虚线框更大…...
数据结构学习系列之顺序表的两种修改方式
方式1:根据顺序表中数据元素的位置进行修改,代码如下:示例代码: int modify_seq_list_1(list_t *seq_list,int pos, int data){if(NULL seq_list){printf("入参为NULL\n");return -1;}if( pos < 0 || pos > seq…...
React:props说明
props是只读对象(readonly) 根据单项数据流的要求,子组件只能读取props中的数据,不能进行修改props可以传递任意数据 数字、字符串、布尔值、数组、对象、函数、JSX import FileUpdate from ./FileUpdate; export default class …...
Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
最近在用django框架开发后端时,在运行 $python manage.py makemigrations 命令时,报了以上错误,错误显示连接mysql数据库失败,查看了mysql数据库初始化配置文件my.cnf,我的mysql.sock文件存放路径配置在了/usr/local…...
C++的单例模式
忘记之前有没有写过单例模式了。 再记录一下: 我使用的代码: #ifndef SINGLETON_MACRO_HPP #define SINGLETON_MACRO_HPP#define SINGLETON_DECL(class_name) \ public: \static class_name& instance() { \static class_name s_instance; \return …...
Spring Boot 中 Nacos 配置中心使用实战
官方参考文档 https://nacos.io/zh-cn/docs/quick-start-spring-boot.html 本人实践 1、新建一个spring boot项目 我的spirngboot版本为2.5.6 2、添加一下依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-…...
学生管理系统VueAjax版本
学生管理系统VueAjax版本 使用Vue和Ajax对原有学生管理系统进行优化 1.准备工作 创建AjaxResult类,对Ajax回传的信息封装在对象中 package com.grg.Result;/*** Author Grg* Date 2023/8/30 8:51* PackageName:com.grg.Result* ClassName: AjaxResult* Descript…...
迭代器模式简介
概念: 迭代器模式是一种行为型设计模式,它提供了一种访问集合对象元素的方法,而无需暴露其内部表示。通过使用迭代器,可以按照特定顺序遍历集合中的元素。 特点: 将遍历和具体集合分离,使得能够独立地改…...
四方定理c++题解
题目描述 四方定理是数论中著名的一个定理,指任意一个自然数都可以拆成四个自然数的平方之和。例如: 251^22^22^24^2 对 25来说,还有其他方案: 250^20^23^24^2 以及 250^20^20^25^2 给定一个自然数 n ,请输出 n…...
ZDH-权限模块
本次介绍基于ZDH v5.1.2版本 目录 项目源码 预览地址 安装包下载地址 ZDH权限模块 ZDH权限模块-重要名词划分 ZDH权限模块-菜单管理 ZDH权限模块-角色管理 ZDH权限模块-用户配置 ZDH权限模块-权限申请 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽…...
漏洞修复:在应用程序中发现不必要的 Http 响应头
描述 blablabla描述,一般是在返回的响应表头中出现了Server键值对,那我们要做的就是移除它,解决方案中提供了nginx的解决方案 解决方案 第一种解决方案 当前解决方案会隐藏nginx的版本号,但还是会返回nginx字样,如…...
什么是mkp勒索病毒,中了mkp勒索病毒怎么办?勒索病毒解密数据恢复
mkp勒索病毒是一种新兴的计算机木马病毒,它以加密文件的方式进行勒索,对用户的计算机安全造成了严重威胁。本文将介绍mkp勒索病毒的特征、影响以及应对措施,以便读者更好地了解和防范这种病毒。 一、mkp勒索病毒的特征 加密文件:…...
db2迁移至oracle
1.思路 (1)用java连接数据库(2)把DB2数据导出为通用的格式如csv,json等(3)导入其他数据库,比如oracle,mongodb。这个方法自由发挥的空间比较大。朋友说他会用springboot…...
webpack学习使用
...
按钮控件之2---QComboBox 复选按钮/复选框控件
1、常用函数: comboBox->addItem("cxq"); //添加下拉选项 combobox->clear(); //清空下拉项comboBox->setCurrentIndex(0);//设置当前的索引 int currentlndex(): //返回当前项的序号,第一个项的序号…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
