自动驾驶软件中应用层软件的开发设计分析

汽车电子

2323人已加入

描述

自动驾驶软件中,除了大家经常听到的感知、规划、机器学习、车辆控制等外,还有一部分,虽然听起来没有算法那些高大上,但是对整车功能的体验,至关重要,那就是应用层软件,主要负责功能状态机和与整车的人机交互

01.

功能状态机

功能状态机是指各项自动驾驶功能的运行状态机,比如车道偏离预警 Lane Departure Warning (LDW)、自适应巡航 Automated Adapt Cruise (ACC)、高速智能领航辅助Navigation on HIPilot(NOH)等等。

这些看起来仅仅是一些逻辑跳转,但是这些是感知、规划炫酷的前提,也就是说只有应用层检查相关的条件OK,才会启用相关功能,而且这一部分也非常复杂,因为每个功能都有一个状态机,而自动驾驶通常有十几个功能,意味着十几个状态机,有些还耦合。

下面以ACC功能的状态机来讲讲,图1就是ACC的状态机。

自动驾驶

▲图1 ACC功能的状态机

从图中可以看出ACC功能分三个大的状态,分别为ACC off、ACC on、ACC active。这个状态机仅仅是从ACC的功能标准中摘取出来,各家主机厂考虑的点不同,会存在差异,但是整体框架肯定是一样的。

ACC off到ACC on

ACC功能在初始化阶段,状态机是处于ACC off状态,当软件完成初始化,各个模块完成就绪,并且没有任何异常,状态机会切到ACC stand-by,意味着ACC功能就绪,可以激活。

ACC stand-by到ACC active

这个状态的跳转是驾驶员按下了方向盘上的激活按键,按键信号通过网关透传到自动驾驶控制器,控制器在收到激活信号之后,检查当前条件是否满足,比如是不是相关的故障、关联件状态是否OK等,当跳转条件检测OK之后,状态就会条状到ACC active,这会儿也就是进入了ACC,车辆开始受控了,在ACC active内部又有几种状态,包括速度控制和距离控制,这些是根据当前环境来自动切换的。

ACC active到ACC on

这个状态很好理解,就是驾驶员按了退出按键,或者是有一些功能抑制条件满足,比如:

1.作用在方向盘上的手力矩过大; 2.方向盘转角速率过大;

3.踩了制动踏板;

ACC active到ACC off或者ACC on到ACC off

这两种状态机的跳转,通常是由于软件检测到异常,导致功能不可用,比如有故障发生,或者是驾驶员突然解开安全带等等。

02.

人机交互

当前,大部分对比谁家自动驾驶更加厉害,通常是对比谁家的功能更牛逼,这是无可厚非的,但是人机交互也很重要,这关系到人们的驾驶体验,愿不愿意用这个功能,别用着用着就功能推出了,也没有任何提示。 人机交互主要包括仪表显示和语音提示。 仪表显示主要是包括道路、车模的显示,这里主要比的是谁家的更炫酷点,谁家的显示的更加准确,更有意思。

语音提示就更加好理解,比如当功能激活的时候,需要报ACC功能已激活,当退出时,需要报功能已退出。当双目遮挡时,报当前双目遮挡,等等,这里也主要是一些逻辑性的东西,很繁琐,各种各样的语音提示。  

03.

脱手检测

下面来看看大众ID.4X的脱手检测功能是怎么设计的,首先从硬件上,方向盘配备了三区电容式传感器,可以探测接触在方向盘的位置,是手抓还是膝盖碰触,是左侧还是右侧,如下图所示。

自动驾驶

▲图3大众ID4的方向盘结构

方向盘脱手识别(Hand Off Decetion)传感器检测电容值并发给E-BOX,J1158分析电容值信号得到驾驶员手握状态评估信号,并通过LIN发送给网关,网关将HOD电容值信号和手握状态评估信号发送给MFK/ACC,MFK综合分析HOD手握状态信号、方向盘扭矩信号和是否偏离车道等信号,判断是否发送报警信号“请接管方向盘”给仪表。

自动驾驶

▲图4 大众ID4的脱手检测逻辑

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分