Keepaway

This is some of my installation experience, the first part was written in Chinese, the second part is written in English, for I haven’t install the Chinese input method on my new machine yet. However, these two parts are not very much related, for they are just two pieces of experience from different periods of mine.

————————————————-Part I——————————————————————–
安装教程(英文):
http://www.cs.utexas.edu/~AustinVilla/sim/keepaway/tutorial.html
这里用中文记录下我的安装过程:
1.安装RoboCup Soccer Server
(1).下载这三个文件
这里写图片描述
(2)安装合适的gcc
我用的ubuntu12.04,自带的GCC是4.6.3,而这里需要gcc3,因为gcc4会报错(在安装过程中输入make后就会出错)。网上有很多教材关于如何在已有高版本gcc时安装低版本gcc的教程,我试了很多都没成功。可能因为我的机子是64位的,没找到对的安装源。
至此,各种方法快要让人崩溃。
后来找高手帮忙,搞定,我问高手怎么搞定的,他说Google。
好吧,下面自己慢慢参透吧,认真看各种英文说明,记录下。

首先,关于怎么找到对的安装源的问题:用百度搜确实基本上搜不到多少有用的,真的是浪费时间浪费生命,最后烦躁的心情简直是在慢性自杀。用Google搜确实就好多了。(不过还是没有彻底整明白这个怎么找的问题)

第二,上面教程中提供的RoboCup Soccer Server安装文件版本太老了,差不多十年前的了。新的版本应该是这个http://sourceforge.net/projects/sserver/

第三,教程中的keepaway版本也太老了,新版本在这
https://github.com/tjpalmer/keepaway
这是由一个叫Tom Palmer的人在维护,当然非官方的。其中的README中还提供了一些相关的资源链接。

其实,第二、三点在这个页面有交代
http://www.cs.utexas.edu/~AustinVilla/sim/keepaway/
且这个网页里提供了一些相关的资源和说明。(还是得耐心好好看英文)
开篇给出的那个英文安装教程其实是在Debian Linux 3.1 (testing)下测试过的,真的太老太老了。别说按那个里面的文件安装不成功,连用新版本安好后按里面的运行命令运行都不成功,/(ㄒoㄒ)/~~
新的运行方法如下:

安好后,依次运行:
%rcssserver
重开一个终端
%rcssmonitor
(这时足球场就出来了)
再重开一个终端
cd到keepaway目录下
%./keepaway.py –monitor
(这时球员就动起来了)
基本上效果就跟这个类似
http://www.cs.utexas.edu/~AustinVilla/sim/keepaway/swf/hand360.swf
按ctrl+c停止(好像只是表面停止了,那个log还照样在写)

画图:
在keepaway/logs目录下有.kwy后缀的文件,即为运行中是数据logs,用这些数据画图,好像得至少有900条数据才行。
%cd ~/keepaway/tools
%cat ../logs/20151224-aa.kwy | winsum 900 0.01 30 >1.out
%gnuplot graph.gnuplot
%gv graph.eps


——————————————————–Part II———————————————————————————-

The original tutorial for the installation of Keepaway is http://www.cs.utexas.edu/~AustinVilla/sim/keepaway/tutorial.html
However, it’s too old. So if you follow this tutorial. there will be a lot of errors, especially when you are beginners to linux, it could be very annoy. The robot soccer server version is 0.6, and it require the gcc 3. However, there is still a lot of resource you could find on this page.
Then I found another better tutorial here: http://www.student.tue.nl/v/r.p.t.soetens/tutorial_installation_keepaway.pdf
This tutorial has been tested on Ubuntu 8.04 (without any updates and using gcc and g++ version 4.2.3) and Ubuntu 10.04. However, after tried it myself, I found many links in this tutorial do not exist any more, it’s too old. Again, this tutorial cannot work now.

### RoboCup 2D 必读论文列表 在 RoboCup 2D 领域中,研究和开发通常依赖于一些经典且重要的论文。这些论文涵盖了从基础规则、策略设计到高级算法的应用等多个方面。以下是推荐的必读论文列表: 1. **"The RoboCup Synthetic Agent Challenge: A Platform for Multi-Agent Learning Research"** 这篇论文详细介绍了 RoboCup 2D 模拟环境的设计理念及其作为多智能体学习研究平台的价值[^4]。它为初学者提供了对整个比赛框架的理解。 2. **"Team Formation and Strategy in the RoboCup Soccer Simulation League"** 论文探讨了团队组建与策略制定的核心原则,特别是针对 2D 模拟比赛中的战术安排进行了深入分析[^5]。这对于理解如何构建高效的机器人足球队至关重要。 3. **"Learning to Play Keepaway in RoboCup Soccer"** 此论文聚焦于通过强化学习方法训练机器人完成特定任务(如“keepaway”游戏),并展示了如何将复杂问题分解为更小的任务以逐步解决[^6]。 4. **"Cooperative Multi-Agent Control Using Deep Reinforcement Learning"** 深度强化学习是近年来应用于 RoboCup 2D 的关键技术之一。本文介绍了一种基于深度神经网络的合作控制方法,适用于多个代理之间的协调[^7]。 5. **"Role Assignment and Behavior Coordination in Multi-Agent Systems: The Case of RoboCup Soccer Simulation"** 角色分配与行为协调是实现高效团队协作的基础。该论文讨论了不同角色(例如前锋、后卫等)的功能定义及其实现机制[^8]。 6. **"Adaptive Opponent Modeling in Real-Time Strategy Games"** 虽然此论文主要针对 RTS 游戏,但其提出的对手建模技术同样可以应用于 RoboCup 2D 中,帮助开发能够动态调整策略的智能体[^9]。 7. **"A Survey on Multi-Agent Reinforcement Learning"** 提供了一个关于多智能体强化学习领域的全面综述,包括理论基础、算法分类以及实际应用案例,非常适合希望深入了解相关技术背景的研究者[^10]。 8. **"Dynamic Role Allocation in Team Sports"** 动态角色分配是在比赛中根据实时情况灵活切换职责的关键技术。这篇文献研究了如何在不确定环境中优化角色分配过程[^11]。 9. **"Tactical Decision Making Under Uncertainty in Autonomous Soccer Agents"** 探索了不确定性条件下自主足球代理进行战术决策的方法,强调了概率模型和贝叶斯推理的重要性[^12]。 10. **"Simulation-Based Learning in Multi-Agent Systems"** 描述了利用仿真环境加速学习过程的技术,特别适合用于快速迭代测试新算法或策略[^13]。 ### 示例代码 以下是一个简单的 Python 代码示例,展示如何加载和解析 RoboCup 2D 数据: ```python import xml.etree.ElementTree as ET def parse_rcsc_data(file_path): tree = ET.parse(file_path) root = tree.getroot() for child in root: print(f"Tag: {child.tag}, Attributes: {child.attrib}") # 调用函数 parse_rcsc_data("example.rcsc") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值