Bhuman开始篇——自带的前锋角色文件及其他角色编写

本文介绍了Bhuman中Striker角色的文件结构,并详细讲解了CABSL(一种图形结构表示法)的工作原理。在Striker.h文件中,通过模拟比赛过程展示了角色的行为。此外,还阐述了如何添加新的角色文件以及如何重新编译项目以应用更改。编译选项包括针对SimRobot的仿真环境和实体Nao机器人的编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Striker

        进入上篇文章提到的Options下的Roles。发现其中自带一个Striker.h文件

下面我们模拟一下比赛的过程

首先返回Options目录

进入GameControl。比赛开始进入ready状态执行ReadyState.h

/** behavior for the ready state */
option(ReadyState)
{
  /* position has been reached -> stand and wait */
  initial_state(stand)
  {
    action
    {
      theHeadControlMode = HeadControl::lookForward;
      Stand();
    }
  }
}

此时机器人头朝前且站立,play状态时执行PlayingState.h

option(PlayingState)
{
  initial_state(demo)
  {
    action
    {
      Demo();
    }
  }
}

我们找到option(Demo),发现它直接跳转到Striker.h(分析见代码注释)

/** A test striker option without common decision */
option(Striker)
{
  initial_state(start)    //初始化状态start
  {
    transition
    {
      if(state_time > 1000)        //当此状态停留时间超过1000ms,跳到turnToBall状态
        goto turnToBall;
    }
    action
    {
      theHeadControlMode = HeadControl::lookForward;   //状态跳转之前头朝前站立
      Stand();
    }
  }

  state(turnToBall)
  {
    transition     //调用相关representations接口进行判断然后跳转状态
    {
      if(theLibCodeRelease.timeSinceBallWasSeen > theBehaviorParameters.ballNotSeenTimeOut)
       
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值