BHuman开始篇:CABSL语法理解

CABSL介绍

CABSL 中,有以下的基本元素:options(选项), states(状态), transitions(转换), actions(动作)。一个行为由一组在选项图中排列的选项组成。有一个单一的启动选项,所有其他选项都被调用;这是选项图的root。每个选项都是有限状态机,它?述了一个特定的行为部分,比如机器人的技能或头部运动,或者它结合了这样的基本特征。每个选项都以它的 intital_state 开始。在一个状态中,可以执行的动作可以调用另一个选项,并执行任何 c++代码,例如修改行为控制?供的 representations。此外,在每个状态内都有一项关于转换到另一个状态(在选项内)的决定。像动作一样,转换能够执行 c++代码。

Option

Option中的代码和普通的C++稍有不同,具体参考PDF第六章,option里的语法是CABSL结构(这些语法都是通过宏来实现的),具体表现为:option(name,xx,xx):括号中第一个参数为名字,一般与图的名字相同; 第二或以后的参数为变量。

transition

①common_transition是随着图执行就在不停运行的逻辑判断,不管当前执行到该option的哪一个state,一旦满足条件就会结束当前行为,goto相应的state。
②普通transition只在当前的state中判断,满足条件xxxxx,goto yyyyy state

state

①state()是某种状态,相当于“大盒子”里的“小盒子”,只能通过goto 盒子名字进入。
②initial_state是进option中的初始化状态,自动执行 initial_state中的行为。

action

①action是当前state执行的行为,可以是某些函数或者跳到别的option中。
②action_done表示state中的action执行完毕,在transition中判断action_done可以再state动作执行完后跳到别的state中。
③action_aborted表示动作未执行完或者意外终止。

CABSL语法理解

①基于c++,底层封装良好,故可带着c++语言基础并以一种新的心态看待CABSL语言,学习理解其语法。
像之前学习Qt一样( ̄︶ ̄*))
②可将option看作类函数,较容易理解。
③使用大量goto语句,其实在一定程度上简化理解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值