homework 2

homework 2

#include "Representations/BehaviorControl/Skills.h"
#include "Representations/BehaviorControl/Libraries/LibCheck.h"
#include "Tools/BehaviorControl/Framework/Skill/CabslSkill.h"
#include "Representations/BehaviorControl/FieldBall.h"
#include "Representations/Modeling/BallModel.h"
#include "Representations/Modeling/TeamBallModel.h"

SKILL_IMPLEMENTATION(SearchBallAsRulesImpl,
{,
  IMPLEMENTS(SearchBallAsRules),
  REQUIRES(LibCheck),
  REQUIRES(BallModel),
  REQUIRES(FieldBall),
  REQUIRES(TeamBallModel),
  CALLS(WalkToTarget),
  CALLS(PathToTarget),
  CALLS(WalkAtRelativeSpeed),
  CALLS(LookLeftAndRight),
  CALLS(LookForward),

});

class SearchBallAsRulesImpl : public SearchBallAsRulesImplBase
{
    //在角色card中设置一个searchForBall的state,这个state的transition写如果看到球就turnToBall,action写执行这个skill
    option(SearchBallAsRules)
    {
      //back off
      initial_state(chaseLastBall)
      {
        transition
        {
           if(state_time>5000.f)
              //goto walkToTeamBallModel;
              goto lookAround;
        }
        action
        {
          //theLookForwardSkill();
          theLookLeftAndRightSkill();
          //theWalkToTargetSkill(Pose2f(0.8f, 0.8f, 0.8f), theBallModel.lastPerception);
            theWalkToTargetSkill(Pose2f(0.8f, 0.8f, 0.8f), Pose2f(0.8f,theTeamBallModel.position.x()-200,theTeamBallModel.position.y()) );
        }
      }
      /**
    //然后走向teamballmodel的球的位置(unuseful)
      state(walkToTeamBallModel)
      {
        transition
        {
           if(state_time>5000.f)
              goto lookAround;
        }
        action
        {
           theLookLeftAndRightSkill();
           thePathToTargetSkill(0.8f,Pose2f(theTeamBallModel.position.angle(),theTeamBallModel.position.x(),theTeamBallModel.position.y()));
        }
      }
      */
      //最后原地转圈找球
      state(lookAround)
      {
          transition
          {
            if(state_time>5000.f)
              goto walkToTeamBallModel;
          }
          action
          {
              theWalkAtRelativeSpeedSkill(Pose2f(0.8f, 0.f, 0.f));
          }
      }
    }
};

MAKE_SKILL_IMPLEMENTATION(SearchBallAsRulesImpl);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值