robocup初学(第一篇)

第一步:

在三个不同文件夹中

在roboviz文件夹中用./roboviz.sh(打开模拟器)

在SIMSPARK_0.3.1_RELEASE中用rcsss用Tab补齐可以打开球场

在代码文件夹中用。./start.h可以上场球员

首先看了worldmodel里面的函数和变量

这里就简述下个人认为比较有用的一些函数

getUNum()//获取当前球员的号码
getLastSkill()//获得上一次策略
worldModel->getOpponent(i)//{用循环遍历得到对方球员的位置}
SkillType kickBall(kickTypeToUse,VecPosition,&target);//动作踢球
getFallenTeammate()	//判断摔倒队友的编号
getBall()//获取球的位置
collisionAvoidance()//避免碰撞
getGameTime()//获取比赛时间
getPalyMode()//获取比赛状态
SkillType goToTargetRelative(相对球员方向,角度)//指定当前球员行动方向
wordModel->getTeammate(i)	//(i为我方球员编号)			获取指定球员坐标
Temp.getDistanceTo(VecPosition(x,y,0))	//判断球员于目标距离

写策略的话要用在这个文件夹里面strategy.cc

然后可以根据场上不同形式可以在selectSkill()来选择写完的策略

这边就简单写了个11号直接冲的代码

SkillType NaoBehavior::demokick(){
    if(worldModel->getUNum()==11){
        return kickBall(KICK_11M,VecPosition(HALF_FIELD_X,0,0));
    }
    else  return SKILL_STAND;
 
    }

这里的官方的代码加上自己的部分注释

