目    录

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

  1. 概要

    1. 目的

本文档定义AVP中安全运行相关的的架构设计。用于说明其含义,范围,主要接口,实现约束,功能列表和功能的主要对内和对外接口,以指导后续设计和开发。

  1. 适用范围

读者包括:开发人员,产品人员和测试人员。

    1. 参考文档
  1. 缩写或定义

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系统安全系统的统称,其中包含安全系统状态监控+失效保护统称为卫兵系统。

  1. 业务概述

    1. 业务视图

在技术实现上,卫兵系统分为:状态监控、故障诊断、失效保护、故障恢复、数据收集、守护进程等车端模块。同时通过数据回传通路,系统安全相关数据会上报云端,并在云端通过数据分析实现对车端功能迭代和效果优化。

  1. 功能描述

    1. 状态监控

获取系统在运行过程中,各个子模块产生各种错误信息。监控项包括车身、硬件、系统、执行器等方面的数据。

  1. 数据收集和上报和分析

发生异常时,收集相关数据,上报到云端。在云端分析回传的数据。通过对收集的数据进行统计分析,能够更加精准地给出监控的阈值,提升监控的准确性。

  1. 故障诊断

对异常信息作出梳理判断,找出问题出现的根本原因,并将根本原因输出,供故障恢复模 块执行恢复动作 。

  1. 失效保护

当系统失效时,发出刹车命令,降低车辆碰撞风险。

  1. 故障恢复

对可恢复故障采取有效恢复措施。

车身和硬件故障为不可恢复故障,发生此类故障后,卫兵应该采取的动作为:刹停,上报状态,等待维修 。

发生系统故障时,或者尝试清理磁盘,或等待适当时间,若故障依然不能恢复则转入功能故障状态。

发生执行器故障时,尝试重启执行器,若故障依然不能恢复则转入功能故障状态。

  1. 性能描述

在2m/s(7km/h)的速度下,要在故障发生后,1.5m以内实现刹车。

  1. 状态监控

覆盖率100%,发生异常后,要求在100ms内捕获异常。

  1. 故障诊断

诊断正确率100%

  1. 数据收集

收到异常后,要将异常发生前后一段时间的数据收集、打包,以用于研发分析。

  1. 失效保护

收到异常后,要求在100ms内发出刹车指令(到UMB)。

  1. 总体设计

    1. 概述

故障信息的收集包括三个大方向,分别是:

  • 算法内部故障信息,
  • 系统资源监控的故障信息,
  • 硬件故障信息。

其中:

  1. 硬件故障通过uds[W,2] 上报,然后通过数据采集模块向云端同步;
  2. 算法内部故障和系统资源监控的故障通过mlog的report机制将故障信息输入到pavaro框架中。
  3. 同时在pavaro的参数服务器中设置一个表示有系统严重故障的标志位,Uds每个周期检查此标志位,
  4. 当有系统严重故障时,UDS通过umb中心将故障发送到MCU,此时MCU进入接管流程,MCU会进行刹车,切P档,退线控的操作。
  5. 当MCU进入接管流程后,会通知canreader此时MCU进入故障处理流程,canreader发出对应的topic通知相关模块这一事件,状态机收到此topic后,将状态切换成standby,随后HMI走break和stop的流程。
  6. [W,3] MCU在 MSG_PP_Sta 消息中增加 Mcu_Sta_Mach 字段, car_info_datasource 在收到 MSG_PP_Sta消息时根据 Mcu_Sta_Mach 字段判断当前MCU的状态,并做出动作。
    1. Mcu_Sta_Mach == 12[W,4]  时, car_info_datasource 抛出 automode_request 数据,其中携带退出自动驾驶的请求,即 automode_request = false。
    2. can_sender_exec 在收到 automode_request == false 时, 退出线控,进入非自动驾驶状Mcu_Sta_Mach == other 时, 不处理。
  7. CU[W,5] 新增 0x181 frame (MSG_CAN_RD),can_sender 根据当前所处的状态,给MCU发送对应的 Havp_Alg_Sta:
    1. 非自动驾驶状态下发送 Havp_Alg_Sta = 0;
    2. 开始请求握手时发送 Havp_Alg_Sta = 2;
    3. 握手成功进入自动驾驶后发送 Havp_Alg_Sta = 1;
    1. 状态监控

Monitor的工作原理如下图所示,监控内容包含了算法内部错误,CPU,内存,flash使用超限,数据流频率异常,车身信息异常,车辆配置参数异常,硬件异常。每种错误或者异常在Monitor内部都有一个与之对应的detector负责具体的监控工作。Monitor每个周期执行时会将每个detector发现的故障汇总成一个err_code的故障列表,诊断和数据回传将获取此故障列表做后续的处理。[W,6]

  1. 故障诊断

Diagnosis模块内部维护一个根因表,根因表记录着所有可能导致系统严重故障的根因err_code。诊断模块首先从monitor获取此时的故障列表,然后在内部根因表中进行根因匹配,匹配过程如下图所示,需要通过框架提供的相关接口,查找对应err_code的上游执行器和数据源,再通过反馈回来的执行器和数据源与故障列表中的故障进行匹配,若匹配成功,则说明当前被识别的故障在故障列表中存在上游故障,因此当前被识别的故障非根因,应该从故障列表中将其删除。[W,7]

  1. 失效保护

