受惠于本队长无能以及诸位队员消极怠工,本周我们没有完成既定目标(目前对UvA的胜率仅60%,丢球数也无法控制在2个以内),希望诸位队员假期加倍努力,以期下周有资格以Cat为假想敌。祝王玥小姐节日快乐,以及桑若昕、陈凯和刘斓小姐节日快乐!
风林火山技术文档(程序部分)
系统架构
根据比赛规则,机器人可以遥控,也可以自动控制,考虑到搏击机器人面对的环境高度复杂,自动控制将是一个庞大繁复、任重道远的工程,故而我们一致认为机器人应主要依靠遥控,由人充当传感器和决策机构,机器人只负责将人的指令转换为具体的动作。
在遥控方案上,我们采用了许炎武的提议——放弃制作手柄,而以一台计算机作为遥控端(因此遥控端被命名为“许炎武”)。这要求“许炎武”具有与无线模块通信的能力。经过查找,我们发现nRF24L01的扩展产品nRF24LU1可以与计算机直接通信,但此款产品在中国境内无法买到,只好作罢。最后我们令“许炎武”通过串口输出信号,自己制作了一个ATmega16+nRF24L01的电路板作为转发机构(因此被命名为“Skywalker”)。硬件结构基本解决,软件结构是:“许炎武”将人的指令进行初步翻译——将抽象的指令翻译为机器人上舵机状态的列表,通过串口传给Skywalker,Skywalker将信号原样发送出去。而在机器人上,有一块同样的nRF24L01负责接收无线信号,传送给ATmega16,然后再由ATmega16生成PWM波控制舵机(机器人端被命名为“bondsdancer”)。
……
阅读全文——共2826字
自上次点球大战以来,我就一直保持沉默——原因很简单,我们开始进入组队对抗的阶段了。鉴于同样的原因,我仍然不能告诉大家我们的决策是怎么产生的,直到联赛结束,发布球队程序的那一刻——那时要将原代码一同发布,因为UvA Trilearn base是GPL授权的。
组队的同时我们产生了一个俱乐部——RoboDynasty Football Club,俱乐部中所有球队都将按“robo+朝代名称”命名,虽然目前只有一支roboSino,当然还有一支不是如此命名的(因为那是一支由3个MM组织的球队)。
……
阅读全文——共509字
今天尝试在Eclipse 3.4中安装Subversive,但遇到了下面的错误:
Cannot find a solution where both Match[requiredCapability: org.eclipse.equinox.p2.iu/org.eclipse.team.svn.feature.group/[0.7.1.I20080612-1500,0.7.1.I20080612-1500]] and Match[requiredCapability: org.eclipse.equinox.p2.iu/org.eclipse.team.svn.feature.group/[0.7.3.I20080814-1500,1.0.0)] can be satisfied.
……
阅读全文——共2786字
昨天晚上重写了点球决策,今天早上做了一下测试。结果做掉了Mersad和RoboCup2008提供binaries的除oxsy之外的所有队伍。另外还发现了WrightEagle另外一个Bug(不过shike说出现这个Bug时我已经涉嫌犯规了)。oxsy的点球风格真是令我大开眼界——进攻队员先将球踢向后半场,待甩开出击的守门员后,再快速带向球门。
下午将对vRobot的点球做些修正,决策的套路大概不会变了,需要变的是很多小地方——铲球模型和特殊判断,以及球员归位。
昨天说过“最近有了另一项想做的事情”,今天公开一下吧。这件事情就是在Mersad底层上写自己的球队。Mersad结构比UvA Trilearn复杂,实现了更多的东西,似乎还有外挂决策和学习的功能。虽然基本没有注释和文档,但在Eclipse的帮助下,我终于大致看出了Mersad的决策过程。今天将Mersad的点球略微改了一下(去除了大BUG),足以跟WrightEagle一拼。但很不幸的是,shike认为Mersad比Uva Trilearn高级很多,用Mersad写球队对其他人不公平,所以要求点球大战和联赛统一使用UvA Trilean为底层。这个纯洁、善良的愿望破灭了。
静态数据成员不是某一个对象所有,而是隶属于某个类,为这个类的所有对象共有。其作用与函数中的静态变量类似。
静态数据成员的初始化不是写在类声明中,也不是写在构造函数中,而是像成员函数一般,单独列出来,但定义时不加static关键字。如下:
class my_class
……
阅读全文——共202字