• 788查看
  • 0回复

[执行控制] 聊聊自动驾驶应用层软件开发

[复制链接]


该用户从未签到

发表于 29-8-2023 07:36:41 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


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

01.

功能状态机

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

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

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

聊聊自动驾驶应用层软件开发w1.jpg

▲图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.

人机交互
当前,大部分对比谁家自动驾驶更加厉害,通常是对比谁家的功能更牛逼,这是无可厚非的,但是人机交互也很重要,这关系到人们的驾驶体验,愿不愿意用这个功能,别用着用着就功能推出了,也没有任何提示。人机交互主要包括仪表显示和语音提示。
仪表显示主要是包括道路、车模的显示,这里主要比的是谁家的更炫酷点,谁家的显示的更加准确,更有意思。
聊聊自动驾驶应用层软件开发w2.jpg
▲图2 仪表显示
语音提示就更加好理解,比如当功能激活的时候,需要报ACC功能已激活,当退出时,需要报功能已退出。当双目遮挡时,报当前双目遮挡,等等,这里也主要是一些逻辑性的东西,很繁琐,各种各样的语音提示。

03.

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

▲图3大众ID4的方向盘结构方向盘脱手识别(Hand Off Decetion)传感器检测电容值并发给E-BOX,J1158分析电容值信号得到驾驶员手握状态评估信号,并通过LIN发送给网关,网关将HOD电容值信号和手握状态评估信号发送给MFK/ACC,MFK综合分析HOD手握状态信号、方向盘扭矩信号和是否偏离车道等信号,判断是否发送报警信号“请接管方向盘”给仪表。
聊聊自动驾驶应用层软件开发w4.jpg

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



该用户从未签到

发表于 18-3-2025 15:18:00 | 显示全部楼层
关于自动驾驶应用层软件开发,除了感知、规划、机器学习等技术外,应用层软件在自动驾驶系统中也扮演着至关重要的角色。其中,功能状态机是实现自动驾驶各项功能的基础。它确保了车道偏离预警、自适应巡航和高速智能领航辅助等功能的稳定运行。这些功能状态机的设计涉及到复杂的逻辑跳转,是确保系统安全、可靠运行的关键。此外,应用层软件还负责实现与整车的人机交互,这要求软件设计简洁直观,确保驾驶员在使用时能够轻松上手。总的来说,应用层软件的开发是自动驾驶技术中不可或缺的一环,它确保了自动驾驶系统的实用性和用户体验。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 18-3-2025 15:18:01 | 显示全部楼层
关于自动驾驶应用层软件开发,其重要性不言而喻。在自动驾驶软件中,应用层软件负责功能状态机和与整车的人机交互,其中功能状态机是各项自动驾驶功能的运行核心。这些功能状态机不仅管理着自动驾驶系统的基础功能如车道偏离预警和自适应巡航等,还确保了这些功能在不同场景下的稳定运行。它们作为感知、规划等功能的前提,为驾驶者提供了安全、便捷的驾驶体验。此外,应用层软件还负责处理人机交互,确保驾驶者能够轻松、准确地控制和了解车辆状态。在开发过程中,我们需要注重软件的稳定性、可靠性和实时性,以确保自动驾驶系统的整体性能。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 18-3-2025 15:18:00 | 显示全部楼层
关于自动驾驶应用层软件开发,其重要性不言而喻。在自动驾驶软件中,应用层软件是连接自动驾驶核心算法与车辆实际运行的关键纽带。其中,功能状态机作为管理各项自动驾驶功能的核心组件,如车道偏离预警、自适应巡航和高速智能领航辅助等,负责控制和协调这些功能的运行状态。

应用层软件不仅包含了功能状态机的设计,还涉及与整车的人机交互。这需要具备深入的行业知识和经验,确保软件能够准确、高效地与车辆硬件进行交互,以实现最佳的驾驶体验。此外,随着自动驾驶技术的不断发展,应用层软件在整车功能体验中的作用将愈发重要。我们需持续关注并投入研发,以推动自动驾驶技术的不断进步。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 9-4-2025 19:05 , Processed in 0.306511 second(s), 41 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.