SkillType NaoBehavior::demoKickingCircle() {
    // Parameters for circle
    VecPosition center = VecPosition(-HALF_FIELD_X/2.0, 0, 0);//确定球门位置
    double circleRadius = 5.0;
    double rotateRate = 2.5;

    // Find closest player to ball
    int playerClosestToBall = -1;
    double closestDistanceToBall = 10000;
    for(int i = WO_TEAMMATE1; i < WO_TEAMMATE1+NUM_AGENTS; ++i) {
        VecPosition temp;
        int playerNum = i - WO_TEAMMATE1 + 1;
        if (worldModel->getUNum() == playerNum) {
            // This is us
            temp = worldModel->getMyPosition();
        } else {
            WorldObject* teammate = worldModel->getWorldObject( i );
            if (teammate->validPosition) {
                temp = teammate->pos;
            } else {
                continue;
            }
        }
        temp.setZ(0);

        double distanceToBall = temp.getDistanceTo(ball);
        if (distanceToBall < closestDistanceToBall) {
            playerClosestToBall = playerNum;
            closestDistanceToBall = distanceToBall;
        }//判断离球最近的球员编号
    }

    if (playerClosestToBall == worldModel->getUNum()) {
        // Have closest player kick the ball toward the center
        if(agentBodyType==0){//此类型机器人还未加入长踢
            return kickBall(KICK_FORWARD,center);
        }//让最近的人踢球
        return kickBall(KICK_8M, center);
    } else {
        // Move to circle position around center and face the center
        VecPosition localCenter = worldModel->g2l(center);
        SIM::AngDeg localCenterAngle = atan2Deg(localCenter.getY(), localCenter.getX());

        // Our desired target position on the circle
        // Compute target based on uniform number, rotate rate, and time
        VecPosition target = center + VecPosition(circleRadius,0,0).rotateAboutZ(360.0/(NUM_AGENTS-1)*(worldModel->getUNum()-(worldModel->getUNum() > playerClosestToBall ? 1 : 0)) + worldModel->getTime()*rotateRate);

        // Adjust target to not be too close to teammates or the ball
        target = collisionAvoidance(true /*teammate*/, false/*opponent*/, true/*ball*/, 1/*proximity thresh*/, .5/*collision thresh*/, target, true/*keepDistance*/);

        if (me.getDistanceTo(target) < .25 && abs(localCenterAngle) <= 10) {
            // Close enough to desired position and orientation so just stand
            return SKILL_STAND;
        } else if (me.getDistanceTo(target) < .5) {
            // Close to desired position so start turning to face center
            return goToTargetRelative(worldModel->g2l(target), localCenterAngle);
        } else {
            // Move toward target location
            return goToTarget(target);
        }
    }
}

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
·1.内容简介: --------------------------------------------------------------- 这是一个压缩包,里面是文件是东南大学Robocup3D仿真比赛的培训资料,当然包括新手上路等资料和平台和基础源代码 建议,对Robocup机器人比赛感兴趣或者东南大学以及其他高校的参赛同学下载学习。否则,会感觉我的文件都不知道什么东西。 --------------------------------------------------------------- ·2.资源使用方法 suse Linux 环境下编译运行,注意,必须安装好开发环境和仿真环境。 --------------------------------------------------------------- ·3.文件组成形式 格式:tar.gz 创建日期 时间 文件大小 文件名 2008-10-15 15:56 330,241 3D新手上路v0.4.pdf 2008-10-22 17:59 372,952 5v5rule.pdf 2008-10-22 18:05 7,919,214 rcss3d-suse-install-11.0.tar.gz 2008-10-10 23:06 343,552 RoboCup讲稿.ppt 2008-10-22 18:04 459,785 seu-3d-0.3.c.release-5v5.tar.gz 2008-10-22 18:04 240,556 SEU-3D-5v5.tar.gz 2008-10-22 17:57 208,384 SEU-3D框架结构.doc 2008-10-20 10:51 835,301 入门材料v1.01[1].zip 2008-10-22 17:58 3,197,172 毕业设计.rar 2008-11-28 23:53 170,496 第五届RoboCup竞赛获奖名单.doc 2008-10-22 18:05 1,338,283 第四届前十.rar 2008-10-15 16:25 43,520 驱动安装.doc --------------------------------------------------------------- ·4. wogeguaiguai的附言: 1.我的其他数学建模精华资源也欢迎您下载,大学生基本上都听过这个比赛吧,这个比赛比较有意思,而且获奖比例高。我的资料都是非常好的准备比赛要用的资料。我比赛结束之后,这些资料就不用啦,分享给大家!俺一年的搜索资源,同学们一朝即可获得! 2.下载本文件后,您可以获得所有信息,不必再零散下载,给您带来很大的方便。 3.10个资源分,绝对物超所值。评论后,您就可以获得11个资源分,欢迎您评论! --------------------------------------------------------------- ·5.如有问题,请在此留言,谢谢。 --------------------------------------------------------------- ·6.上传时间 2010-2-24-night
·1.内容简介: --------------------------------------------------------------- 这是一个压缩包,里面是5个文件是东南大学Robocup3D仿真比赛的源代码。对于参加Robocup比赛绝对有帮助。学习别人如何组织代码,这样可以在一个更高的起点进行编程。 建议,对Robocup机器人比赛感兴趣或者东南大学以及其他高校的参赛同学下载学习。否则,会感觉我的文件都不知道什么东西。 --------------------------------------------------------------- ·2.资源使用方法 suse Linux 环境下编译运行,注意,必须安装好开发环境和仿真环境。 --------------------------------------------------------------- ·3.文件组成形式 格式:tar.gz 源代码,在src文件夹里 --------------------------------------------------------------- ·4. wogeguaiguai的附言: 1.我的其他数学建模精华资源也欢迎您下载,大学生基本上都听过这个比赛吧,这个比赛比较有意思,而且获奖比例高。我的资料都是非常好的准备比赛要用的资料。我比赛结束之后,这些资料就不用啦,分享给大家!俺一年的搜索资源,同学们一朝即可获得! 2.下载本文件后,您可以获得所有信息,不必再零散下载,给您带来很大的方便。 3.10个资源分,绝对物超所值。评论后,您就可以获得11个资源分,欢迎您评论! --------------------------------------------------------------- ·5.如有问题,请在此留言,谢谢。 --------------------------------------------------------------- ·6.上传时间 2010-2-24-night
·1.【原创资源】内容简介: --------------------------------------------------------------- 这是一个压缩包,里面是国际赛数模训练时,做无线电信道分配所用的资料 --------------------------------------------------------------- ·2.资源使用方法 microsoft word Adobe pdf 浏览 --------------------------------------------------------------- ·3.文件组成形式 格式:doc pdf文件 /**********************************************/ 文件名如下: (Toolkit的具体使用方法)SEU-3D-TOOLKIT使用手册.pdf (三位老队员的毕业设计,可供参考).zip (各个队伍可以此源码作为基础,阅读代码后进行修改使这个基础队伍变强从而参加比赛)seu-base.tar.gz (基础源码的简要介绍)presentation.pdf (更新版本维护了调试工具toolkit,各个队伍可以使用调试工具,更快更专业地调试你们的代码)seu-base-toolkit-update.tar.bz2 (测试队伍可以用来和自己的队伍进行比赛,测试自己开发的队伍的能力到了什么程度。 )teams_for_test.zip (老队员王巍的代码阅读笔记,可供参考。)SEU-3Architecture.doc (这个是server的安装包,参考新手上路进行安装 rcss3d-suse-install-11.X.tar.gz (这个是server的配置文件,如何使用请参阅新手上路)rcssserver3D.rb (这个是开始比赛之前的配置,同样请参考新手上路进行配置agentdb.list 23D introduction by xuyuan v0.4.pdf 3d_rules.pdf FAQ FAQ~ Linux菜鸟教程 国际足球比赛规则.pdf 文件说明.pdf 新手上路.pdf 通知.doc /**********************************************/ --------------------------------------------------------------- ·4. wogeguaiguai的附言: 1.我的其他数学建模资源也欢迎您下载,都是非常好的准备比赛要用的资料。俺一年的搜索资源,同学们一朝即可获得! 2.下载本文件后,您可以获得所有信息,不必再零散下载,给您带来很大的方便。 3.10个资源分,绝对物超所值。评论后,您就可以获得11个资源分,欢迎您评论! --------------------------------------------------------------- ·5.如有问题,请在此留言,谢谢。 --------------------------------------------------------------- ·6.上传时间 2010-2-24-afternoon

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值