**关于robocup2d学习比赛基本流程
由 SoccerServer 控制的比赛流程分为以下步骤
(1) 裁判启动仿真平台。(可以利用 rcsoccersim 同时启动 SoccerServer 和 SoccerMonitor)
(2) 双方启动各自的 12 个 Client 程序(一般为 11 个球员智能体和 1 个教练智能体)与
平台连接。
(3) 准备完成后,裁判按下 Kick_off 按钮开始上半场 3000 周期的比赛(为实际时间的 5 分钟)。
(4) 上半场结束,SoccerServer 暂停比赛。
(5) 在下半场比赛开始之前,每个 Client 使用 reconnect 命令重新连接 SoccerServer。
(6) 下半场结束,比赛自动停止。
(7) 若比赛为平局,则进入上下半场各位 1000 周期的加时赛,当加时赛仍未平局时,则进入双方互射单刀球形式的“点球大战”决出最后胜利者**代码解读:***
现在代码基本上是基于agent或者yushan或者miracle底层代码编写;
agent2d底层代码目录
rcsc:
rcsc/action 动作类(重点)
rcsc/ann 人工神经网络类 (目前写出来的不多,如yushan、Apollo等)
rcsc/coach 在线教练类
rcsc/common 公共的类
rcsc/formation 一些阵型类(agent2d只使用了DT跑位) **关于跑位的知识:**
(  在 RoboCup 足球仿真比赛中,设计者借鉴人类足球的知识,
引入阵型的概念,使场上球员位置分布更合理,合理规划球队阵型也是设计初期显著提高球队
水平的方法之一。仿真环境下,球员通过跑位和合作保持阵型的稳定性。和现实比赛相似,
RoboCup 仿真比赛中常见的阵型由 442、433、424、532、352 等。在比赛中,球队的阵型可以
动态调整,在这个问题上,有三种基本策略:(1) 固定阵型:在最初阵型设计中定义好阵型,球员严格按照此跑位,保持不变。(2) 实时调整:根据场上时间或情况,通过全体球员都能够接收的信息实时变化调整阵
型,如:根据比分变化调整,根据时间段调整,根据己方球员体力及对方位置的改变进行调整。
*个人认为这是目前最为可靠的(没有编写智能体的情况下)都知道智能体现在大多采用学习对方的策略在进行规划的,而这个的定义很有可能在新定义跑位时干扰对方的智能学习*(3) 通讯协调 :由场上某一重要队员决定调整,并通过发送信息的方式告知全部队友。后两种调整都改变球员的内在状态,实时调整的触发机制和通讯协调的通讯协议都是预先定义好的。在实际的比赛中,球员的跑位需要有一定的灵活性,要求能够适应场上一些不同情况。我们以 CMUnited 球队为例,介绍他们在研究中对于这个问题的三种方法:
**个人认为这是需要具有一定智能体才能实现,目前更可靠的是(2)号方案。**a) 对手盯防:根据关门协议,给不同角色的球员分配不同的对手球员进行盯防,活动范
围不再仅仅依赖所安排的区域。
b) 基于球的跑位:根据球位置的实时变化,调整球员的跑位。
c) 基于吸引子和排斥子的策略跑位(strategic position by attraction and repulsion,SPAR)
将场上跑位的相关概念形式化,通过某种原则计算决定跑位。这种方法主要考虑非持球队友的
跑位配合。
CMUnited 球队基于角色进行阵型描和现实足球有着很好的相似性和适用性,并取得了很
好的成果,之后的许多站位的实现实际上都是在 CMUnited 球队工作的基础之上完成的。)rcsc/geom 一些几何类 rcsc/net 一些与server交换数据的类 rcsc/param 一些参数类 rcsc/player 一些球员类(重点)rcsc/time 时间类(一般用不到)rcsc/trainer 一些离线教练类
rcsc/util game_mode math versionsrc:
以bhv开头的都是在各种情况下的动作执行类(重要) 以role开头的都是角色类 以sample开头的都是示例,可以模仿其结构修改代码 以intertion开头的是意图类 以neck开头的是转脖子动作chain_action动作链,核心data/formations-dt 阵型文件(重要)
*可以参考上面跑位的策略进行更改***球员决策流程**
//关于这个流程推荐这个网站(写的详细但是有点乱)https://www.tceic.com/1ilgj0g1284gi850gj02423h.htmlAgent2D底层执行的过程如下:
先由Main()函数开始,首先是一些环境变量设置,启动球员类。
进入BasicClient 类中,执行Run() 函数,RunOnline()【跑位控制】 调用 PlayerAgent 类的 HandleMessage () 函数处理获得的信息,HandleMessage () 函数调用在 PlayerAgent 类中的 Action() 函数进行动作决策和Server参数的解析parse()函数。在Action()函数中依次执行ActionImpl()函数DoArmAction()函数DoViewAction()函数DoNeckAction()函数CommunicationImpl()函数其中ActionImpl()函数是主要的决策函数的框架。基于球员在场上的角色(Role)以及场上位置(Home_Position),执行相应的Role策略,这种基于角色的策略增加了球员的灵活性,使不同类型的球员具有不同的策略,对于球场动态环境具有更强的自适应性。
每个球员的决策流程从 sample_player.cpp 中的 actionImpl() 函数开始。
***最主要的是球员的跑位跟断球的策略(个人这么认为)***

