RoboCup Diary
Table of Contents
RoboCup 2010
- 到达
路径伦敦,经过“20多小时”的飞行,终于降落在新加坡。早就听说新加坡是"Forbidden City",很多东西都是禁止的,大街上很多禁止XX 的标志,甚至是口香糖,还附带上“By Law”,而地铁的广播上说:“在地铁和地铁 站不允许吃、喝。”不过在马路还是看到有不少人闯红灯。也许这已固化在亚洲人 的基因中了,即使新加坡制定了非常严格的法律,大家也铤而走险。不过总体来 说新加坡还是很整洁、干净的。
由于旅店是最后定的,条件有限,但是离比赛场馆很近,好在有空调,还有免费 网络。安顿好之后就在楼下的夜市转了转,这里和中国的夜市一样,狭窄的巷 子,两边挂满了货物。我们在一处“大排档”点了些吃的,感觉价格很公道,就又 去买了两瓶啤酒,没想到的是这里的酒精类饮料特别贵,一瓶啤酒的价格就抵上 了我们点的所有食物。还有附带的倒酒服务,喝完一杯之后,突然就有人冲过来 给你倒上……这边的华人很多,所以食物非常中国化,感觉很亲切;很多人中文说 得很好,一开始不知道是说中文好还是英文好,倒是他们很自然地在中、英文间 切换。
- 又 RoboCup
新加坡的地下商业街很多,从地铁站到场馆直接经过地下街道就到了,好处是不 需要经受酷热。在注册的时候受到了Local Chair的热情接待,感觉到新加坡人 的热情好客。面对巨大的场馆,心中不由感慨:RoboCup又开始了。
- 纠结
- 假日
RoboCup 2009 Graz Review
- 代码中Bug太多
- 没有发挥团队的力量
- 没有脚踏实地
失败的Hannover之行
Hannover之行的结果很糟糕,是我参加的所有RoboCup比赛中最糟糕的一次:小组 没有出现。这是我第一次代表NaoTH参加比赛,而比赛的经历与我第一次代表SEU 参加比赛是非常地相似:通宵熬夜。不过好在最后取得了一个安慰性的进球,好 歹不枉我们熬了两个通宵。与第一次参加RoboCup比赛一样,在过程有很多全新的 体验,这些是以前在参加仿真比赛中所没有体会到的。
对于如此糟糕的结果,个人总结为以下几点:
- 投入太少: 虽然 Heinrich和我说他抽签抽得很不走运:我们的分组不好,我 们总是第一个比赛,没有足够的时间准备等等。但我相信一份耕耘一份收获,整 个准备的过程中,没有一点紧张的气氛,只有我和Heinrich在比赛前一周才 开始加班,从svn提交的曲线图一定程度上反映了我们的工作量。而这次比赛 的失败可以说意料之中,只不过是以哪种形式而已。
- 过分自信: 我们队伍中有 3个人有5年以上的RoboCup经验,但是我们在项目开 发过程中总是提出很高的目标,每次开会的时候总是在讨论如果实现某某很酷 的功能、算法会怎么样,这就导致了我们没有遵循增量开发的原则,直到到达 Hannover都没有进行测试比赛,因为我们的很多功能都还没有实现。甚至在比 赛现场,我们也幻想着下场比赛之前完成这些实现,但事实上我们需要充分的 测试才能在比赛中使用,否则我们永远不知道机器人在比赛中将会做什么。
- 过于依赖已有代码: 我们的队伍以前是GermanTeam中的一员,在Aibo中也算是 很有实力的了,所以有很多以前的代码可用,我们的项目开始的时候无论从设 计还是实现上,很多都参考了GT,这并没有问题,但是在后来的具体实现上有 些照搬了GT,特别是图像处理和Xabsl,但是实践证明,GT在这两方面做得并 不完美。
- 团队组织涣散: 我不知道是不是所有的RoboCup团队在组织的时候都面临这样 的问题:很多同学很有兴趣参加,但是由于课程等其他原因,并不能保证时间 和投入,甚至一些简单的任务也不能按时完成。如何调动所有队员的积极性, 让所有人都参与进来,又不影响整个项目的开发进度一直是困扰“学生团队”的 问题。
当然从比赛中我也获得了一些经验,和德国人之间的了解进一步加深了,我想我 们的团队还是很有希望的,我们已经将 目标锁定Graz!
止于至善 —— RoboCup 2008 赛后感想
半年前曾经笑说:“代表洪堡大学来中国参加RoboCup2008的比赛”,但由于申请的 程序繁杂,一直留在东南大学RoboCup训练基地中,这也就使得我又有一次代表东 南大学参加国际比赛。当决定代表东南大学参赛的那刻开始,我就感觉到身上的 压力。虽然老师并没有给我任何压力,但自己给压力还是瞒大的。我们队伍经过 多年的努力已经是RoboCup 3D仿真中一支强队了,关键是如何超越自己。幸运的 是我们的团队中有这么多优秀的成员,大家一起工作是一种快乐,我们互相学习、 探讨问题,能够使得队伍的表现不断地提高,最终的成绩凝聚着每个人的汗水和 创意。登上领奖台、高高举起奖杯的时刻固然令人兴奋,然而我们学习和成长却 是在准备和参加比赛的过程中,所以也更加令人值得回味。
经过4年的学习,我已经是东南大学RoboCup训练基地中最年长的学生了,作为队 长不仅需要完成自己的任务,还需要负责整个队伍的运作。实际上我并不希望以 一个领导者或者上级的角色与其他队员交流,但是前面几年的实践经验告诉,要 想发挥每一个的力量,是需要要一个领导者来统一指挥的。以前的那种大家独立 研究,队长只负责整合的模式总是使得有些队员游离队伍的核心团队之外。我知 道自己还不是一个合格的“项目经理”,关于团队的协作模式在以前也看过一些软 件工程相关的理论,但是在实际操作过程中总是有这样那样的问题。我的体会是 采用软件工程的一些标准化的工具和程序使得开发更加规范,比如svn、trac的使 用使得代码管理变得容易。但是这些工具都无法解决“人”的问题,由于每个同学 的性格、能力和特长各不相同。随着队伍的发展,队伍的人数越来越多,这个问 题就越显得突兀。我觉得要处理好“人”的问题,团队文化和研究氛围是至关重要 的。
每当别人问我研究什么样的机器人或者说在电视上怎么没有看到你们的机器人, 我总是很无奈,因为人们对实物机器人的关注程度远远超过仿真,但是我并不怀 疑所做工作的价值。但是这次比赛之后,我却对3D仿真的未来担忧。近些年,不 仅没有新的学校和研究机构加入,原先的一些队伍也逐渐退出了。今年一些重量 级的人物,如Oliver,Jaschka都没有到苏州来,使得比赛的组织有些混乱。我认 为这些现象背后的原因还是由于各方面对于仿真的重视程度在减弱,特别是实物 机器人越来越多的情况下。现在想想,我真是幸运得很,当年那么困难的情况 下,许老师和谈老师还是支持我们的研究工作。在两位老师的关心和爱护下,我 们的队伍一点一点地成长。所以我想不管3D仿真的未来多么困难,东南大学应该 坚持这个项目的研究,如果有可能东南大学可以为3D仿真社区作出更多的贡献, 而且实际上前面我们也是一直这么做的。
这次真的要离开队伍了,虽然三年后还要回到东大,但此时此刻还是有些割舍不 了的感觉,因为在东南大学RoboCup训练基地这四年已经成为我生命中重要的里程 碑。最后衷心祝愿基地的明天会更好,有越来越多的充满激情的同学加入到 RoboCup这个大家庭中来。
RoboCup之旅
RoboCup之旅:在东南大学四年半的RoboCup之旅就要结束,也许是最后一次给学弟学妹们作 讲座了,虽然只有十分钟的内容,却是我四年的体会和总结。
本科素质教育
谨以此文感谢在我初涉RoboCup时给予我帮助的所有人,特别是许、谈两位老师。
2003年9月,大三的短学期,上谈老师的FoxPro课的时候,第一次看到有关RoboCup的信息,看到了2D仿真的log。与大多数人一样,第一感觉觉得这个很像游戏,但是和游戏又有很大的区别,产生了浓厚的兴趣。
2003年10月,在学校的东门口看到机器人足球赛仿真组招员的信息,为了锻炼自己和学到更多的知识,当即决定报名。在宣传会上,许映秋老师的激情演讲,使得现场的每一位同学都热血沸腾。在宣传会后很多同学都报名参加了,在这之后还有一次面试。在面试的时候还有一些紧张,因为其他一些报名的同学都是研究生了。最后我被作为后备力量吸收到队伍中,从此开始了我的RoboCup之旅。
入队之后,第一件事就是老师给每个队员发了一本入门教材(好像是从清华得到的),在看了那个入门教材之后,发现RoboCup仿真比赛的研究是十分具有挑战性的。在两位老师的带领下,每周试验室都有例会,会讨论一些工作安排,基本上我就是跟着大家的进度,师兄他们显然入门要比我快。当时就觉得自己的知识有限,对于其中有些内容不能理解,就从图书馆借了人工智能相关的书来看,但也发现很难看懂,当时也就熟悉了一些概念吧。 在接下来的日子里,我从老师和师兄那里学到了很多在书本上学不到的东西。夏威是当时的队长,对工作十分认真负责,有什么问题我一般找他询问。还有江大伟博士,他对于人工智能的理解十分深刻,从他那里学到了做研究的基本方法。
在5月份的时候,我们仿真组的全体成员还到十月军校进行拓展训练。我觉得有些项目直接挑战了人的胆识,同时也培养了我们的团队意识。
很快就到了比赛的日子,我们仿真组所有的十一名队员加上老师们,一起来到华南理工大学,应该是当年仿真组人数最多的了。由于我们所有的队员都是首次参加比赛,所以在准备过程中有个很大的失误:实验室的网络环境和比赛现场的差别很大,这样整个队伍的表现差别也就很大!许老师向她在华南理工工作的同学借了个实验室,我们就在借来的实验室里连夜调整代码。经过两天两夜的奋战,最后获得了第7名。比赛一结束,夏威就撑不住了,他已经两天两夜没睡了。而在当晚夜游珠江的时候,夏威更是感慨万分,当队长的酸甜苦辣也只有他才能体会到。
在2005年7月我有幸作为观摩人员随队到日本大阪参加了RoboCup2005国际机器人足球赛,由于我本身没有比赛的压力,所以我更多地观摩整个大赛。这次比赛拓展了我的视野,让我了解到当今最先进的机器人研究现状。由于首次参加国际比赛,2D的成绩不理想,当时我就暗下决心,一定要把3D做好,还特地拍了一张手指2006Bremen的照片,以期望来年的比赛。
经过本科时1年半时间在东南大学RoboCup队伍中的锻炼和学习,提高了我编程、研究以及合作等方面的能力,拓宽了我的视野。最终我将RoboCup确定为硕士研究生的研究方向,继续深入地研究。
RoboCup这三年
2003年9月,大三的短学期,上谈老师的FoxPro课的时候,第一次看到有关RoboCup的信息,看到了2D仿真的log。与大多数人一样,第一感觉觉得这个很像游戏。
2003年10月,在学校的东门口看到机器人足球赛仿真组招员的信息,为了锻炼自己和学到更多的知识,当即决定报名。不得不佩服许映秋老师的演讲才能,我想会后大家都是热血沸腾的。在宣传会报名之后,还有一次面试。在面试的时候还有一些紧张,因为其他一些报名的同学都是研究生了。最后我被作为后备力量吸收到队伍中,从此开始了我的RoboCup之旅。
入队之后,第一件事就是老师给每个队员发了一本入门教材(好像是从清华得到的),在看了那个入门教材之后,发现RoboCup仿真比赛是十分有趣的,但也十分复杂。每周试验室都有例会,会讨论一些工作安排,基本上我就是跟着大家的进度,师兄他们显然入门要比我快。当时就觉得自己的知识有限,对于其中有些内容不能理解,就从图书馆借了人工智能相关的书来看,但也发现很难看懂,当时也就熟悉了一些概念吧。
就这样很快就到期末考试了,寒假之前的最后一次试验室会议上,老师给我们分配了阅读代码的任务,因为UvA公布的源码量比较大,我们就每两个人看一部分,当时根据我踢球的经验,我觉得Player模块是最重要的(其实各个部分都很重要),我就要求看Player部分。回家之后,每天晚上我都会用来阅读代码,由于UvA代码的文档工作做的很好,而其中的函数实现也没有过深的算法,看起来倒也不吃力,再根据自己踢球的一些经验,发现代码是如此的简单,并不像人工智能书上写的复杂(其实,UvA代码中有很多HandCode手工代码,有些场合是最简单最有效的)。到寒假结束的时候,我已把我负责的部分整理了一遍,还画了一些流程和代码的示意图(居然使用“画图”画的)。
开学后回到实验室,有很大的冲动想该源码,让自己改动过的队伍能够运行起来,但直到这时才发现自己对于Linux还一窍不通,仿真server如何安装和启动还不知道。于是在师兄们的帮助下,开始装RedHat9,装server,编译UvA的代码,折腾了一天吧,终于可以进行仿真比赛了。接下来就是迫不急待地尝试自己改代码,然后编译运行,结果是和大家一样,效果反而不如不改的代码,这也几乎成为所有参与RoboCup队员的一个共识。
这学期还是和上学期一样,每周都开会,大家交流对于UvA代码的理解。老师给我的任务是给师兄夏威当帮手。夏威是当时的队长,对工作十分认真负责,从他身上我学到了很多。当时虽然夏威没有给我布置明确的任务,但我想这倒反而调动了我的积极性,我可以自己尝试一些东西。在吸取了一开始修改代码的经验之后,我想仅凭自己的主观想法来写代码,很难有什么效果,就开始看以前别的队伍的一些文章。记得第一篇文章是关于射门算法的,好像是江苏大学的两个硕士写的,看完之后觉得文章写得很有道理,就向夏威提出尝试这种算法,夏威觉得也可以一试,于是我就开始写自己的第一个RoboCup函数,但是我犯了很大的错误,在照着算法完成代码后并没有测试,就直接提交给夏威了,结果错误多多,连编译都没有通过:( 接下来就是修改错误,在错误修改完之后,发现该方法并不能把射门问题彻底解决,还有很多缺陷。下面很长一段时间就是对着这个函数修修改改,但是效果并不见好,当然这些效果都是人工统计出来的。
在5月份的时候,我们仿真组的全体成员还到十月军校进行拓展训练。我觉得有些项目直接挑战了人的胆识,同时也培养了我们的团队意识。
很快,伴随着每周的讨论会,我们队伍在夏威的努力下也取得了一些进步,到5月份的时候已能够轻松战胜UvA Base队了。夏威每次有想法的时候,总是先写下来,然后再去实现(我现在也遵照这个流程)。其他的队员也在不同的方向作着努力。经过一学期在RoboCup仿真组的学习,我已经基本熟悉了RoboCup仿真,原本感觉很缥缈的东西逐渐变得现实起来。
接下来就到了大三的暑假,这个暑假我只回去了10天,而就在这期间我敬爱的爷爷去世了,他给我的遗言是:“把眼光看远一些。”暑假在校期间,我一边在RoboCup实验室做一些工作,一边准备考研。由于04年的全国比赛是在10月份,所以大家都在抓紧暑假的时间提高队伍的实力。
很快就到了比赛的日子,我们仿真组所有的十一名队员加上老师们,一起来到华南理工大学,应该是当年仿真组人数最多的了。由于我们所有的队员都是首次参加比赛,所以在准备过程中有个很大的失误:实验室的网络环境和比赛现场的差别很大,这样整个队伍的表现差别也就很大!许老师很沉着:“好事多磨。”许老师向她在华南理工工作的同学借了个实验室,我们就在借来的实验室里连夜调整代码,第二天就要比赛了,所以这时候的改动不能出任何问题,所以我的任务就是夏威改的时候,我帮忙看着和测试刚编译的代码.可能是空调开的较低,一夜过来我居然敢冒了。第二天的比赛还算顺利,也算有惊无险地进入了前16强。晚上我们继续在实验室里修改代码,根据第一天比赛的情况在作一些改进,希望第二天能发挥的好一些,由于感冒,12点的时候老师就让我回去休息了,而夏威他们一直奋战到第二天天亮。第二天的比赛进行的异常激烈,我们队伍发挥的不错,力克厦门大学进入前八,最后3:0完胜中南大学,最终获得了第7名。比赛一结束,夏威就撑不住了,他已经两天两夜没睡了。而在当晚夜游珠江的时候,夏威更是感慨万分,当队长的酸甜苦辣也只有他才能体会到。
从广州回来之后,我们又要马不停蹄地准备10月底的江苏省比赛,而我们的主要对手就是刚刚获得全国冠军的南京邮电学院。但最终由于时间太短,还是只能屈居亚军。
当年的比赛全部结束了,在南邮比赛结束的那天晚上,我们RoboCup仿真试验室也由南高院搬到河海院,而队员也面临着各奔东西了,夏威他们研二的要去做自己的课题了,而我和黄典礼也要准备考研,有的同学也准备退出了。就这样我暂时离开了队伍,但其中举行RoboCup校内比赛的时候,我也到实验室做了一天的协助工作。
很快最紧张的考研结束了,在休息了一天之后,我就到实验室加入到队伍中来,因为2月份2D要参加国际比赛的资格赛,虽然当时已确定我的本科毕业设计是研究3D仿真,但2D的比赛压力很大,老师希望多一个人多一份力,我也希望能和大家并肩作战。直到大年29我们几个非南京的同学才回家,这次回家才知道春运有多么地繁忙,差点就上不了车了.国际比赛的资格赛就在年初二开始的,我们各个队员就在家关心着比赛,比赛中我们队伍发挥的不是很好,但也刚刚好出线了,东南大学RoboCup仿真组拿到了世界杯的入场卷.而我后面的就要负责3D仿真的工作了,所以寒假的时候,我翻译了一点有关3D的资料,我想我们3D也要抓紧了。
开学之后就是大四下了,已经没有课程任务了,我的毕业设计题目就是RoboCup3D仿真的研究,所以我可以全身心地投入进来。然而,在研究生考试成绩出来之后,我也遇到了问题:差公费线5分。虽然是很小的差距,但是结果却截然不同。我犹豫了:是读书还是工作,我父母当时给我找了个工作,所以强烈要求我去工作。但是我心里不服输,就这么5分,我就要放弃我刚刚开始的RoboCup3D工作,我觉得我可以做好的。经过和父母的反复协商,父母才同意我继续读书,所以我格外珍惜这个机会。
在一切都确定之后,我就全身心地投入到3D仿真队伍的开发中来,其实当时到7月底的全国比赛也就3个多月的时间,我们3D组只有两个队员,而我们比较缺乏开发底层代码的经验,所以整个进度很慢。
在2005年7月我有幸作为观摩人员随队到日本大阪参加了RoboCup2005国际机器人足球赛,由于我本身没有比赛的压力,所以我更多地观摩整个大赛。这次比赛拓展了我的视野,让我了解到当今最先进的机器人研究现状。由于首次参加国际比赛,2D的成绩不理想,当时我就暗下决心,一定要把3D做好,还特地拍了一张手指2006Bremen的照片,以期望来年的比赛。
然而回国后我们首先面临的是马上开始的全国比赛,很不幸,3D在这次比赛中只获得第7名,并且只进了一个球。但是我并没有灰心和绝望,在赛后我们进行了总结,及时找出了差距,当时谈老师给我一个长期目标就是做一个3D的Jelle Kok(2D很有影响力的队UvA的作者),我默默许下.而另一个3D队员时长娥决定退出了.
全国比赛完了之后,因为是暑假时间,我们放了一个月的假,就是利用这一个月的时间,我在家里认真学习了Linux下C++编程的一些技术,把我们的底层代码重新写了.假期结束之后,我们队伍已经强壮很多了.
05年9月,我的研究生生活正式开始了,同本科时一样,我基本是宿舍-食堂-教室-实验室几点一线,因为我的目标是2006Bremen,首先要通过的是06年2月的资格赛,为了这个目标我必须全力以赴.
期间,伊朗的一个大学举办一次名为RoboCup AI-Games的公开赛,为了检验我的工作成果,我们选择了远程参赛,正是这次比赛,使得我更加有信心了,在半决赛中我们仅以1:2的比分输给05年的世界冠军Aria.因为这段时间是队伍最困难的时间,不管是2D还是3D,老队员纷纷离队,我算是资格最老的了;而最近的比赛成绩又不理想,也没有大规模地吸收新人,但是我们熬过来了.
虽然3D仿真server的变化对于我们的准备计划有一些影响,但是在大家的同心协力下,2D和3D都顺利拿到了去德国的门票.为此,我们过年只在家呆了一周.经过国际资格赛之后,我充分认识到了与同行们联系和交流的重要性,现在几乎每天都要和国内外的同行联系,因为互联网实在是太便利了.
我知道我的目标是国际比赛,所以时刻不敢放松自己.经过整个队伍的努力工作,到了06年4月份的时候,我们同时参加两大公开赛,而且我们成功地应对了两个不同版本server的比赛环境,在伊朗公开赛中进入前八,在荷兰公开赛中仅仅是以小组排名的劣势而将冠军拱手让给后来06年的世界冠军FC Portgual.这两次同时举行的比赛无疑极大地鼓舞我们,同时也暴露出了我们的不足.我们一直用比赛来要求自己,检验自己.
2006年6月,世界杯开始了,而RoboCup2006国际机器人足球赛也同时开始了,由于种种原因,东南大学只派了我和徐春健两个学生去德国参赛.这次比赛对我来既是一次锻炼机会也是一次考验.在经过短暂的熟悉当地环境之后,紧张的比赛就要开始了.在赛场上我见到了以往只是在互联网上交流的同行们,不过此时大家却是对手.由于在学校作了比较充分的准备,所以几乎没有改动任何代码,3D顺利地进入了8强.然而在残酷的淘汰赛中,则由于实力不够,而输给了浙江大学,最后获得了第6名.
第6名的成绩虽然不错了,但是我觉得我们可以做得更好.回国之后,经过短暂的休息和调整,我们将目标放在了下一个比赛–全国比赛中,记得许老师给我的任务是进入决赛,"因为我们现在已经是全国前三了".而此时3D组又只剩我一个人了,蒋春露毕业要去教务处报到了,新招入的学弟们还处于熟悉和摸索阶段.但是我仍然有信心,因为我知道我们和其他队伍的差距并不大,"我一定能成功的"我一直这样对自己说.
经过100多天的努力,终于在全国比赛中一路杀进决赛,其中还战胜了RoboCup2006世界亚军中科大队,然而在决赛中我最没想到的事情发生了:由于agent还不够智能,加上策略上的失误,我们和对手都没有太好的机会,最后只能以抛硬币的方式决出冠军,很遗憾没有得到幸运女神的亲睐,最后只能屈居亚军.最后赛场中报以热烈的掌声,我想这是对我们的努力最好的评价吧.
这就是足球,这就是生活.
天道酬勤,只要努力了就会有回报.我的RoboCup这三年是这个道理的最好证明,也使得我更加自信地去追求更好的明天.