自动驾驶和辅助驾驶系统的概念性架构(二)
摘要:
本篇为第二部分主要介绍底层计算单元、示例工作负载
前言
本文档参考自动驾驶计算联盟(Autonomous Vehicle Computing Consortium)关于自动驾驶和辅助驾驶计算系统的概念系统架构。该架构旨在与SAE L1-L5级别的自动驾驶保持一致。本文主要介绍包括功能模块图,涵盖了底层计算单元、示例工作负载和行业标准。
本篇为第二部分主要介绍底层计算单元、示例工作负载。
自动驾驶系统架构组件
三、 信号描述
图中的模块连接在抽象级别上显示了数据从一个功能模块传递到另一个功能模块的生产者-消费者关系。但是,为简化起见,在文档的其余部分将其称为信号或数据流。功能模块的输出可能是系统中一个或多个功能模块的输入。
本文描述了系统架构图中各功能模块之间的数据流。本节中描述的数据流在后续各节的功能模块描述中引用。功能模块只是简单地引用本节的数据流,并进一步阐述数据流在其功能、用途和实现方面的作用(输入和/或输出)和计算方面的内容(作为消费者、作为生产者)。
数据流可以分组为通常的行为“配置文件”,概括如下:
• 数据流:定期更新的数据流;总是有下一个更新
• 事件:指示转变或变化的数据流;在发生变化时周期性发生
• 状况:指示状况的数据流;新更新将替换当前状况
• 状态:类似于状况,但在生产者失败或重启时仍可用(当车辆运行时)
• 配置:像状态一样,但在车辆重启后仍然存在
• 请求:请求服务;可能导致行为改变,也可能无法满足。每个数据流遵循以下模式:
• 名称:由信号传达的数据的描述
• 所有权:排他(恰好一个生产者是主要来源)| 共享(所有生产者被视为有效源)
当一个数据流有多个生产者时,“所有权”属性简单地指示是否有一个排他的生产者应该被视为主要来源。如果没有指定此属性,则认为数据流是“共享的”,即数据流的所有生产者都被视为有效的输入源(默认)。
自动驾驶车辆系统中的信号如下所示,按数据流配置文件组织。
3.1 数据流
• 自身运动:描述自主车辆相对于世界坐标系的运动。
--提供反映自主车辆动态条件的信息,用于确定机动能力
--提供有关自主车辆当前运动的信息
--与目标轨迹一起考虑,共享自主车辆姿态信息,以生成执行器请求
--随时间变化的姿态,即平移和旋转速度以及加速度
• 执行器请求:向自主车辆的制动、转向和加速执行器发送控制输入。
• 执行器反馈:提供来自车辆执行器的反馈信号。
--应该向系统其他部分公开车辆运动约束,因为此反馈是必要的
--可以与各种外部执行模块接口,此反馈在单位、格式、类型等方面将有所不同
• 底盘传感器数据:提供运动相关信息的车辆内部传感器(例如轮速传感器、方向盘转角等)。
• IMU数据:由IMU提供的测量车辆加速度和旋转率。
• 罗盘数据:由磁力计提供的正北方位。
• GNSS数据:来自全球导航卫星系统(GNSS)的数据。包括以WGS84/GPS位置表示的地理参考位置估计(不确定性通常以米测量)。
--基于GNSS的位置信息,可能与校正服务的信息组合
--包括地理参考位置估计。可能已经包括自身运动估计
• 环境传感器数据:来自一个或多个环境传感器的规范数据。
--可能包括摄像头数据(可见光和/或红外波长)、雷达(飞行时间测量手势)、声纳(可听和/或超声)或其他传感模式
--注意:可能包括各种传感器输入的组合
• 车厢传感器数据:来自一个或多个车厢内传感器的数据。可以使用各种传感技术进行乘客监测。
--示例可能包括摄像头(可见光和红外波长)、雷达(手势/心跳检测)、音频和各种其他传感机制。
3.2 事件
• 规范|特征|对象:描述三种通用的数据抽象层次。暗示这三个层次中的任意一个都可以被消费。
• 规范:感知模块可以以规范格式输出数据,即指其格式而不是处理状态。它可能经过感知模块的某些转换,例如去除阴影。
• 特征:感知模块可以以特征的形式输出数据。例如,定位模块用于地图匹配的特征。
• 对象:一个通用术语,可以描述各种实体(可能具有动态/语义状态)。例如,车道、交通灯、机动车、救护车、交通警察停止信号等。包括动态和静态对象。
• V2X数据:由V2X系统提供的数据;可以提供有关交通灯、收费站等状态的实时信息,以使检测更加可靠。来自基础设施或其他车辆关于感兴趣特征位置的信息。
• 交通状况:关于自主车辆附近或路线目标上的交通状况的动态源信息。
3.3 状况
• 任务反馈:关于任务状态的反馈,向车辆乘员/驾驶员提供通信。一个例子是系统请求驾驶员干预。通过HMI向车辆乘员提供当前任务的反馈。这可以包括诸如路线目标的进度、警告驾驶员接管控制或类似信息。
• 任务目标:可以反映复杂任务的用途表达,其目标是“到达目标目的地”,或者在更低的自动化级别,是一个更简单的目标,如“保持在当前车道的中心”。任务目标在行程中可能会改变。
• 路线目标:自主车辆将要走的路线描述,如果适用包括车道,以实现任务目标。描述每个交叉口的所需车道和转向。
• 机动:提供至少两个操作的列表,包括一个安全机动。机动表达为地图上的新位置,以及该位置的目标速度,并描述高层次的车辆运动行为(例如巡航、跟随、改道、转弯或停止)。
• 目标轨迹:是将机动分解为目标轨迹(曲线路径),其中沿轨迹路径表达转向、制动和加速的变化。
• 感兴趣区域:是世界空间中一个或多个区域的描述,感知应优先处理这些区域。这可以描述世界空间中感知应提供卓越性能(如果可能)的感兴趣区域。例如,这可以允许配置具有非均匀感知分辨率的传感器,从而特定感兴趣的道路/基础设施以更高分辨率“看到”。
• 动态对象:识别所有移动或可移动对象。例如车辆、行人或动物。
• 静态对象:识别所有不可移动对象或基础设施。静态对象仍可能具有与之相关的可改变状态。例如道路表面、路缘、锥桶、路标、交通灯、电子标志。或者甚至是一个基础设施元素,如可移动屏障(如收费站)。
• 动态对象预测:预测动态对象的路径。
• 静态对象预测:预测静态对象状态的变化,如交通灯变化的时序。
• 场景数据:提供当前场景的相关描述,用于确定自动驾驶系统是否在操作设计域内运行。一个例子是对自动驾驶系统尚未设计用以处理的被淹路面的注释。
• 姿态:描述自主车辆相对于地图的当前位置和方向。与地图信息一起使用以启用或改进高级驾驶员辅助系统(ADAS)的许多行为。
• 感知能力:给出自动驾驶系统动态感知能力的描述(例如某类实体的感知范围)。
• 系统完整性:提供车辆不同组件的运行状态报告,这些组件与自动驾驶系统的安全运行相关;来自与硬件和软件平台相关部分的派生。
3.4 状态
• 乘客状态:提供有关自主车辆每个乘客(包括驾驶员)状态的描述。信息可能包括存在、注意力、情绪状态、健康等。
--来自乘客监控功能的有关驾驶员和乘客的信息。
--在汽车公司、自动驾驶系统支持级别和系统体系结构之间有所不同。可能包括带有相关状态信息的乘客列表。
--将列出具有相关状态标记的乘客。例如<乘客:成人,座位:0,角色:司机,注意力:向前,注视区域:(34,56,32),司机意图:左转,健康:正常,情绪:正常,转向:是等。
• 基于操作域监督的路线约束:对路线进行约束以保持在操作设计域(ODD)内。一个例子是由于缺乏路灯照明而在某些时间避免某些路线。
• 基于场景的路线约束:动态确定路线约束,如封路标志、高速公路上封闭的车道或用路障封闭的高速公路入口。
• 基于操作域监督的机动约束:由于需要保持在操作域监督内而对机动施加约束。一个例子是避免超车,因为附近的车辆数量大于以当前速度可以可靠跟踪的车辆数量。
• 基于场景的机动约束:动态检测机动的约束。例如可能包括迎面而来的救护车、标有长载货物牌的车辆、视野不佳等。
• 基于场景的运动约束:动态检测车辆运动的约束。例如检测到湿滑路面、劣化路面等,可能需要适当调整驾驶风格。
• 车辆运动约束:动态更新自主车辆运动的约束。提供外部执行模块的限制反馈,汇总后呈现给其他自动驾驶系统模块,如轨迹规划(路径规划)。
3.5 配置
• 用户路线偏好:提供约束路线选择的偏好或规则。可能包括乘车服务或自主车辆本身保持在操作设计域或优化燃料消耗等的约束。首选路线引导与自动驾驶任务相关。根据范式,路线偏好可以通过操作域监督任务引导信号路径反映当前操作域的限制。
• 地图数据:提供静态的和可能的动态源地图数据,包括用于路径规划的路线图,以及所谓的高清(HD)地图。可能包括详细的地理参照标志(包括道路标志、交通灯等的位置)。
--提供当前操作域的地理约束信息。--包括可被检测/分类算法利用的来自静态或动态更新地图的先验信息。例如,可包括期望的车道属性、交通灯位置等。--提供地图子系统关于道路和特征几何及位置的信息,当与其他定位输入组合时,可用于理解自主车辆的位置和方向(点云、特征位置和方向、道路几何等)。
3.6 请求
• 操作域监督任务请求:由于车辆使用条件改变或一个或多个未能保持在授权或当前操作域内而请求修改当前任务。
• 互联任务请求:由某个远程服务请求设置/更改当前任务。一个例子是由于在车内检测到医疗紧急情况而更改目的地。来自连接服务的修改当前任务的请求。例如,乘车管理服务设置/覆盖目的地,或由于交通拥堵或事故而建议绕行。
• HMI任务请求:由车辆乘员请求任务设置/更改;来自通过HMI注册的车辆乘员的修改当前任务的请求。任务请求可能包括自动化水平的更改。
• 行为规划任务请求:行为规划(BP)请求修改任务。如果行为规划(BP)确定无法按计划执行任务,则可能需要这样做。请求的性质可以是请求人类驾驶员接管,例如。
• 自主车辆机动假设:提供一个或多个假设的机动,系统可以为此预测一个或多个结果。
四、底层计算元素
4.1 典型计算元素特性
现有的计算元素(或处理器)具有不同的特性,这影响它们处理效率。下图显示了不同计算元素的处理效率与应用程序的处理特性(例如顺序与并行)的关系图。每个计算元素都有不同的特征来提高其效率和性能。这些特性从更通用到更特定的解决方案有所不同,由这些不同/可选的特征集定义。
现有处理器的计算特性
中央处理器(CPU)中央处理器是最流行的存储程序架构的处理器(计算元素)。程序被描述为一系列指令,所以通常每个指令会逐步执行操作。由于这种逐步执行,CPU通常适用于任何顺序操作的组合。另一方面,基本CPU不适合并行操作。为了解决这个问题,今天的CPU具有几个附加的可选功能。
• 单指令多数据(SIMD)/向量类型数据纯CPU不适合数据并行,因为内部数据路径带宽限制。为了解决这个限制,一些CPU具有SIMD或向量扩展,可以在一个指令或操作中处理多个(通常是4到16)数据流。此外,随着长数据字交易和更大的寄存器文件,与外部资源(如内存)的通信也将得到改善,但在处理大量内容时,仍会出现瓶颈。
• 多核
由于工艺技术趋势,在合理的功耗下提高单个CPU的性能是困难的。多核是解决这个问题的一种方法。如果应用程序具有多个(分离的)任务,多核将发挥很好的作用,但是如果它具有紧密耦合的内部通信,有时处理器间通信(IPC)将瓶颈操作。
数字信号处理器(DSP)DSP旨在加速算术操作(加法、减法、乘法、除法),例如乘积累加操作。
数据压缩/解压缩、数字滤波、控制、识别等都包括在内,这些算法大量使用乘积累加计算(MAC),这使得DSP能够高速管理这些过程。
图形处理单元通用计算(GPGPU)GPGPU是一种将GPU的计算资源应用于图像处理之外目的的技术。图形处理单元(GPU)具有成千上万的算术核心(着色器单元),并通过并行重复简单的数值计算来实现图像处理的高速执行。利用这一特性,可以以高速执行类似图像处理的处理,其中包括人工智能(AI),如机器学习和神经网络、虚拟货币挖矿、科技研究中的数值计算和模拟以及流体计算。
要利用GPGPU,需要不同于通用处理器的编程开发环境。为了充分利用它,需要适合该架构的编程技术,编程开发环境例如NVIDIA的“CUDA”(统一设备架构)、Microsoft的“Direct Compute”和Khronos Group的“OpenCL”等。
专用加速器(例如ISP, xNN)
专用加速器基于为特定应用定制的体系结构。例如,数据流和存储器遵循专用方案。加速器甚至可以提供定制逻辑,形成高度专业化的计算元素。这种专门化极大地增加了计算效率和性能,但以牺牲通用性为代价。使用专用加速器可能需要专用和/或专有编程,甚至需要专用工具和框架。
4.2 在SoC中实现的计算单元
自动驾驶/先进驾驶辅助系统芯片
如图所示,当前的自动驾驶/先进驾驶辅助系统片上系统(SoC)通过集成不同计算特性的计算元件构建了计算组件,以实现对不同应用最有效的处理。为此,如下表所示,选择了具有不同计算特性的计算元件,如通用CPU、SIMD DSP、GPGPU和专用加速器等。
计算元件特性
•通用CPU适合运行顺序代码和有限的数据并行。
•SIMD DSP处理更数据密集的任务。
•GPGPU也可以处理高数据量和控制顺序灵活的任务。
•专用加速器针对特定操作实现最高执行效率,但需在SoC设计初期确定。
计算元件的特性及适配性分析
为分析上述计算元件,首先从某些正交的计算特性对其进行分类。SIMD类型计算元件适合运行处理大量独立数据的应用。因此,可以归纳出下表所示的正交计算特性。
正交计算特性
• 数据并行性:在并行处理不同的数据
• 任务并行性:在并行处理不同的任务
• 引用局部性:提供数据的访问时间局部性和空间局部性(数据局部性)
每个“数据并行性”和'引用局部性(数据局部性)'的分配数据模式的例子如下,任务并行与数据并行非常相似,区别在于数据局部性和上下文处理。
“数据并行性”、“引用局部性”和“计算元件”之间的关系表如表所示。数据并行性、引用局部性和计算元件的关系表
“任务并行性”和“计算元件”之间的关系表如下表所示。任务并行性和计算元件的关系表
综合上述计算特性,可以定义用于SoC中高效执行AD/ADAS应用所需的典型运算类型。运算类型及匹配的计算元件
算法和运算下面我们分享了典型算法对不同运算的影响,这些运算在数据和线程并行性上有所不同。计算单元的决策依据
定位
场景理解
行为规划
路径规划
轨迹规划
运动控制
自车运动
乘员监控
操作域
任务控制
为便于理解每个自动驾驶算法的处理特点,使用了一个简单的词来对其进行归类,即典型运算。需要注意的是,对于某些典型运算如条件分支,可能会选择多种不同的计算单元,因为它们各有所长。
五、传感器前处理
5.1 摄像头前处理流程
•自动驾驶HDR:为适应自动驾驶所处的高动态范围环境,先进的图像传感器采用同时多曝光和/或拆分像素设计。组合不同曝光可将固有动态范围(80-100dB)扩展至目标动态范围(120-140dB或更高)。
•摄像头或摄像模块:由图像传感器、颜色滤波阵列、镜头、外壳及可选前处理组成的传感器系统。
•色彩滤波阵列(CFA):应用于图像传感器的光学元件,形成特定颜色像素模式,通常以2x2单个颜色指定,如红、绿、蓝、黄、青等。常见例子有RGGB(Bayer)、RCCC、RCCB、RYYCy。
•计算机视觉(CV)前处理:用于增强传统CV算法效果的具体处理,如光流、Harris角点检测等。
•图像传感器:收集光线并输出数字像素样本的芯片。可采集不同波长光线,数字输出格式多种多样。常见波长包括可见光、IR、近红外(NIR)、短波IR(SWIR)等。
•人类视觉前处理:用于使图像对人类更易看的具体处理。
•镜头:各种镜头安装在图像传感器阵列和CFA上。传统自动驾驶应用使用固定焦距/固定镜头。
•机器学习(ML)前处理:用于增强机器学习(ML)和深度神经网络(DNN)算法效果的具体处理。这取决于所用算法,前处理范围从无到完整的人类视觉流程不等。详见成像工作组。
•传感器上的前处理:用于自动驾驶的先进图像传感器具有许多增强和压缩原始样本的功能。这些传感器通常具有数字增益调整、黑电平调整、多曝光片段线性组合等。输出流量仍很大(3~6Gbps),但远低于原始样本流。
•原始像素样本:来自芯片上ADC的未处理样本。这些样本仍受镜头、CFA、模拟增益设定、曝光设定等的光学和模拟影响调整。像素通常以每个曝光10~16位采样。一个800万像素的图像传感器,使用4次曝光,以每秒30帧的速度,将产生高达15.36 Gbps的数据率。
5.2 雷达前处理流程
•汽车雷达:由天线阵列、一个或多个微波集成电路(MMIC)和可选前处理组成。大多数汽车雷达采用频率调制连续波(FMCW)操作,但也有几种替代技术正在开发。雷达操作基础有许多不错的资料来源。
•雷达帧:通过一个或多个发射机发出的一系列传输脉冲序列,以实现场景视野、分辨率/分离度/识别度和期望维度(距离、径向速度、方位和仰角)的精度设计目标。
•原始雷达样本:来自连接特定接收机(Rx)的ADC的样本。这些ADC通常为10~16位,工作频率约50MHz(MSps),生成原始流量高达每Rx通道约800Mbps。高端汽车雷达通常有4~16个接收通道(3.2~12.8Gbps),先进研究使用几十个接收机。
•雷达数据立方体:通过处理原始雷达样本生成的1~4维立方体。通常采用FFT获得距离和多普勒维度。可用于计算方位和/或仰角的数字波束成形,但也有许多更先进的算法以更好的结果换取额外处理。
•雷达数据立方体压缩:由于数据立方体中大多数位置没有返回,存在几种简单(通常专有)算法压缩数据立方体以减少传输带宽。
•雷达检测/点云:通常对数据立方体进行阈值处理/CFAR和将相邻返回合并为单点/检测。这大大降低了数据带宽,但也损失了数据立方体中的目标“形状”。
•雷达对象:基于检测结果,传统雷达处理会将附近点集群化并返回目标对象“块”。
•雷达感知:大类算法,可将雷达数据处理为汽车、人员等分类对象,还有更多基础设施对象。这些算法通常对数据立方体、点云或对象进行操作,但也有基于原始数据的研究。
•雷达输出数据格式:点云,点具有位置、距离、强度、运动信息等属性。
5.3 激光雷达前处理流程
•汽车激光雷达传感器:激光雷达系统可以分为几类基本类别。波长、脉冲/调制技术、接收器技术和扫描技术等基本变量会带来许多权衡取舍。
•Flash与扫描激光雷达:闪光激光雷达本质上是飞行时间(TOF)相机。使用激光闪光和高速2D接收器阵列,可以捕捉到许多“曝光区间”或“距离分箱”。2D阵列给出x/y位置,对距离分箱的处理可以得到反射或返回的峰值z位置。与Flash激光雷达不同,扫描激光雷达一次只在一个x/y方向上“观察”。发出脉冲后等待一定时间获取返回。这使设计者可以一次关注发出能量(在眼安全限制内)在一个位置上。然后扫描机制移动到下一个“像素”位置。
•脉冲与调制激光雷达:脉冲激光雷达需要更高功率来克服阳光的背景噪声,但系统相对简单。调制激光雷达噪声水平更低,因为干扰源要么没有调制(阳光或其他脉冲激光雷达),要么与发射调制的时间/频率组合极不可能重合(其他调制激光雷达)。由于噪声水平更低,在相似输出功率下,调制激光雷达的范围远超脉冲激光雷达。更复杂的发射器和接收器的代价是主要缺点。根据调制方案(如FMCW),它们也有更长的“驻留”时间,因为接收器需要等待完整调制返回,而不是快速脉冲。这增加的驻留时间导致与其他技术相比点数/秒更低。
•原始激光雷达样本:激光雷达样本测量返回强度对时间的关系。它们通常每个接收器为1~6 Gbps,不太可能在当前汽车网络技术中传输。接收强度取决于发射功率、与物体距离和物体反射率。
•激光雷达返回波形:对原始样本进行阈值处理形成每个从远处物体反射的波形,也称为返回。
•激光雷达返回:使用各种算法找到返回波形的强度峰值/时间。对于任 one发射脉冲,由于波束发散和目标的半透明性,可以有许多不同的返回。这些返回通常包括视场中的x、y位置,返回的距离和强度,以及用于全局同步的时间戳。
•激光雷达点云:点云是返回列表,可以对视场中的每个x/y位置具有多个返回。大多数汽车激光雷达输出每个x/y位置1~3个返回的点云。研究界有强烈观点认为应输出返回波形,因为它们包含目标对象的更多信息。与雷达处理类似,峰值检测可有效压缩所需的数据带宽,但明显损失目标对象信息。
六、ISP接口/连接
具体的传感器选择(如摄像头)不在讨论范围内。但是,任何系统功能模块(如感知)消费的处理后的图像数据在讨论范围内。
感知功能模块
计算平台必须提供ISP功能以处理输入的摄像头数据。ISP处理能力必须足以满足应用所需的摄像头。这取决于许多因素,包括应用类别(驾驶场景、自动化水平、ODD)和应用实现。不同的自动驾驶应用开发者对于同一场景和ODD的摄像头使用方式可能有不同方法。
可以观察到一个大致趋势:
•一般来说,给定场景所需像素数受物理定律与检测算法需求的权衡限制,因此不同应用间可能一致。然而,行业采用了多种摄像头数量和分辨率组合的方法。
•具体应用可能选择较多的1-3MP范围内的低分辨率摄像头,或少量的高分辨率摄像头。对于高速自动驾驶场景(如高速公路驾驶),可能使用高达8MP以上的高分辨率摄像头以支持远距离特征的感知。
在许多计算平台实现中,ISP处理能力可以灵活配置以支持不同的摄像头配置。
处理能力可以由所有摄像头的总像素吞吐量限制,而不是任一单个摄像头。提供这种灵活性可以支持更多样化的摄像头配置。
七、功能模块图基准测试
基准测试活动主要围绕两个方面:
•对应于功能模块图构建模块的基准测试。例如深度学习推理基准测试,这是感知和其他模块的重要构建模块。
•基准测试框架,关注横跨整个计算系统的基准测试的编排、运行和分析。
八、功能安全和信息安全
功能安全和信息安全无疑是任何汽车系统解决方案的两个非常重要方面。它们都不会是驾驶自动化系统的简单附加组件,而是需要进行更详细的端到端审查,例如调研可用解决方案和其他组织的活动。
九、示例工作负载
9.1 概述
本节提供了L1辅助驾驶到L5自动驾驶系统的示例用例;工作负载配置/感知器设置和功能类别。目的对可能的硬件解决方案给出粗略方向。
在示例工作负载中,关于性能KPI的具体数字被略去,因为它们一方面是不断变化的,另一方面是有区分性的。需要注意,这里示例工作负载没有考虑故障操作能力。
示例工作负载
每个系统主要涵盖三个方面:
• 感知器套件:为驾驶功能的构建奠定基础。五个导出的系统在感知器套件方面有明显区分。
• 功能类别:提供有关系统可以提供的辅助驾驶和自动驾驶功能的指导。这是灵活的,实际实现可能存在差异。
• 计算指标:量化硬件性能。行业内认为KPI具体值是有区分性的,因此这里不给出。图中显示了示例系统之间的性能和复杂度趋势。
9.2 五个示例系统
下面分别介绍从L1辅助驾驶到L4自动驾驶的五个示例系统。
超低端系统
该系统代表一个示例性感知器配置,包含一个摄像头(1x3-8.3MP)和一个雷达。
其目标SAE等级为L1,功能类别包括:
• 基本NCAP场景
• 紧急刹车辅助
• 巡航辅助
• 自适应巡航控制
如其名称所示,该系统的计算需求在五个系统中位于范围底端。
低端系统
该系统代表一个示例性感知器配置,包含两个摄像头(2x8.3MP)、五个雷达、十个超声波传感器,以及一个驾驶员监控摄像头(1x8.3MP)。
其目标SAE等级为L2,功能类别包括:
• 高速公路巡航
• 车道内交通拥堵(最大50公里/小时)
• 驾驶员确认的换道辅助
• 监督泊车
该系统的计算需求在五个系统中位于低端。
中端系统
该系统代表一个示例性感知器配置,包含六个摄像头(2x 8.3MP + 4x 2.1MP)、五个雷达、十个超声波传感器。
其目标SAE等级为L2/L3,功能类别包括:
• 有条件的高速公路自动驾驶
• 有条件的极低速堵车自动驾驶
• 无监督泊车(与红外线配合)
• NCAP场景(包括交叉场景)
该系统的计算需求在五个系统中位于中端。
高端系统
该系统代表一个示例性感知器配置,包含12个摄像头(3x8.3MP + 9x 2.1MP)、五个雷达、两个激光雷达、十个超声波传感器和一个声学传感器。
其目标SAE等级为L3/L4,功能类别包括:
• 有条件的高速公路自动驾驶
• 无监督泊车
该系统的计算需求在五个系统中位于高端。
超高端系统
该系统代表一个示例性感知器配置,包含15个以上摄像头(3x8.3MP + 4x 4.9MP + 8x 2.1MP)、十个雷达、四个激光雷达、十个超声波传感器和一个声学传感器。其目标SAE等级为L4,功能类别包括:• 高度自动化高速公路驾驶• 高度自动化城区低速穿梭(最大50公里/小时)
该系统的计算需求在五个系统中位于顶端。
十、开发接口
除了功能之外,还必须关注自动驾驶系统(ADS)的开发过程。下面简要概述调试功能,这些功能用于电子控制单元(ECU)的初始开发,以启动和运行它。
事件记录部分则概述了从道路检索数据以服务于开发、功能改进和记录事件数据的其他用途。由于行业已经在汽车安全联盟中就这些方面达成一致,因此这里介绍了他们的工作。
10.1 调试功能
一些非侵入式的测量可以使用硬件进行,而其他的需要软件并带来开销。系统必须支持数据的“辅助”(非ADAS)使用。
概念上(如果不是物理上)应该有许多一致且不干扰的数据探针(或端口):应用程序的原始使用、数据记录器、调试接口和信息娱乐系统。
传感器数据和应用程序状态在检查方面是不同的。传感器数据源自处理器外部,可以透明地复制。应用程序数据可能只能通过侵入式手段可见。记录指令流是不同于记录数据流的单独机制。
对功能模块的调试接口应考虑以下几点:
• 探针点
• 每个I/O和所有应用程序状态变量
• 带宽
• 等同于传感器和应用程序
可能讨论的调试功能项如下:
• 错误注入
• 异常捕获
• 内部和外部中断
• 断点
• 监视点
• 分步执行(高低级)
• 读写内存
• 以完整数据速率记录整个数据平面
• JTAG
• 指令跟踪
• 时间戳
• HIL/SIL仿真
• 远程调试端口访问
• 计算元素的工作负载,如CPU/GPU和总线互连
• 计算元素功耗
10.2 事件记录
在事件期间记录数据出于许多不同原因非常重要,如碰撞调查、系统性能研究、故障分析、持续学习等。事件分析和调查将有助于识别经验教训,以实现业界在自动驾驶和驾驶辅助系统方面的整体改进。
计算平台需要以一种可以轻松灵活地收集数据的方式进行设计,以实现前述目标。
来源 | 智车Robot
相关文章:
自动驾驶和辅助驾驶系统的概念性架构(二)
摘要: 本篇为第二部分主要介绍底层计算单元、示例工作负载 前言 本文档参考自动驾驶计算联盟(Autonomous Vehicle Computing Consortium)关于自动驾驶和辅助驾驶计算系统的概念系统架构。该架构旨在与SAE L1-L5级别的自动驾驶保持一致。本文主要介绍包括功能模块图…...
【c++】VC编译出的版本,发布版本如何使用
目录 使用release类型进行发布 应用程序无法正常启动 0xc000007b 版本对应 vcruntime140d 应用版本 参考文章 使用release类型进行发布 应用程序无法正常启动 0xc000007b "应用程序无法正常启动 0xc000007b" 错误通常是一个 Windows 应用程序错误…...
自然语言处理(五):子词嵌入(fastText模型)
子词嵌入 在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西…...
Zabbix“专家坐诊”第202期问答汇总
问题一 Q:请问一下 zabbix 里面怎么能创建出和sh文件有关联的监控项? A: 1.使用 Zabbix Agent 主动模式:如果你在目标主机上安装了 Zabbix Agent,并且想要监控与 sh 文件相关的指标,可以创建一个自定义的…...
【c语言】输出n行按如下规律排列的数
题述:输出n行按如下规律排列的数 输入: 4(应该指的是n) 输出: 思路: 利用下标的规律求解,考察数组下标的灵活应用,我们可以看出数从1开始是斜着往下放的,那么我们如何利用两层for循环求解这道题ÿ…...
023 - STM32学习笔记 - 扩展外部SDRAM(二) - 扩展外部SDRAM实验
023- STM32学习笔记 - 扩展外部SDRAM(一) - 扩展外部SDRAM实验 本节内容中要配置的引脚很多,如果你用的开发板跟我的不一样,请详细参照STM32规格书中说明对相关GPIO引脚进行配置。 先提前对本届内容的变成步骤进行总结如下&…...
机器学习 | Python实现XGBoost极限梯度提升树模型答疑
机器学习 | MATLAB实现XGBoost极限梯度提升树模型答疑 目录 机器学习 | MATLAB实现XGBoost极限梯度提升树模型答疑问题系列问题回答问题系列 关于XGBoost有几个问题想请教一下。1.XGBoost的API有哪些种调用方法?2.参数如何调? 问题回答 XGBoost的API有2种调用方法,一种是我们…...
关于使用远程工具连接mysql数据库时,提示:Public Key Retrieval is not allowed
我在使用DBeaver工具连接 数据库时,提示:Public Key Retrieval is not allowed, 我在前一天还是可以连接的,但是今天突然无法连接了, 但是最后捣鼓了一下又可以了。 具体方法:首先先把mysql服务停了&#x…...
leetcode做题笔记117. 填充每个节点的下一个右侧节点指针 II
给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下,所有 next 指针都…...
解决博客不能解析PHP直接下载源码问题
背景: 在网站设置反向代理后,网站突然不能正常访问,而是会直接下载访问文件的PHP源码 解决办法: 由于在搞完反向代理之后,PHP版本变成了纯静态,所以网站不能正常解析;只需要把PHP版本恢复正常…...
voc 转coco
import os import random import shutil import sys import json import glob import xml.etree.ElementTree as ET""" 修改下面3个参数 1.val_files_num : 验证集的数量 2.test_files_num :测试集的数量 3.voc_annotations : voc的annotations路径 …...
【C语言每日一题】03. 对齐输出
题目来源:http://noi.openjudge.cn/ch0101/03/ 03 对齐输出 总时间限制: 1000ms 内存限制: 65536kB 问题描述 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。 输入 只有一行,包含三个整数,整数之间以一…...
七大排序完整版
目录 一、直接插入排序 (一)单趟直接插入排 1.分析核心代码 2.完整代码 (二)全部直接插入排 1.分析核心代码 2.完整代码 (三)时间复杂度和空间复杂度 二、希尔排序 (一)对…...
C语言的数据类型简介
一、基本类型 (1)六种基本类型 **字符串常量和字符常量的不同 1)‘a’为字符常量,”a”为字符串常量 2)每个字符串的结尾,编译器会自动添加一个结束标志位‘\0’ “a”包含两个字符’a’和’\0’ &#x…...
Fei-Fei Li-Lecture 16:3D Vision 【斯坦福大学李飞飞CV课程第16讲:3D Vision】
目录 P1 2D Detection and Segmentation P2 Video 2D time series P3 Focus on Two Problems P4 Many more topics in 3D Vision P5-10 Multi-View CNN P11 Experiments – Classification & Retrieval P12 3D Shape Representations P13--17 3D Shape Represen…...
【计算机视觉】YOLO 入门:训练 COCO128 数据集
一、COCO128 数据集 我们以最近大热的YOLOv8为例,回顾一下之前的安装过程: %pip install ultralytics import ultralytics ultralytics.checks()这里选择训练的数据集为:COCO128 COCO128是一个小型教程数据集,由COCOtrain2017中…...
【数分面试答疑】XX场景如何分析问题的思考
问题: 如何分析消费贷客户的用款活跃度,简单列出分析报告的思路框架 解答 这个问题是一个典型的数据分析类的面试问题,主要考察面试者对于消费贷客户的用款活跃度分析的理解和方法,以及对于数据分析报告的撰写和呈现的能力。回…...
html中如何用vue语法,并使用UI组件库 ,html中引入vue+ant-design-vue或者vue+element-plus
html中如何用vue语法,并使用UI组件库 前言 先说一下本次应用的场景,本次项目中,需要引入github中别人写好的插件,插件比较大,没有方法直接在自己项目中,把别人的项目打包合并生成html(类似于前…...
【数据结构】二叉数的存储与基本操作的实现
文章目录 🍀二叉树的存储🌳二叉树的基本操作🐱👤二叉树的创建🐱👓二叉树的遍历🎡前中后序遍历📌前序遍历📌中序遍历📌后续遍历 🛫层序遍历&am…...
使用 Netty 实现群聊功能的步骤和注意事项
文章目录 前言声明功能说明实现步骤WebSocket 服务启动Channel 初始化HTTP 请求处理HTTP 页面内容WebSocket 请求处理 效果展示总结 前言 通过之前的文章介绍,我们可以深刻认识到Netty在网络编程领域的卓越表现和强大实力。这篇文章将介绍如何利用 Netty 框架开发一…...
一篇文章搞定《WebView的优化及封装》
一篇文章搞定《WebView的优化及封装》 前言WebView的过程分析确定优化方案一、预加载,复用缓冲池(初始化优化)优化的解析说明具体的实现 二、预置模版(请求、渲染优化)优化的解析说明具体的实现1、离线包2、预获取数据…...
FreeSWITCH 1.10.10 简单图形化界面5 - 使用百度TTS
FreeSWITCH 1.10.10 简单图形化界面5 - 使用百度TTS 0、 界面预览1、注册百度AI开放平台,开通语音识别服务2、获取AppID/API Key/Secret Key3、 安装百度语音合成sdk4、合成代码5、在PBX中使用百度TTS6、音乐文件-TTS7、拨号规则-tts_command 0、 界面预览 http://…...
DP读书:不知道干什么就和我一起读书吧
DP读书:不知道干什么就和我一起读书吧 为啥写博客:好处一:记录自己的学习过程优点二:让自己在各大社群里不那么尴尬推荐三:坚持下去,找到一个能支持自己的伙伴 虽然清楚知识需要靠时间沉淀,但在…...
【Linux】进程通信 — 信号(上篇)
文章目录 📖 前言1. 什么是信号1.1 认识信号:1.2 信号的产生:1.3 信号的异步:1.4 信号的处理: 2. 前后台进程3. 系统接口3.1 signal:3.1 - 1 不能被捕捉的信号 3.2 kill:3.2 - 1 killall 3.3 ra…...
JS弃之可惜食之无味的代码冷知识
JS代码冷知识大全 1. 变量提升与暂死 在JavaScript中,变量提升是一个有趣且容易让人误解的概念。在代码中,变量和函数声明会在其所在作用域的顶部被提升,但是初始化并不会被提升。这可能导致在声明之前就使用变量,结果为undefin…...
数据结构初阶--排序
目录 一.排序的基本概念 1.1.什么是排序 1.2.排序算法的评价指标 1.3.排序的分类 二.插入排序 2.1.直接插入排序 2.2.希尔排序 三.选择排序 3.1.直接选择排序 3.2.堆排序 重建堆 建堆 排序 四.交换排序 4.1.冒泡排序 4.2.快速排序 快速排序的递归实现 法一&a…...
赴日IT 如何提高去日本做程序员的几率?
其实想去日本做IT工作只要满足学历、日语、技术三个必要条件,具备这些条件应聘就好,不具备条件你就想办法具备这些条件,在不具备条件之前不要轻易到日本去,日本IT行业虽然要求技术没有国内那么高,但也不是随便好进入的…...
c# 使用了 await、asnync task.run 三者结合使用
在 C# 异步编程中,await 和 async 关键字结合使用可以让你更方便地编写异步代码,而无需直接使用 Task.Run。然而,有时候你可能仍然需要使用 Task.Run 来在后台线程上执行某些工作,这取决于你的代码逻辑和需求。 await 和 async 关…...
C#获取屏幕缩放比例
现在1920x1080以上分辨率的高分屏电脑渐渐普及了。我们会在Windows的显示设置里看到缩放比例的设置。在Windows桌面客户端的开发中,有时会想要精确计算窗口的面积或位置。然而在默认情况下,无论WinForms的Screen.Bounds.Width属性还是WPF中SystemParamet…...
Rn实现省市区三级联动
省市区三级联动选择是个很频繁的需求,但是查看了市面上很多插件不是太老不维护就是不满足需求,就试着实现一个 这个功能无任何依赖插件 功能略简单,但能实现需求 核心代码也尽力控制在了60行左右 pca-code.json树型数据来源 Administrative-d…...
SpringCloud学习笔记(十)_SpringCloud监控
今天我们来学习一下actuator这个组件,它不是SpringCloud之后才有的,而是SpringBoot的一个starter,Spring Boot Actuator。我们使用SpringCloud的时候需要使用这个组件对应用程序进行监控与管理 在SpringBoot2.0版本中,actuator可以…...
测试理论与方法----测试流程的第二个环节:测试计划
二、软件测试分类与测试计划 1、软件测试的分类(理解掌握) 根绝需求规格说明书,在设计阶段会产出的两个文档: 概要设计(HLD):设计软件的结构,包含软件的组成,模块之间的层次关系,模块与模块之间的调用关系…...
postgresql-子查询
postgresql-子查询 简介派生表IN 操作符ALL 操作符ANY 操作符关联子查询横向子查询EXISTS 操作符 简介 子查询(Subquery)是指嵌套在其他 SELECT、INSERT、UPDATE 以及 DELETE 语句中的 查询语句。 子查询的作用与多表连接查询有点类似,也是为…...
Linux 系统运维工具之 OpenLMI
一、前要 OpenLMI(全称 Open Linux Management Infrastructure)即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目,用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上,充当抽象层,以便向系统管理…...
8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表
目录 前言环境使用模块使用数据来源分析 代码实现导入模块请求数据解析保存 数据可视化导入模块、数据年份分布情况月份分布情况出行时间情况费用分布情况人员分布情况 前言 2023年的中秋节和国庆节即将来临,好消息是,它们将连休8天!这个长假…...
【HSPCIE仿真】输入网表文件(5)基本仿真输出
仿真输出 1. 概述1.1 输出变量1.2 输出分析类型 2. 显示仿真结果2.1 .print语句基本语法示例 2.2 .probe 语句基本语法示例 2.3 子电路的输出2.4 打印控制选项.option probe.option post.option list.option ingold 2.5 .model_info打印模型参数 3. 仿真输出参数的选择3.1 直流…...
uni-app中使用iconfont彩色图标
uni-app中使用iconfont彩色图标 大家好,今天我们来学习一下uni-app中使用iconfont彩色图标,好好看,好好学,超详细的 第一步 首先,从iconfont官网(iconfont-阿里巴巴矢量图标库)选择自己需要的图…...
Hystrix: Dashboard流监控
接上两张服务熔断 开始搭建Dashboard流监控 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat…...
iconfont 图标在vue里的使用
刚好项目需要使用一个iconfont的图标,所以记录一下这个过程 1、iconfont-阿里巴巴矢量图标库 这个注册一个账号,以便后续使用下载代码时需要 2、寻找自己需要的图标 我主要是找两个图标 ,一个加号,一个减号,分别加入到…...
QT登陆注册界面练习
一、界面展示 二、主要功能界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QMainWindow(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setFixedSize(540,410); //设置固定尺寸th…...
MySQL DATE_SUB的实践
函数简介DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔)。 下面说明了DATE_SUB()函数的语法: DATE_SUB(start_date,INTERVAL expr unit); DATE_SUB()函数接受两个参数: start_date是DATE或DATETIME的起始值。 expr是一个字符串,用于确…...
OpenCV最常用的50个函数
Python版:OpenCV提供了众多图像处理算子和函数,涵盖了各种任务和技术。以下是OpenCV中一些常用的50个算子和函数: cv2.imread:用于读取图像文件。cv2.imshow:用于显示图像。cv2.imwrite:用于保存图像。cv2…...
Android AGP8.1.0组件化初探
Android AGP8.1.0组件化初探 前言: 前面两篇完成了从AGP4.2到 AGP8.1.0的升级,本文是由于有哥们留言说在AGP8.0中使用ARouter组件化有问题,于是趁休息时间尝试了一下,写了几个demo,发现都没有问题,跳转和传…...
文件修改时间能改吗?怎么改?
文件修改时间能改吗?怎么改?修改时间是每个电脑文件具备的一个属性,它代表了这个电脑文件最后一次的修改时间,是电脑系统自动赋予文件的,相信大家都应该知道。我们右击鼠标某个文件,然后点击弹出菜单里面的…...
2023年下半年软考报名注意事项!
考试注意事项: 分数线:所有科目成绩全部在45分以上(含45分)通过考试;三科目的话,必须每科目都及格才算通过考试,只有一个不合格的,本次考试其他两个无效。 出成绩时间:预…...
【LeetCode每日一题】——274.H指数
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 排序 二【题目难度】 中等 三【题目编号】 274.H指数 四【题目描述】 给你一个整数数组 ci…...
网络编程 day 4
1、多进程并发服务器根据流程图重新编写 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号,范围1024~49151 #define IP "192.168.11…...
【Java架构-版本控制】-Git基础
本文摘要 Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git 文章目录 本文摘要1.Git仓库基本概念1.1 远程仓库(Remote)1.2 本地库(Repository) 2. Git仓库…...
ubuntu 挂载硬盘操作
1. 查看磁盘 sudo fdisk -l 2. 查看UUID sudo blkid记录下待挂载硬盘的UUID, 后面要使用 ps. 如果报错,检查是否已格式化硬盘 查看新硬盘的盘符,我的是/dev/sda,用下述命令格式化 sudo mkfs -t ext4 /dev/sda3. 创建挂载点 我的是在/mnt…...
关于商品活动的H5页面技术总结
背景 在单个html文件里面使用vue3、jquery等其他第三方js库,实现规定的页面效果,其中主要功能是从商品json数据中读取数据,然后可以通过搜索框、下拉框、左侧菜单来筛选商户信息。 页面布局 技术要点: 1、通过路由来进行页面布…...