首页
资讯
模拟/混合信号
嵌入式系统
处理器/DSP
测试与测量
电源管理
通信
PCB设计
EDA/IP/IC设计
医疗电子
消费电子
汽车电子
工业电子
手机设计
物联网
人工智能
EDN原创
创新/创客/DIY
FPGA
eeTV
技术杂谈
芯品汇
图集
技术实例
技术资源
视频中心
在线研讨会
EE直播间
资料下载
小测验
供应商资源
视频工作室
ASPENCORE学院
社区
论坛
博客
问答
下载中心
评测中心
面包芯语
技术文库
E币商城
社区活动
ASPENCORE学院
EDN杂志
杂志订阅
杂志声明
编辑计划表
电子杂志下载
关于我们
行业活动
2022 国际AIoT生态发展大会
2022 国际集成电路展览会暨研讨会(IIC Shanghai)
电机驱动与控制论坛
临港高峰论坛
更多行业及技术活动
工程师社群活动
汽车高峰论坛
IIC Shanghai2023
标题
简介
内容
作者
全部
标题
简介
内容
作者
全部
首页
资讯
模拟/混合信号
嵌入式系统
处理器/DSP
测试与测量
电源管理
通信
PCB设计
EDA/IP/IC设计
医疗电子
消费电子
汽车电子
工业电子
手机设计
物联网
人工智能
EDN原创
创新/创客/DIY
FPGA
eeTV
技术杂谈
芯品汇
技术实例
技术资源
视频中心
在线研讨会
EE直播间
资料下载
小测验
供应商资源
ASPENCORE学院
面包板社区
论坛
博客
问答
下载中心
评测中心
面包芯语
技术文库
E币商城
社区活动
ASPENCORE学院
EDN杂志
杂志订阅
杂志声明
编辑计划表
电子杂志下载
关于我们
双峰会
2021全球双峰会
CEO峰会回放
供应链峰会回放
全球电子成就奖
分销商卓越表现奖
图集
视频工作室
行业活动
2022 国际AIoT生态发展大会
2022 国际集成电路展览会暨研讨会(IIC Shanghai)
2022 全球 MCU 生态发展大会
电机驱动与控制论坛
射频与微波技术及应用研讨会
临港高峰论坛
更多行业及技术活动
工程师社群活动
×
杂志声明
我司杂志提供免费订阅,任何第三方平台的赠送或售卖行为均未获得我司授权,我司保留追究其法律责任的权利!
广告
智驾底软如何驱动功能开发
时间:
2023-01-18
作者:
汽车电子与软件
阅读:
对智能驾驶系统的研发流程上讲,一直希望从顶层系统架构开始到底层之间一次性讲清整个智驾系统是如何进行信息交互、应用调用和过程传递的。整个信息流的传递和过程交互包含行车控制和泊车控制……
作者 |
Ammie
ya4ednc
对智能驾驶系统的研发流程上讲,一直希望从顶层系统架构开始到底层之间一次性讲清整个智驾系统是如何进行信息交互、应用调用和过程传递的。整个信息流的传递和过程交互包含行车控制和泊车控制,两种应用在实际的控制上存在一定的差异。本文将针对泊车控制功能模式从底层软件、中间件到应用软件之间的信息交互和过程控制逻辑进行详细讲解。
通用软件架构及说明举例
当前不同供应商和主机厂
在整个软
件架构上基本都是一致的设计方式。通常采用的是从底向上的分层设计方
式,如下图所示。我们在这里不详细分析软件架构到底是怎样的构造方式,我们详细说明一下整车开发的软件过程管理和模块调用分工。
1)基础计算平台
Tier1通过接收主机厂的硬件架构,包含视频输入、视频输出、超声波、以太网、接插件位置等导致原理图、PCB新设计。
2)外围硬件驱动
Tier1根据主机厂硬件需求和架构需求对传感器进行合适的硬件驱动。如摄像头直连域控时,其驱动方式就是域控通过IIC配合一定的驱动算法直接驱动摄像头开闭。同时,也包含与超声波雷达适配、毫米波雷达适配、车身数据(线控)适配、RTK_SDK集成。
3)内部硬件平台
这个模块主要tier1/tier2根据感知需求对其处理过程包含相机加速处理、深度学习模型底层服务评估所需要的算力需求,从而对所搭载的硬件平台能力进行总体布局。如果开发是非全栈的话,tier2需要将处理完成的感知数据集成打包并制定好接口给到tier1。
4)系统软件
一般tier1会根据选型的芯片选择其适配度较好的操作系统,同时配置相应的时间管理、日志管理、安全实时内核、标准信息服务等。
5)功能软件
对于tier1分解的功能软件来说,主要包含两个层面:一种面向客户级别的顶层功能,这些功能需求主要是通过将客户需求直接拆解到系统需求来实现;另一种个是系统级别拆解到具体软件的识别端。比如感知、定位、环境建模、规控算法参数适配。算法逻辑也涉及ODD检测、ADAS新增元素部分检测能力、相机标定;支持速度、路线距离、动态感知初始化等。
6)应用软件
从软件架构设计的角度讲,应用软件设计层主要是拆解客户需求(主机厂输入的功能配置表或功能规范),一般会形成一个feature list和sub feature list。开发过程,顶层APP的每个software模块需要如上的feature list相对应,以确保所有feature都是被开发完成的。
接下来,将就一个常见的记忆泊车场景来对整个软件架构如何处理ADAS功能进行说明。
对于智能泊车(如记忆泊车)而言最重要的几个点就是常规的感知到规控处理、记忆建图处理、时间同步、日志记录、标准通信管理。
感知到决策的底软Pipeline设计
在总体要求的基础上,智能泊车需要增加停车场动态交通信息、场景融合信息、场内外车辆交接信息、场(路)侧智能设备信息以及自定义的其他扩展信息等相关地图数据信息。停车场动态信息包含停车场内或出入口关联道路上实时发生的,会对泊车过程或行人通行产生影响的一系列动态信息。
以上信息都需要专门的视觉感知模块进行有效的检测和处理。对于视觉感知处理这块可以整理一个大概的数据处理通路,本文将针对性的对底层软件角色在自动驾驶软件中的位置及模块划分方式有一个大致说明。
智能泊车感知从常规处理手段上一般都是环视+超声波融合的方式进行。而对于记忆泊车而言,还存在建图过程中对前方行驶车辆的轨迹探测和前方碰撞目标的危险程度探测。因此,通常会考虑接入行车前视摄像头信息以增强其前方探测能力。由于通常ADAS高阶系统域控为行泊一体控制器,为了提升运算效能,对于行泊感知源通常会采用分时复用的方式进行感知数据的有效处理。同时,智能泊车内部也是会采用合适的Pipeline进行功能处理。
如下图表示了智能泊车的pipeline处理策略模块。
对于智驾系统而言,前视摄像头会采用一种异构的大小眼。而对于泊车功能而言,采用其中一种宽视前视即可具备足够的识别能力同时可降低对系统的算力需求,一般只应用到了前视宽角视频图像作为输入来进行目标探测。
从处理高效能角度讲,其相应的处理方式包括:
Distortion Correction+Resize
—>模拟前广角,不丢失视场探测范围,该前视探测信息便可适配智能泊车域;
Crop+Resize
—>模拟前中距,保留一定FOV及像素密度,适用于泊车低速巡航控制;
Crop
—>模拟长焦距,不丢失远处像素密度,适用于智能泊车前方小目标紧急探测;
以上各方感知输入源最后会在中央域控中输入一个总体的感知融合算法模块,从而构建出实时的车身位姿数据以及对应的地图元素感知特征数据。
如上图所示的整个Pipeline在顶层软件运行过程中,需要开发包含应用场景分析、精准定位、地点查询、安全预警、路径方式几个方面的软件模块。其中,应用场景模块主要涉及停车场、停车场运营服务平台、MPA、APA、AVP等智能泊车系统。精准定位包括GNSS、RTK、SLAM、VIO(视觉惯性里程计)、FLD(特征定位数据)、UWB等。地点查询包括停车场及车位查询、ODD范围、兴趣点、停靠泊车(如上下车点/充电)等。安全预警部分则包括障碍物、安全冗余、禁区、限制管控、危险路段、预警措施等。每种软件模块在如上三条Pipeline里面都需要调用专门的中间件模块组合来输入到最终的大状态机做状态判断,并执行不同的泊车辅助功能。最后通过地图、定位、感知数据的协同技术输出到整体大状态机的判断逻辑实现功能的激活决策控制。
建图定位模块的关键技术主要包括车辆本身定位和车位地图扫描两个部分。该模块需要完成车辆周围信息的感知和建模,车辆自身的定位和跟踪反馈,所建立的地图和定位信息是自动泊车路径规划和控制决策模块的根源基础,也是决定车辆自动泊车质量的直接因素。
此外,需要说明的是,如上三个Pipeline的底层软件模块设计中,Pipeline1主要是通过接收完成里程计估算,生成自建地图;Pipeline3是超声波雷达数据输入处理得到的感知语义数据,与全局高精定位输入的原始定位数据进行融合后生成对应的定位相关元素;Pipeline2则是通过输入与泊车相关的视觉感知信息到视觉加速模型数据、并融合Pipeline1和Pipeline3的数据输入并应用恰当的算法进行融合数据更新;最后输入泊车大状态机里面做状态决策判断。通过最终输入的不同数据链路可以决策状态机最终激活何种泊车功能。
智能泊车在底软中的计算资源分配
对于泊车感知视频源处理端主要由摄像头Sensor自身驱动模块、视频接口驱动模块、异构核IPC通信模块以及A核接口构成。摄像头自身驱动主要是进行通用的传感器设置、曝光处理、原始数据白平衡处理、色彩空间转换等原始操作。视频接口驱动需要运行在实时核R上负责整个视频硬件加速,才能保证接入的视频原始数据无延迟。同时,充分利用异构核资源优势,作为专用核来确保视频图像高实时、高可靠性。R核采集的视频数据通过管道通信机制IPC实现数据快速传输到计算A核。最终A核通过通用的事件处理机制,处理所传输过来的视频数据,并将是视频数据进行有效封装并暴露出与硬件无关的接口供上层应用软件调用。
下面针对如上图所示的几个由底软实现的功能软件进行说明:
总体来说,底层软件的功能相对于之前分析的应用软件,其主要是需要驱动硬件获得原始感知数据,并进行一定的前端处理、封装、打包等操作后生成对应能被上层所感知的软件模块SWC输入给上层应用APP。如下图所示表示了一种完整的泊车控制在底层软件模块中的示意图。
1)感知驱动
首先,对于记忆泊车而言,需要底软调用硬件驱动文件从前端感知硬件获取超声波雷达、环视摄像头、前视摄像头的对应RawData。然后,通过标准的Autosar处理模块进行消息路由PDU、转发等。然后在数据处理模块中需要参照一定的软件处理算法进行数据处理分类。分类结果是输出车道线、车位、环境目标等信息。
2)任务分配
对于完整的记忆泊车软件架构任务分配来说,擅长高计算能力的SOC需要执行循迹巡航、探索前进、倒车辅助、泊车出库、泊车入库这几个大类的软件任务。这些任务的实现主要是通过环境信息+自车定位信息来实现轨迹规划和控制任务,同时通过中间件模块的场景管理调度原子服务+提供任务参数来补充到整个泊车控制任务中。
3)环境建模EM
在底软到中间件的建模过程中,需要构建环境建模模块EM对障碍物信息(freespace、bounding-box),路面信息(车位、阻车器、减速带)的进行有效的建模和封装。改模块对于上层应用软件的调度来说需要封装成统一接口的。且底软可通过顶层软件的不同的功能输入构建不同的配置文件进行不同的环境建模。
4)定位建图
对定位建图来说,则是需要对位置、姿态、速度、角速度、加速度、车道线的信息重建。对于记忆泊车而言,首先需要建立兼具语义特征稳定、低层特征丰富、环境适应性强的泊车地图。因此,建图过程中,需要充分融合包含行泊车的各方传感器输入(如摄像头感知输出的底层特征图及地图元素的感知输入),既能保证各方传感器相互独立,又能进行相互间的补充校验,从而提高容错性。此外,关于建图过程中需要充分考虑IMU和轮速计之间的预融合(Pre-integration),保持建图尺度的一致性,提升通用性。从底软的角度讲,除了建图结果需要呈现的地图调度接口应该是能够为上层调用外,其建图过程通常实时更新的。因此需要考虑所有的过程是需要被实时记录和可追溯。如果有建图不成功的情况,应该是需要做有效的日志记录Log的。
5)场景管理
场景管理部分则需要对车辆状态、探索前进任务、巡航任务、示教轨迹、倒车辅助任务、轨迹记录、泊入任务+车位id、泊出任务+出库方式等整个过程控制。底软和中间件需要调度对应的任务分配模块,将对应的任务实现逻辑运用到整个管理过程中。
6)控车仲裁
此外,在实时核MCU中需要对控车模块进行仲裁,需要考虑泊车紧急制动功能MEB的激活是否会与行车功能起冲突,因此在执行控制过程中需要进行指令仲裁,实现控车权的仲裁,最后底软接口需要将执行指令封装成总线信号形式发送给执行器执行。
智能泊车在底软中的存取资源分配
我们高阶自动驾驶通常需要搭载高分辨率摄像头,整个Capture驱动主线是基于基础芯片框架实现,开发过程中可以对多输入源的Graph进行支持,异常资源释放等功能。对于视觉感知处理这块可以整理一个大概的数据处理通路,可以对底层软件角色在自动驾驶软件中的位置及模块划分方式有一个大致说明。
如下图表示了从底软的角度描述了整个视频流在抓取、存储和取出的整个驱动过程。无论行泊车对于输入的三路虚拟摄像头信息分别需要进行如下方式的处理。
关于视频数据流的抓取的驱动过程包含如下几个步骤:摄像头初始化Camera Init——>图像抓取Camera Capture——>完成视频图像采集——>形成摄像头视频序列Camera Quenue——>进行视频序列Buffer管理——>实现处理视频数据的零拷贝;
从底层软件架构的角度分析,对于如上图所示的视频序列的存取处理机制(如神经网络CNN)所涉及的几个过程主要是通过CPU对DSP的调度实现。首先,通过CPU实现模型创建生成加载模型,开辟合适的内存;其次,通过CPU实现模型计算,反馈合适的计算结果;最后,模型退出后,CPU又需要释放所占用的的内存资源。
底层软件在智能泊车中的处理流程
最后,通过一个详细的底软架构图分析说明如何对应用软件模块进行调用。
①SOC硬件层调度传感器硬件相机驱动,传输原始感知数据流给到上层操作系统。这里的原始感知数据时可以通过感知框架中的任务管理模块(接收所要执行的ADAS任务子项)、相机管理模块(相机输入数据配置、相机硬线配置、相机曝光配置)、配置管理模块(主要是根据输入的ADAS任务管理子项配置合理的传感器输入数据来进行感知检测)进行数据预处理、模型搭建和数据并行处理后,生成了车道线、交通标志、障碍物信息、可行驶区域、泊车位置空间。
②为了给上层感知处理模块提供可靠、高效的视频源。中间件需要进行传感器时间同步管理、通信管理、资源管理、配置管理、OTA管理等。
时间同步管理:
将输入的各类不同的传感数据按照系统自定的时间管理策略标识打上时间戳。这类算法需要参照具体的系统架构来定,比如摄像头作为纯传感器,其曝光、视频输出处理都是完全由域控来打时间戳同步;而如果超声波雷达外接了处理ECU,则其输入输出则需要由子ECU自己控制打时间戳。但是通常底软在这部分时间同步算法上会遵循标准的Autosar标准。
通信管理:
BCU通过唤醒信号控制相应CAN消息的通信使能(交流、直流帧),RTE将应用层SWC信号转化为通信信号(Com Signals),并通过Com, PduR, CanIf, Can driver之间的标准接口函数实现CAN信号收发。
资源管理:
对于从底层软件配置、中间件调度、顶层软件调度和运算中需要利用的资源进行相应的存储管理和算力分配。
配置管理:
配置管理可以用于对输入传感器的数据进行分时控制,从不同的场景角度上讲,这块可以很好的提升对传感数据的处理效率。
③在感知处理模块包含三个层面的处理逻辑。视频输入链路进行ISP处理、Camera数据接口、Sensor驱动、输入接口驱动。计算加速模块进行神经网络(CNN/RNN)推理、图像去畸变、图像Crop+Resize预处理、图像颜色空间转换。Display输出模块需要创建数据接口、输出接口底层驱动。
④顶层软件调用底层软件封装的软件模块接口对对应的软件模块进行调用。其中通信中间件需要为应用层用户提供统一的调度接口,包含初始化、注册、发送/接收等接口。通信中间件可以基本实现多节点分布式软件模块的发布订阅通信(类似于SOA中面向服务的通信机制进行初始化、订阅注册、发送注册、消息推送、接收),且通常位于SOC和MCU之间的异地通信以及SOC内部的本地通信。
责编:Admin
文章来源及版权属于汽车电子与软件,EDN电子技术设计仅作转载分享,对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如有疑问,请联系
Demi.xia@aspencore.com
阅读全文,请先
汽车电子与软件
汽车电子与软件
进入专栏
分享到:
返回列表
上一篇:
拆解ifory安福瑞35W双USB-C口氮化镓充电器
下一篇:
拆解Redmi Watch3智能手表
微信扫一扫
一键转发
最前沿的电子设计资讯
请关注
“电子技术设计微信公众号”
推荐内容
兴趣推荐
详细解读电动自行车新国标充电口加入通讯协议
今天就来展开谈谈接口与通讯协议。
CES 2023年汽车和出行领域前瞻
2022年对于各种活动、展会(包括车展)和会议行业而言不堪回首,随着2023年的到来,各种活动开始复苏,我们也希望整个
中国光刻机发展现况及问题
作者:一杯紅咖啡在十多年前大家都怀疑的EUV技术路线时,当时台积电的研发一把手蒋尚义是这样说的:「我一生中做
中国新能源汽车在欧洲的出口情况
2022年是中国汽车出口大年,今年1-11月汽车企业共出口278.5万台,同比增长55%,欧洲也是中国新能源汽车的出口主要
拆解Redmi手环2
近期,Redmi举办了“Redmi 2023新年发布会”,一次性推出了Redmi Watch 3智能手表和Redmi手环2两款产品,此次将为
基于高速PCB的信号完整性分析
印制电路板元器件密度不断增加, 走线间距逐渐减小, 致使信号完整性成为数字电路系统设计时需着重考虑的地方,
拆解报告:荣耀亲选乐坞33W 2A1C氮化镓魔方插座
荣耀亲选推出的这一款乐坞快充魔方33W,自带1.5米线缆,还具备两个新国标五孔插孔,满足日常延长和扩展需求。同时
MPM3596简单易用的工业电源模块
目前市场上 IC 自动测试机的一些电源板卡电源轨,通过将24V母线电压经过变换器转换为128通道的功放和主控 FPG
HHOGene GPods真无线耳机评测
HHOGene GPods以6颗全彩LED灯珠,配合数字化光控技术,实现耳机灯光亮度、律动、颜色一键切换;还可以与外置壳体
拆解报告:mophie 40W双USB-C口快充车载充电器
mophie推出的这一款40W的双USB-C快充车充,具备两个独立的20W输出,具备5V3A和9V2.22A输出档位,能够满足两台苹果
拆解惠普65W双USB-C氮化镓电源适配器
HP惠普新推出的一款双USB-C笔记本电源适配器支持单口65W功率盲插和双口功率自动分配,并且支持PPS快充,对笔记
回顾2022年国内汽车品牌电气化速度
本文主要是为了总结,对国内2022年突飞猛进的车企新能源化的速度做一些梳理,每年是预测的时间点。
一加Buds Pro 2蓝牙耳机评测
近日,一加在新一代旗舰产品一加 Buds Pro 2中新增加入了空间音频这一重磅功能,但与其他产品不同的是,一加联合
FBAR滤波器的理论与设计探讨
今天我们继续学习《芯片滤波器设计》的相关知识——FBAR的理论与设计。
浅谈在FPGA上实现神经网络
本文会对 FPGA与ASIC/GPU NN 实现进行定性的比较。 通常在不同的硬件之间进行同等的比较比较困难,因为最终
市面上有哪些21700电芯品牌,看完这篇秒懂
新能源大规模的换装21700电池,是为了升级新能源产品能量密度的方法之一,而由18650电池向21700电池升级是动力
拆解报告:华为66W氮化镓卡片全能充电器
华为卡片全能充电器支持66W华为超级快充,同时支持65W PD快充和UFCS融合快充,满足日常电子设备充电需求。并具
拆解报告:COSLIGHT光宇330W便携户外电源
光宇集团COSLIGHT品牌的这款户外电源,具备330W输出功率,支持无线充电,PD和USB快充。此外还支持DC接口和点烟器
拆解报告:mophie迷你20W 5000mAh快充移动电源
mophie推出的这一款小巧的powerstation mini移动电源,采用铝合金外壳设计,小巧便携。内置5000mAh电池,支持20W
FBAR滤波器的理论与设计探讨
大家好,今天我们继续学习《芯片滤波器设计》的相关知识——FBAR的理论与设计。
意外发现:电池自放电的罪魁祸首或是这个小小的胶带
你把笔记本电脑插上电源然后走开,几小时或几天后回来发现它已经失去了一些电量,尽管它闲置且未使用。这种自放
特斯拉2016年自动驾驶技术演示视频系伪造?
近日特斯拉一名高级工程师的证词显示,特斯拉在2016年10月份发布的一段展示其自动驾驶能力的视频是伪造的,为了
英特尔IDC21项目终止?以色列海法新开发中心取消
最新消息,英特尔取消了以色列IDC21的项目,不再建造开发中心。英特尔向其提供了一份声明,表示正在采取行动,最大
苹果发布M2 Pro和M2 Max:速度提升20%,分别封装了400亿个和670亿个
苹果今天在官网上更新了MacBook Pro和Mac mini的新品。新的MacBook和Mac mini均搭载了苹果最新的M2 Pro
广告
热门评论
最新评论
换一换
换一换
热门推荐
广告
广告
EE直播间
更多>>
在线研讨会
更多>>
学院
录播课
直播课
更多>>
更多>>
更多>>
更多>>
广告
最新下载
最新帖子
最新博文
广告
面包芯语
更多>>
热门TAGS
产业前沿
消费电子
电源管理
EDN原创
处理器/DSP
技术实例
汽车电子
通信
传感器/MEMS
无线技术
人工智能
EDA/IP/IC设计
新品
模拟/混合信号/RF
制造/工艺/封装
物联网
工业电子
手机设计
查看更多TAGS
广告
×
向右滑动:上一篇
向左滑动:下一篇
我知道了