在正常行驶中,车辆的刹停由control模块输出,并经仲裁模块转发,can_sender模块翻译为线控命令最终实现控车。当系统出现异常时,故障诊断模块发出紧急刹车指令,同时通知control模块。仲裁模块保证紧急刹车指令被最高优响应,减少时延。control模块被通知处于紧急刹车状态后,也做出对应的处理(内部状态机流转)。[W,8]

Supervisor实现进程级的失效保护,为主进程(avp-pavaro eda)失效或者SOC整体失效提供保护。MCU监听『supervisor心跳为supervisor失效』或『soc死机心跳消失』后的进行刹车和流转状态,并进行故障处理(重启SOC)。[W,9]

  1. 故障恢复

对可恢复故障采取有效恢复措施。恢复措施包括:对执行器进行reset操作、重启执行器所在线程、重启Pavaro进程、重启Soc等。[W,10]

自动驾驶代客泊车架构设计说明书相关推荐

  1. 从哲学源头思考自动驾驶网络架构设计

    摘要:本篇从哲学的角度阐述自动驾驶网络架构设计的方法. 自动驾驶网络关键在架构创新,创新不是漫无边际,毫无逻辑和实现可能性的瞎想,没有约束和方法论的瞎想是民科干的事情.我们要通过坚实的架构设计方法,铺 ...

  2. 自动驾驶功能架构的演进

    前言 为什么? 为什么同样实现NOA功能,特斯拉只用摄像头方案,而大部分OEM还会增加毫米波雷达,甚至激光雷达? 为什么5R1V架构这么受欢迎?到底有什么经典之处,这种架构会长期存在吗? 为什么L3级 ...

  3. 滴滴技术解读:自动驾驶基础架构如何以终为始,稳定先行?

    目录 1 关于自动驾驶基础架构 2 技术的主要矛盾 2.1 快速迭代与功能安全的矛盾 2.2 更多.更好的传感器与算力平台的矛盾 2.3 硬件性能与车规级安全的矛盾 3 自动驾驶的长远目标 4 自动驾 ...

  4. 滴滴自动驾驶 | 基础架构如何以终为始,稳定先行?

    桔妹导读:滴滴开始做自动驾驶可以追溯到2016年.4年来,整个行业经历过大众的狂欢与围观,也经历过资本的追捧与冷静.由于今天的技术还处于比较早期,自动驾驶作为"还没有被真正做成"的 ...

  5. 打造最可靠的自动驾驶基础架构

    文章作者:莫璐怡 Pony.ai 编辑整理:Hoh Xil 内容来源:Pony.ai & DataFun AI Talk 出品社区:DataFun 注:欢迎转载,转载请在留言区留言. 导读:本 ...

  6. 自动驾驶解决方案架构

    自动驾驶解决方案架构 自动驾驶开发平台技术架构 开发自动驾驶车辆采集.传输.存储和管理海量数据. 华为云提供海量的.高度扩展能力的存储和计算能力,以及Hadoop.Spark等大数据组件和AI一站式开 ...

  7. 架构设计之如何写架构设计说明书

    架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据 ...

  8. 架构设计说明书究竟应该包含什么

    软件的架构设计说明书主要包括功能和技术两个部分,其中功能是说明解决的某一类痛点问题:技术是为功能架构服务,通过技术架构来完成功能架构的落地和实现. 功能架构和技术架构两者是相辅相成的,相互独立而又无法 ...

  9. Tesla FSD 自动驾驶软件升级版本说明书解析一(Beta v10.11.2 Release Notes)

    Tesla FSD软件的版本说明书写得十分技术流,里面会详细列举新增了什么feature.修复了什么bug.采用了什么方法(算法还是数据等)提升了多少指标之类的信息,有助于从业人员了解Tesla的底层 ...

最新文章

  1. Color Blended Layers
  2. RH033 Unit 13 Finding and Processing Files
  3. 『前端干货篇』:你不知道的Stylus
  4. SpringMVC的请求-获得请求参数-自定义类型转换器
  5. React开发(135):ant design学习指南之form中动态form新增删除
  6. URL传Base64 造成报错 Illegal base64 character 20
  7. python如何做接口测试_python实现接口测试
  8. 1008 数组元素循环右移问题(C语言)
  9. 为什么全栈开发对物联网至关重要?
  10. 清华大学操作系统OS学习(八)——虚拟存储概念
  11. ld: i386 架构于输入文件foo.o 与 i386:x86-64 输出不兼容
  12. win7便签怎么一直在桌面显示
  13. asp.net铁路安全预警与决策支持系统
  14. 显卡排行榜天梯图2022 显卡性能天梯图2022
  15. 红帽Linux自带的光盘刻录,linux下mkisofs制作光盘映像cdrecord刻录光盘
  16. unity-shader-延迟渲染
  17. 日积月累Day4《为什么家庭会生病》
  18. 通用异步收发器UART
  19. vscode真的不太好用!
  20. php asp.net core,ASP.NET Core集成微信登录的实例图解

热门文章

  1. Vue 原理以及运行机制
  2. Guava Ordering 排序类
  3. jsp内置对象和作用
  4. matlab双引号作用,matlab中单引号(')的含义是什么,以及如何将其改为python
  5. spring-expression表达式
  6. idea将java导出word文档,Java导出word/execl文档
  7. Pikachu靶场通关秘籍(持续更新)
  8. ClipCursor与GetClipCursor 用法
  9. 【Hadoop】27-Hadoop的计数器
  10. 获取ubuntu管理员权限