【决策状态机FSM(finite state machine)梳理】

背景:写论文需要,对需要有限状态机部分进行整理。论文内容是关于自动驾驶避撞决策。

参考Junior: The Stanford Entry in the Urban Challenge的有限状态机

  • 1. 行为决策
    • 1.1 基于规则的行为决策
    • 1.2 基于强化学习的行为决策
  • 2. 有限状态机FSM
    • 2.1 基础知识
      • 有限状态机四大要素:
      • 有限状态机三集合:
    • 2.2 斯坦福FSM
  • 3. Matlab/StateFlow 构建有限状态机模型
    • 需具备的知识
      • 1. 状态框架
      • 2. 状态动作
      • 3. 状态转移标签
      • 创建一个状态机的步骤:

1. 行为决策

行为决策主要分为两类
1、基于规则的行为决策
2、基于强化学习的行为决策

1.1 基于规则的行为决策

在基于规则的行为决策中,有限状态机法是最经典也是最具有代表性的方法,其具有实用性强、可靠性高和逻辑推理清晰等特点。有限状态机是一种离散的数学模型,用来研究有限个状态以及状态之间的转移。

优点:其具有易于搭建和调整,实时性好,应用简单等

缺点:其难以适应所有情况,需要进行针对性调整,其行为规则库易重叠而失效,有限状态机难以覆盖车辆可能遇到的所有工况而导致决策错误。

1.2 基于强化学习的行为决策

基于强化学习算法的行为决策方法主要是利用各种学习算法来进行决策,利用无人车配备的各种传感器,来感知周边的环境信息,传递给强化学习决策系统,此时强化学习决策系统的作用就相当于人脑,来对各类信息进行分析和处理,并结合经验来对无人驾驶汽车做出行为决策。如自动驾驶汽车公司Waymo 就通过模拟驾驶及道路测试来获取了大量的数据对其基于学习算法的行为决策系统进行训练,使得该系统对物体的检测性能得到了极大地提高,还可以对障碍物进行语义理解等
主要方法有:马尔科夫决策、Q学习算法、神经网络Q学习算法

优点:其强大的数据训练集,可以减小环境的不确定性因素带来的影响

缺点:需要大量的数据来进行预处理,计算量大,实时性差。

2. 有限状态机FSM

2.1 基础知识

有限状态机是一种离散的数学模型,用来研究有限个状态状态之间的转移

有限状态机四大要素:

**状态:**相对稳定,没有外部条件触发,一个状态会一直持续下去。
事件:
转移条件:
**动作:**不稳定,即使没有条件触发,“动作”一旦执行完毕就结束

有限状态机三集合:

有限状态集合
输入集合
状态转移规则集合

2.2 斯坦福FSM

主要参考的是Junior: The Stanford Entry in the Urban Challenge,DARPA亚军在junior的轨迹规划。文章共有33页,仅对FSM部分进行分析。
【决策状态机FSM(finite state machine)梳理】_第1张图片
此文章使用的是分层有限状态机
【决策状态机FSM(finite state machine)梳理】_第2张图片
共13个状态,此图省略两个TRAFFIC_JAM和ESCAPE。
下图为各状态的确定条件:
【决策状态机FSM(finite state machine)梳理】_第3张图片
在这里插入图片描述
针对以上三图内容的个人理解
【决策状态机FSM(finite state machine)梳理】_第4张图片
几乎所有状态都需转换至TRAFFIC_JAM和ESCAPE。
引入有限状态机FSM的有益效果:
增强以下事件的鲁棒性

  • 对于道路阻挡,车辆会考虑借道行驶,如果对向车道也被阻挡了,那么就会执行U-turn,同时RNDF文件也会进行修正,全局路径也会重新进行评估。
  • 当在路口中被挡住时,会调用hybrid A*算法,找到最近的可达出口。如图22所示。
    【决策状态机FSM(finite state machine)梳理】_第5张图片
  • 单车行被挡住时,会调用Hybrid A*来到下一个GPS点,该特性使得车辆用稀疏GPS点就可以进行RNDF导航。
  • 当试图到达检查点时,重复循环,错过当前检查点但并不会影响全局任务。该动作避免了检查点不可达时的无线循环。
  • 当在停车场找不到路径时,临时删除地图。失败的原因可能是由于把已经离开的物体当做静态障碍物了。
  • 所有场景下,超过一定时间就会使用hybrid A*导航到最近的GPS点,该状态下,就无视交通规则了。

3. Matlab/StateFlow 构建有限状态机模型

需具备的知识

状态机通常由状态名和状态动作构成

1. 状态框架

【决策状态机FSM(finite state machine)梳理】_第6张图片

2. 状态动作

初始为非活动状态,entry 事件激活,关键字entry 或en

初始为活动状态,exit 事件进入非活动,关键字exit 或ex

初始活动状态,事件没有改变活动状态- during 动作,关键字during 或du 或on

处于活动状态,有驱动事件- on event 动作,关键字on event

处于活动状态或其子状态处于活动状态,bind 动作,关键字 bind

  • 连接节点
    【决策状态机FSM(finite state machine)梳理】_第7张图片

3. 状态转移标签

(1) 注释
(2) 一个事件
(3)在 []中输入判断条件
(4) 在{}中输入满足条件后执行的动作
(5)在 /后输入转移的动作
所有的部件是可选的,但是一定要按如下顺序表达
【决策状态机FSM(finite state machine)梳理】_第8张图片

创建一个状态机的步骤:

  • 在simulink中添加Chart,进入Chart后在左侧菜单栏左键点击State,拖至界面即可
  • 添加标签
  • 添加转移

【决策状态机FSM(finite state machine)梳理】_第9张图片
【决策状态机FSM(finite state machine)梳理】_第10张图片

你可能感兴趣的:(人工智能,机器学习,自动驾驶)