自动驾驶代客泊车架构设计说明书
目 录
0 修订历史... 2
1. 概要... 5
1.1. 目的... 5
1.2. 适用范围... 5
1.3. 参考文档... 5
2. 缩写或定义... 5
3. 业务概述... 6
3.1. 业务视图... 6
3.2. 功能描述... 6
3.2.1 状态监控... 6
3.2.2 数据收集和上报和分析... 7
3.2.3 故障诊断... 7
3.2.4 失效保护... 7
3.2.5 故障恢复... 7
3.3. 性能描述... 7
3.3.1 状态监控... 7
3.3.2 故障诊断... 8
3.3.3 数据收集... 8
3.3.4 失效保护... 8
4. 总体设计... 8
4.1. 概述... 8
4.2. 状态监控... 9
4.3. 故障诊断... 10
4.4. 失效保护... 11
4.5. 故障恢复... 12
4.6. 业务需求实现... 13
4.6.1 司机操作类... 13
4.6.2 车身类... 15
4.6.3 业务逻辑类... 17
4.6.4 HAVP 退出... 19
4.6.5 HAVP 中断... 20
4.7. 数据收集上报... 21
5. 软件故障表... 21
本文档定义AVP中安全运行相关的的架构设计。用于说明其含义,范围,主要接口,实现约束,功能列表和功能的主要对内和对外接口,以指导后续设计和开发。
读者包括:开发人员,产品人员和测试人员。
AVP(Automate Valet Parking):自主泊车产品总称。
HAVP(Home-zone Automated Valet Parking):应用于私人停车场的自主泊车产品,可通过手机APP实现50米内的远程取还车。
PAVP(Public-zone Automated Valet Parking):应用于公共停车场的自主泊车产品,实现从停车场入口到车位的无人驾驶。
CMS(Condition Monitor System):状态监控系统,该系统通过对车身及系统数据的实时监控及时发现异常,从而对车辆采取有效的保护措施,并将故障及时上传云端,报告给用户。
FPM(Failure Protection Mechanism):失效保护机制,当系统监控到失效时,对车辆采取有效的保护措施。
卫兵系统:AVP系统安全系统的统称,其中包含安全系统状态监控+失效保护统称为卫兵系统。
- 业务概述
- 业务视图
在技术实现上,卫兵系统分为:状态监控、故障诊断、失效保护、故障恢复、数据收集、守护进程等车端模块。同时通过数据回传通路,系统安全相关数据会上报云端,并在云端通过数据分析实现对车端功能迭代和效果优化。
- 功能描述
- 状态监控
获取系统在运行过程中,各个子模块产生各种错误信息。监控项包括车身、硬件、系统、执行器等方面的数据。
- 数据收集和上报和分析
发生异常时,收集相关数据,上报到云端。在云端分析回传的数据。通过对收集的数据进行统计分析,能够更加精准地给出监控的阈值,提升监控的准确性。
- 故障诊断
对异常信息作出梳理判断,找出问题出现的根本原因,并将根本原因输出,供故障恢复模 块执行恢复动作 。
- 失效保护
当系统失效时,发出刹车命令,降低车辆碰撞风险。
- 故障恢复
对可恢复故障采取有效恢复措施。
车身和硬件故障为不可恢复故障,发生此类故障后,卫兵应该采取的动作为:刹停,上报状态,等待维修 。
发生系统故障时,或者尝试清理磁盘,或等待适当时间,若故障依然不能恢复则转入功能故障状态。
发生执行器故障时,尝试重启执行器,若故障依然不能恢复则转入功能故障状态。
- 性能描述
在2m/s(7km/h)的速度下,要在故障发生后,1.5m以内实现刹车。
- 状态监控
覆盖率100%,发生异常后,要求在100ms内捕获异常。
- 故障诊断
诊断正确率100%
- 数据收集
收到异常后,要将异常发生前后一段时间的数据收集、打包,以用于研发分析。
- 失效保护
收到异常后,要求在100ms内发出刹车指令(到UMB)。
- 总体设计
故障信息的收集包括三个大方向,分别是:
- 算法内部故障信息,
- 系统资源监控的故障信息,
- 硬件故障信息。
其中:
- 硬件故障通过uds[W,2] 上报,然后通过数据采集模块向云端同步;
- 算法内部故障和系统资源监控的故障通过mlog的report机制将故障信息输入到pavaro框架中。
- 同时在pavaro的参数服务器中设置一个表示有系统严重故障的标志位,Uds每个周期检查此标志位,
- 当有系统严重故障时,UDS通过umb中心将故障发送到MCU,此时MCU进入接管流程,MCU会进行刹车,切P档,退线控的操作。
- 当MCU进入接管流程后,会通知canreader此时MCU进入故障处理流程,canreader发出对应的topic通知相关模块这一事件,状态机收到此topic后,将状态切换成standby,随后HMI走break和stop的流程。
- [W,3] MCU在 MSG_PP_Sta 消息中增加 Mcu_Sta_Mach 字段, car_info_datasource 在收到 MSG_PP_Sta消息时根据 Mcu_Sta_Mach 字段判断当前MCU的状态,并做出动作。
- Mcu_Sta_Mach == 12[W,4] 时, car_info_datasource 抛出 automode_request 数据,其中携带退出自动驾驶的请求,即 automode_request = false。
- can_sender_exec 在收到 automode_request == false 时, 退出线控,进入非自动驾驶状Mcu_Sta_Mach == other 时, 不处理。
- CU[W,5] 新增 0x181 frame (MSG_CAN_RD),can_sender 根据当前所处的状态,给MCU发送对应的 Havp_Alg_Sta:
- 非自动驾驶状态下发送 Havp_Alg_Sta = 0;
- 开始请求握手时发送 Havp_Alg_Sta = 2;
- 握手成功进入自动驾驶后发送 Havp_Alg_Sta = 1;
- 状态监控
Monitor的工作原理如下图所示,监控内容包含了算法内部错误,CPU,内存,flash使用超限,数据流频率异常,车身信息异常,车辆配置参数异常,硬件异常。每种错误或者异常在Monitor内部都有一个与之对应的detector负责具体的监控工作。Monitor每个周期执行时会将每个detector发现的故障汇总成一个err_code的故障列表,诊断和数据回传将获取此故障列表做后续的处理。[W,6]
- 故障诊断
Diagnosis模块内部维护一个根因表,根因表记录着所有可能导致系统严重故障的根因err_code。诊断模块首先从monitor获取此时的故障列表,然后在内部根因表中进行根因匹配,匹配过程如下图所示,需要通过框架提供的相关接口,查找对应err_code的上游执行器和数据源,再通过反馈回来的执行器和数据源与故障列表中的故障进行匹配,若匹配成功,则说明当前被识别的故障在故障列表中存在上游故障,因此当前被识别的故障非根因,应该从故障列表中将其删除。[W,7]
- 失效保护
在正常行驶中,车辆的刹停由control模块输出,并经仲裁模块转发,can_sender模块翻译为线控命令最终实现控车。当系统出现异常时,故障诊断模块发出紧急刹车指令,同时通知control模块。仲裁模块保证紧急刹车指令被最高优响应,减少时延。control模块被通知处于紧急刹车状态后,也做出对应的处理(内部状态机流转)。[W,8]
Supervisor实现进程级的失效保护,为主进程(avp-pavaro eda)失效或者SOC整体失效提供保护。MCU监听『supervisor心跳为supervisor失效』或『soc死机心跳消失』后的进行刹车和流转状态,并进行故障处理(重启SOC)。[W,9]
- 故障恢复
对可恢复故障采取有效恢复措施。恢复措施包括:对执行器进行reset操作、重启执行器所在线程、重启Pavaro进程、重启Soc等。[W,10]
自动驾驶代客泊车架构设计说明书相关推荐
- 从哲学源头思考自动驾驶网络架构设计
摘要:本篇从哲学的角度阐述自动驾驶网络架构设计的方法. 自动驾驶网络关键在架构创新,创新不是漫无边际,毫无逻辑和实现可能性的瞎想,没有约束和方法论的瞎想是民科干的事情.我们要通过坚实的架构设计方法,铺 ...
- 自动驾驶功能架构的演进
前言 为什么? 为什么同样实现NOA功能,特斯拉只用摄像头方案,而大部分OEM还会增加毫米波雷达,甚至激光雷达? 为什么5R1V架构这么受欢迎?到底有什么经典之处,这种架构会长期存在吗? 为什么L3级 ...
- 滴滴技术解读:自动驾驶基础架构如何以终为始,稳定先行?
目录 1 关于自动驾驶基础架构 2 技术的主要矛盾 2.1 快速迭代与功能安全的矛盾 2.2 更多.更好的传感器与算力平台的矛盾 2.3 硬件性能与车规级安全的矛盾 3 自动驾驶的长远目标 4 自动驾 ...
- 滴滴自动驾驶 | 基础架构如何以终为始,稳定先行?
桔妹导读:滴滴开始做自动驾驶可以追溯到2016年.4年来,整个行业经历过大众的狂欢与围观,也经历过资本的追捧与冷静.由于今天的技术还处于比较早期,自动驾驶作为"还没有被真正做成"的 ...
- 打造最可靠的自动驾驶基础架构
文章作者:莫璐怡 Pony.ai 编辑整理:Hoh Xil 内容来源:Pony.ai & DataFun AI Talk 出品社区:DataFun 注:欢迎转载,转载请在留言区留言. 导读:本 ...
- 自动驾驶解决方案架构
自动驾驶解决方案架构 自动驾驶开发平台技术架构 开发自动驾驶车辆采集.传输.存储和管理海量数据. 华为云提供海量的.高度扩展能力的存储和计算能力,以及Hadoop.Spark等大数据组件和AI一站式开 ...
- 架构设计之如何写架构设计说明书
架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据 ...
- 架构设计说明书究竟应该包含什么
软件的架构设计说明书主要包括功能和技术两个部分,其中功能是说明解决的某一类痛点问题:技术是为功能架构服务,通过技术架构来完成功能架构的落地和实现. 功能架构和技术架构两者是相辅相成的,相互独立而又无法 ...
- Tesla FSD 自动驾驶软件升级版本说明书解析一(Beta v10.11.2 Release Notes)
Tesla FSD软件的版本说明书写得十分技术流,里面会详细列举新增了什么feature.修复了什么bug.采用了什么方法(算法还是数据等)提升了多少指标之类的信息,有助于从业人员了解Tesla的底层 ...
最新文章
- Color Blended Layers
- RH033 Unit 13 Finding and Processing Files
- 『前端干货篇』:你不知道的Stylus
- SpringMVC的请求-获得请求参数-自定义类型转换器
- React开发(135):ant design学习指南之form中动态form新增删除
- URL传Base64 造成报错 Illegal base64 character 20
- python如何做接口测试_python实现接口测试
- 1008 数组元素循环右移问题(C语言)
- 为什么全栈开发对物联网至关重要?
- 清华大学操作系统OS学习(八)——虚拟存储概念
- ld: i386 架构于输入文件foo.o 与 i386:x86-64 输出不兼容
- win7便签怎么一直在桌面显示
- asp.net铁路安全预警与决策支持系统
- 显卡排行榜天梯图2022 显卡性能天梯图2022
- 红帽Linux自带的光盘刻录,linux下mkisofs制作光盘映像cdrecord刻录光盘
- unity-shader-延迟渲染
- 日积月累Day4《为什么家庭会生病》
- 通用异步收发器UART
- vscode真的不太好用!
- php asp.net core,ASP.NET Core集成微信登录的实例图解