• 383查看
  • 0回复

[系统功能] 如何设计ADAS系统功能状态机(一)

[复制链接]

  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2-3-2024 14:24:53 | 显示全部楼层 |阅读模式

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


    状态机模块在自动驾驶系统中扮演着关键的角色,它负责管理和控制各个功能的状态转换和行为执行。今天我们来聊聊如何设计自动驾驶系统的状态机

    0.闲谈
    作为自动驾驶系统工程师,从参与项目开始,就必不可少的与状态管理模块打交道,因为状态机在系统运行的全功能周期内起管理作用。状态机这个模块,从技术实现角度来说,并没有什么难度,在网上有很多关于FSM(Finite-state machine)的介绍文章,有兴趣可以自行了解。但如何设计得巧妙、周到、精致,却很考验设计者的底蕴与对系统的理解。大部分的ADAS功能都需要状态机进行状态管理,笔者手中就有不下十几份状态机的设计文档,包括FCW/LDW/AEB/ACC/LKA/NOP/APA/AVP等等,设计大相径庭,但细细想来内核却大同小异。其中NOP功能的状态跳转还是比较复杂的,涉及横向、纵向控制与功能降级等逻辑,需要长期的雕琢与迭代才能设计出符合项目要求的效果。笔者最近也在负责APA功能的状态机设计,虽然比较简单,但还是想借此机会对状态机模块做一点总结,也是对以往工作的回顾。1.模块概述

    状态机模块的主要作用是跟踪系统的当前状态,并根据特定的事件和条件进行状态转换。它可以根据传感器数据、车辆状态和系统输入来判断当前功能的可用性和执行条件。状态机模块还能够监控系统的运行情况,及时响应来自驾驶决策或用户的指令,并根据需要触发相应的功能执行。

    状态机模块通过定义和维护一组状态,以及状态之间的转换条件和行为,确保系统在不同的场景和条件下正确地执行相应的功能。例如,当检测到前方车辆与本车距离过近时,FCW功能会被触发,状态机模块会根据预设的逻辑条件和行为来切换到相应的预警状态,并触发声音或振动等警示措施。

    状态机模块的设计需要考虑各个功能之间的优先级、依赖关系和冲突情况。它需要具备灵活性和可扩展性,以应对不同的道路情况和交通场景。比如cat-in、cat-out情景、自动变道时的变道空间判断等等。同时,状态机模块还需要具备高效的算法和实时性能,以保证系统的快速响应和可靠性。

    总之,状态机模块在自动驾驶系统中扮演着决策和控制的关键角色。通过有效地管理和控制各个功能的状态转换和行为执行,状态机模块能够确保系统的稳定性、安全性和可靠性,它是实现ADAS功能的基础模块之一。

    2.设计原理

    状态机的设计原理是基于状态、事件和转换的概念。状态表示系统或功能在某一时刻的特定状态,事件表示触发状态转换的条件,而转换则表示状态之间的切换过程。

    首先,需要定义系统或功能的各个状态。状态可以是具体的行为状态,也可以是抽象的控制状态。每个状态都代表了系统的一个特定方面或功能,例如“Standby”、“OFF”、“Parking”等。

    接下来,定义触发状态转换的事件。事件可以是传感器的触发信号、用户的输入指令或系统内部的条件判断。通过检测事件的发生,状态机能够判断是否需要进行状态转换。

    然后,定义状态之间的转换条件和行为。转换条件是判断是否可以进行状态转换的逻辑条件,例如满足一定的时间限制、特定的传感器数据或用户指令。转换行为是在状态转换时执行的操作,例如触发警报、调整车速或切换到下一个状态。

    为了更好地设计和管理状态机,可以使用状态表和状态转换图。状态表是一个表格,列出了系统的各个状态和相应的转换条件。状态转换图则是通过节点和箭头表示各个状态和转换,直观地展示了状态之间的关系和转换规则。
    如何设计ADAS系统功能状态机(一)w1.jpg

    EA示例 状态转换图

    如何设计ADAS系统功能状态机(一)w2.jpg

    EA示例 状态表

    在设计状态机时,需要确保其特性,包括确定性、完备性和可达性。


          确定性表示每个状态都有明确的转换规则,不会出现歧义或冲突。完备性表示系统的所有可能状态都被考虑到,并定义了相应的转换规则。可达性表示系统能够从任意初始状态达到目标状态,确保状态机的可靠性和稳定性。



    通过使用状态机的设计原理,可以清晰地定义系统的各个状态和转换规则,确保系统在不同的条件下正确地执行相应的行为和功能。同时,状态机的设计原理也为系统的扩展和维护提供了便利,使得系统能够适应不断变化的需求和环境。

    ——————————————————

    今天是端午佳节,是祈福平安、驱邪消灾的日子。笔者在案前借一杯荔枝味的淡色艾尔祝各位同好端午安康,出入平安,妖邪退散!

    愿以美酒歌舞为伴的不止端午时节。

    好酒沈醉酬佳节,十分酒,一分歌。

                                                       ——苏轼《少年游端午赠黄守徐君猷》
    

    该用户从未签到

    发表于 14-3-2025 23:18:00 | 显示全部楼层
    在设计ADAS系统的功能状态机时,首要考虑的是系统的稳定性、安全性和可靠性。状态机模块作为自动驾驶系统的核心组成部分,负责管理和控制各功能的状态转换与行为执行。设计巧妙的状态机需要考虑以下几个方面:

    一、清晰定义每个状态及其转换条件,确保各状态之间的无缝过渡。

    二、为异常和紧急情况设计专门的状态和处理机制,确保系统在面对突发情况时能做出正确响应。

    三、注重状态机的可维护性和可扩展性,以便随着系统功能的增加和升级,状态机能够轻松地进行调整。

    四、充分利用现有技术,如基于有限状态机(FSM)的设计,结合ADAS系统的实际需求进行优化。

    五、在设计中注重测试与验证,确保状态机的性能满足预期。

    综上所述,设计优秀的状态机需深入理解系统需求,结合实践经验,注重细节,持续优化。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 14-3-2025 23:18:00 | 显示全部楼层
    作为汽车工程师,在设计ADAS系统功能状态机时,我们需注重模块的设计质量、精确性和实用性。状态机作为自动驾驶系统的核心部分,负责管理和控制各功能的转换与执行。设计状态机时,首要考虑系统的整体架构与需求,确保状态机的设计与之相匹配。采用有限状态机(FSM)原理进行设计,保证系统运行的逻辑性和可预测性。在设计过程中,需关注以下几点:

    一、明确系统所有可能的状态及状态间的转换条件,确保状态机的完整性。
    二、设计状态机的结构要清晰、简洁,便于后期的维护和升级。
    三、注重状态机的安全性和稳定性,确保在异常情况下能快速恢复到预设的安全状态。
    四、进行充分的测试验证,确保状态机的设计在实际应用中能够正常运行。
    综上,设计优秀的状态机需深入理解系统需求,结合实践经验与理论知识,不断进行迭代优化。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 14-3-2025 23:18:00 | 显示全部楼层
    设计ADAS系统的功能状态机是自动驾驶系统中的一项核心任务,它负责管理和控制各功能的状态转换与行为执行。在设计状态机时,需考虑以下几点:

    一、明确系统需求与功能划分,确定各状态下的行为及状态间转换条件。

    二、采用分层或模块化的设计思路,确保状态机的结构清晰,便于后期维护与升级。

    三、注重状态机的鲁棒性设计,确保在各种异常情况下系统能平稳过渡至安全状态。

    四、充分利用现有技术,如FSM(有限状态机),并结合自动驾驶系统的特点进行创新设计。

    五、设计过程中需充分测试,确保状态机的可靠性与安全性。未来,随着自动驾驶技术的不断发展,状态机的设计将更为智能与高效。期待与您共同探索这一领域的更多可能。
    回复 支持 反对

    使用道具 举报

    快速发帖

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

    本版积分规则

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

    GMT+8, 2-4-2025 18:53 , Processed in 0.462447 second(s), 38 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.