RobotCup2D仿真高层代码学习记录

RobotCup2D仿真高层代码学习记录

 在整理本篇博客之前,我已经对高层代码进行了一次大致的学习,但是在学习得到过程中并未形成好的文本记录,而且还存在着许多遗漏的问题并没有解决。所以打算在进行二次阅读代码的过程中,对每个文件代码都进行一次阅读记录,方便在以后进行复习以及交流分享。

RobotCup2D的一些基本知识

   比赛平台包括两个主要程序:soccerserver 和 soccermonitor。    Soccerserver 作为一个服务器程序模拟所有球员和球的移动、和球员通讯以及根据比赛规则控制比赛进程。
   Soccermonitor 是一个程序将从 soccerserver 那里获得场上信息显示到一个虚拟场地上,可以有许多 soccermonitor 连接到 soccerserver 上。
   以上两个部分均是由平台提供好的代码,并不是我们需要关心的部分,但我们应该需要了解这方面的内容,以便掌握整个代码的运行过程。平台具体的运行机制如下:

在这里插入图片描述
   结合这张图中,在这里谈一下我对整个平台运行机制的理解。首先服务器的作用就是为我们提供一个比赛的场地,和整个比赛进行过程中的规则。所谓的规则,我参考了一些博主的解释,大概抽象出来有如下几个模型:听觉模型、视觉模型、移动模型、碰撞模型、体力模型等。在这里就结合下图拿视觉模型来觉个例子。
在这里插入图片描述

   首先要知道代码中的视觉信息模板如下:(see ObjName Distance Direction DistChng DirChng BodyDir HeadDir)具体的参数对照上图再翻译一下相应都能明白。
   相信我们大家都应该看过足球比赛,在实际足球比赛的过程中并不是每个人都能看到足球所在的位置,我们在场上做出的移动等决策是根据我们可以获取得到的信息来判断的。这句话可以概括的不太好。通俗来说,就是我们看见队友往哪跑,我们就认为球在哪里。在robotcup中也是一样的。server对我们所能获取到的信息进行了限制,球员所能看到的范围是当前头所在方向的一个扇形,这个角度被称为view_angle,这个角度可以有多种不同的取值,当然大角度对应的需要更长的周期(1秒钟被分成了10个周期,也就是100ms一个周期,在每个周期中,球员获取服务器发送的信息,例如可看的东西,可听的东西等)才能获取到信息。接着球员所能看到的东西也会随着距离的不同而不同,主要有unum_far_length,unum_too_far_length, team_far_length, team_too_far_length,这里分别介绍。
   当dist<unum_far_length时,球员可以看到所在区域的球员的所属球队和号码;
   当unum_far_length<dist<unum_too_far_length时,球员有一定的概率能够看到号码,但是依然可以识别出所属球队;
   当unum_too_far_length<dist<team_far_length时,球员无法看到号码,但可以识别出球队;
   当team_far_length<dist<team_too_far_length时,球员有一定概率可以分辨出所处球队;
   当dist>team_too_far_length时,球员就无法识别出所属球队了。
   同时,server还添加了一个噪声机制,在视觉模型中的体现就是球员的视觉信息会受到噪音的影响,而这个噪音的影响着球员对距离的判断,而且距离越远噪音越大。
   对于其他队的几个模型,这里就不再一一的介绍了,想要深入了解的小伙伴可以参考中科大ROBOTCUP教材
   最后的话介绍一下代码的简单启动方式(Linux系统下默认代码已经解压编译完成),首先打开终端,启动运行服务器输入rcsoccersim可以看到显示球场的画面,之后cd到编译后的src文件夹下面,然后输入 /start.sh 后球员就可上场了。想要看比赛的小伙伴可以将相同的代码copy一份,然后cd到编译后的src文件夹下面,然后输入 /start.sh 后就可以看到两方球员上场了。通过ctrl+k就可以让双方球员开始比赛了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值