Apollo:行为决策与状态机

行为决策

行为规划(Behavior Planning)又称为行为决策,是无人规划模块的一层,位于全局任务规划和底层的动作规划层之间,是无人车规划模块三层(任务,行为,动作)的中间层。

这一层的作用主要是依据来自上层(任务规划层)的全局最优行驶路线信息,根据当前的交通场景和环境感知的信息的理解,来确定自身当前驾驶状态,在交通规则的约束和驾驶经验的指导下规划出合理的驾驶行为。下图是无人车行为决策层的信息流:

在这里插入图片描述
行为规划部分几乎直接关系到无人车的可靠性和安全性,要设计出完全符合人类驾驶员习惯和交通规则的行为规划系统在目前来看仍然是一大挑战,目前而言实现行为规划模块的方法很多,但是其设计理念大致可以总结为两点:

  • 合理性:无人车驾驶的合理性建立在两个基础之上——交通法规和驾驶经验,其中交通法规的优先级又要高于驾驶经验,交通法规需要考虑的内容包括:靠右侧车道行驶,不能超速,换到超车时应提前开启转向灯,对于感知到的交通信号灯和交通标志,应按照其只是内容行驶,出现任何危险情况,应当能够果断地执行紧急制动等等。驾驶经验需要考虑的内容主要包括:尽量保持在原车道,不应随意变道;城市路段行驶时,不应随意加速,确保驾驶的平顺性;对于前车行驶缓慢而条件运行的情况应当果断超车等等。
  • 实时性:任何无人车系统中的行为规划都是实时的,行为规划应当能够处理复杂的动态交通场景,并且能够根据环境的变化快速的调整驾驶行为以避免危险的发生。

有限状态机

目前在无人车行为规划上并没有一个“最佳解决方案”,目前普遍认可和采用的方法是分层有限状态机(Hierarchical Finite-State Machine ,HFSM),分层有限状态机也是早期DARPA挑战赛中被许多队伍采用的行为规划方法。而有限状态机是分层有限状态机的基础。

相信很多读者都认为计算机(Computer)就是我们的笔记本,PC或者是服务器,实际上我们生活中的所有计算设备都是计算机,包括我们手里的手机,这些计算设备可以被统称为反应系统(Reactive System),因为它们都是根据来自外部世界的输入信号工作的。

有限状态机就是一个非常简单的抽象反应系统,它之所以非常简单是因为它只对特定的外界输入产生数量有限的响应。在有限状态机中,我们只能构造有限数量的状态,我们只能构造有限数量的状态,外界的输入只能让状态机在有限的状态中从一个状态跳到另一个状态。下图是一个简单的FSM:

在这里插入图片描述
FSM可进一步区分为确定型(Deterministic)和非确定型(Non-Deterministic)自动机。在确定型自动机中,每个状态对每个可能输入只有精确的一个转移。在非确定型自动机中,给定状态对给定可能输入可以没有或有多于一个转移。

分层有限状态机

当状态很多的时候,有限状态机就有可能变得非常庞大,假设有限转态机有N中状态,那么其可能的状态转换就有 N×N种,当 N 的数量很大的时候,状态机的结构也会变得更加复杂

比如在生活中,我们有吃饭、看书、看电视、睡觉、逛超市、买东西、付钱、打卡、工作、下班等等的状态。我们先试着用普通的状态机去实现,如图:
在这里插入图片描述

可以看到仅仅是10个状态,已经让我们眼花缭乱,他们密集的像蜘蛛网一样,难以维护、难以扩展。如果再往上添加状态,还要考虑各个状态与新状态之间是否存在过渡,大大的增加了我们的工作量。

那分层状态机是怎么做的呢?我们可以发现上面的10个状态其实是可以划分出生活场景的。比如吃饭、看书、看电视、睡觉我们一般在家里进行,逛超市、买东西、付钱我们一般在超市进行,打卡、工作、下班我们一般在公司进行。将在一个地方要做的事归到一个生活场景,这样把生活场景也看作一个行为状态,而这个行为状态里面还包括着小的生活状态。就是大状态机驱动小状态机,小状态机驱动状态。就好比校长要管理各个班的班主任,班主任管理整个班级。如图:

在这里插入图片描述
这里将10个状态分成的3大类:家、超市、公司。这时只需求控制角色在什么时候进入到这3个大类即可。角色在某个场景里面的具体行为不需要关心。添加新状态时也只需要关心添加在那个大类中,以及与该大类中其他状态之间的转换关系,无需担心其它大类的切换。

另外,如果觉得两层的状态机还是状态太多的话,可以定义更多的状态层次以降低跳转链接数。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值