Robocup 2D 的学习相关推荐

  1. Robocup 2D新手导读(入门总结)

    目前,我们团队接触Robocup 2D比赛也有好几个月了,不得不说 这个比赛也有一定难度.尤其是对于第一次接触这个比赛的我们来 说.下面是我的一些总结,希望能够帮助你们. 1.Robocup 2D的比 ...

  2. Vyond制作2D动画学习教程

    Vyond为2D动画提供了极其简单的分解视频创建过程. 你会学到什么 课程获取:Vyond制作2D动画学习教程-云桥网 您将学习如何为2d动画制作画外音 您将学习如何使用Vyond轻松创建精彩的动画视 ...

  3. 打地鼠游戏(2D)学习笔记

    打地鼠游戏(2D)学习笔记 制作流程 1. 导入素材.Sorting Layer(分层)和调整相机位置 分类建立文件夹,并导入如下素材: 为做到图层的覆盖,将图层进行分类 调整相机位置 2. 生成洞口 ...

  4. VB6编程:DirectX 2D图形学习日志20伽玛校正

    VB6编程:DirectX 2D图形学习日志20伽玛校正 教程下载地址:https://download.csdn.net/download/gosub60/13696651 作用:通过按↑和下方向键 ...

  5. 机器人技术(RoboCup 2D)如何进行一场球赛

    合工大RoboCup 2D主要函数注释 以及 机器人技术实验五十题代码已更新~博文连接如下 博文连接点这里~ 进行一场球赛: 畅所欲言 欢迎交流 1. 启动服务器.打开终端,输入rcssserver( ...

  6. Robocup 2D仿真足球机器人环境搭建快速搭建

    虽然之前已经写了Robocup 2D仿真足球机器人环境搭建,但是后面我找到了更快搭建环境的方法.而且现在很多团队都是在agent底层代码的基础上编写的.之前的方法配置的环境运行agent球队代码会出现 ...

  7. VB6编程:DirectX 2D图形学习日志4:总结前3课

    VB6编程:DirectX 2D图形学习日志4:总结前1-3课 教程下载地址:https://download.csdn.net/download/gosub60/13696651 现在,我对源码中出 ...

  8. VB6编程:DirectX 2D图形学习日志22创建卡通动画

    VB6编程:DirectX 2D图形学习日志22创建卡通动画 教程下载地址:https://download.csdn.net/download/gosub60/13696651 作用:使用多幅BMP ...

  9. 【原创】CGAL中,2D Arrangements学习笔记

    2D Arrangement类型简介: 给定一组平面曲线,2D Arrangement能够将这组曲线所组成的图形细分成顶点.边和面这些最基本的几何单位.其中给定的曲线能够相互相交,甚至能自相交.其组成 ...

最新文章

  1. 如何从0到1搭建电商促销系统?
  2. SPOJ-OPTM Optimal Marks ★★(按位建图 最小割)
  3. python write和writelines的区别,简单了解Python write writelines区别
  4. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库 总览
  5. python项目开发案例集锦_在线分享 | 在 VS Code 中一站式完成 Python 项目开发
  6. Asp.net中基于Forms验证的角色验证授权
  7. java方法嵌套数据源切换_SpringBoot AOP方式实现多数据源切换的方法
  8. 计算机三角函数习惯原创的音乐,三角函数 UNIT版
  9. 2017-2018-1 20155339 《信息安全系统设计基础》第8周学习总结
  10. 第0课:郭盛华课程_零基础学Visual Basic编程语言
  11. x2检验(chi-square test)或称卡方检验
  12. linux网卡驱动realtek,Linux系统Realtek网卡驱动安装
  13. ubuntu系统安装到移动硬盘
  14. 基于单片机万用表量程手动自动电阻电流电压设计-全套资料
  15. java 内存很高_Java服务器内存和CPU占用过高的原因
  16. TIA Portal面向对象编程入门
  17. 攻防世界 Wire1
  18. cocos 贝塞尔曲线编辑器
  19. 蚂蚁全球化无线端质量解决方案
  20. 【绝对给力】Android开发免豆资料(教程+工具+源码)下载地址汇总 【转载自51CTO】

热门文章

  1. python自动化测试学习笔记合集
  2. android studio调试,华为手机连接电脑找不到HDB interface的解决方案
  3. 数学基础——矩阵学习
  4. Django 实现搜索结果分页(筛选结果分页),以及优雅添加多个筛选条件
  5. pdf怎么转换成jpg图片效果好
  6. D7100 调节白平衡
  7. webservice 405 java_用浏览器测试Get与Post Webservice,Post一直报405错误,而Get能够成功的原因与解决方法...
  8. 各种设计模式应用场景
  9. java月份简写_Java如何以(MMM)格式显示一个月份的名称?
  10. 4.2.3偏移寻址(19)