这里主要总结下最近看的关于 CABSL 的代码和资料。
行为规范语言 CABSL (有限状态机)控制机器人在比赛中的行为。B-Human 系统中执行动作选择的部分称为行为控制。
? 下面这个图放大其实还清楚,在官方文档的 6.1 节。
执行顺序
机器人比赛执行的策略文件都在Modules/BehaviorControl/BehaviorControl/Options
下,Roles 中包含了Bhuman 源码中自带的一个Striker Demo。
Soccer.h 是 Bhuman 代码执行的根目录,Nao开机后就会执行 Soccer.h 中的代码。
在注释中触发实际足球行为的主要状态,这里调用的是Modules/BehaviorControl/BehaviorControl/Options/GameControl/HandlePenaltyState.h
,对应的状态为:按一次胸口 Nao 站起来(upright),两次进入惩罚模式(penalized),三个非惩罚(notPenalized),开始执行 Striker 的代码。
在HandlePenaltyState.h
的最后,我们可以看到: