第五章概述1.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章概述1

第五章概述动作控制B-human动作控制的模型建立是使用的CABSL(C-based Agent Specification Language)這一章节是以一个关于CABSL的简短介绍和其的一个基础的使用方法。并且介绍了如何建立一个新的行为(每个方面都用了一个例子来说明)。这章的主要部分是关于一个详尽的解释关于B-human在2013Robocup中全部足球相关动作。5.1 CABSLCABSL是一个用来形容一个agent(在一个状态机的分层结构中)的行为的语言。CABSL 的组成是由C++组成的。用一个普通C++编译器就可编译。在CABSL中分以下几个模块: options, states, transitions, actions.一个动作包括一系列的选项(option)被安排在一个选项图表内(option graph)。这里有一个简单的其他选项都会调用的开始选项(starting option),这个即是选项图表的root。每个选项(option)都是一个状态机,用来描述一个行为中的确切部分,比如一个技巧或是一个机器人头部的动作,亦或是其可组成一个基础特征。每个选项option开头均为其起始状态(state)。在状态state中,一个行为action可以被执行在被另一个选项(option)调用的情况下,就像其执行C++的语句一样,比如修改Behavior Control里的描述。更进一步,在每个状态state里都有一个转换transition的部分,其可以使另一个状态state(同一个option中的)中的针对于{状态}转换transition的决策产生。像在行为actions中,transitions转换是可以执行C++代码的。另外,在option中CABSL支持Libraries的使用。Libraries可以被用在行为actions 和转换transitions里。Libraries是功能,变量,常量的合集,在使用Libraries的情况下可以使代码更加清晰以及可读性更强,同时提供了最大的自由度如果需要进行一个多方面运算的时候。这个结构的描述会在下述几个例子中的部分中更加清晰。5.1.1 options代码【结构】option(exampleOption){ initial_state(firstState){ transition{ if(booleanExpression)goto secondState;else if(libExample.boolFunction())goto thirdState;} action{providedRepresentation.value = requiredRepresentation.value * 3;}}state(secondState){ action{SecondOption();}}state(thirdState){ transition{ if(booleanExpression)goto firstState;} action{ providedRepresentation.value = RequiredRepresentation::someEnumValue; ThirdOption();}}}option中的特殊成分是共同的一个转换环节[Common transitions],且在目标option和废弃option中是一样的。这个公共转换环节的组成的环境是随时在被检查的,并且独立于当前状态。他们是在option的开头被规定的。在各状态[State]中的转换环节只是公共转换环节[Common transitions]的分支,因为他们只在没有common transitions成立于该状态时才被赋值。目标状态和中止状态表现为正常状态,但调用option可以检查当前调用的option是否执行目标状态或中止状态。这会被使用当一个正准备被调用的option应该等待到一个已被调用的option去完成向另一个状态的转化。这个可以通过使用特殊的符号action_done和action aborted。【即target state 和aborted state仅在判断该option是否正处于该state中】如果多个option被调用进了同一个动作单元,这只有一个可能去查是否进入了一个特殊状态option(exampleCommonTransitionSpecialStates){ common_transition{ if(booleanExpression)goto firstState;else if(booleanExpression)goto secondState;}initial_state(firstState){ transition{ if(

文档评论(0)

561190792 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档