2008年的国际机器人足球比赛,美国某大学这样要求重赛

【本文原标题为“说个封尘已久的小故事”,风闻社区有修改】

2008年是个惊异的一年,发生了太多让人难以忘怀的大事件,一些发生在自己身边的小事,现在再想起来还能触动到自己。今天闲下心来说个发生在当年的小故事,自己不是主角,为了叙述方便,就用第一人称了。自己文笔不咋地,就爆个流水账,各位看个乐呵啊。

为了配合2008年的奥运会,国际机器人足球大赛(RoboCup)第一次在中国苏州举办。我当时在读博,有幸在中科大陈小平教授领导下的蓝鹰四足(标准平台)机器人队里当了个跑龙套,参加了整个比赛。这次比赛也是在RoboCup标准平台赛中最后一次使用索尼AIBO机器狗来打比赛。

500

整个赛事热闹非凡,我们队稳扎稳打,一步步有惊无险地走到了半决赛。也算是第一次挤进了强队之列。当时的半决赛是和美国得克萨斯大学奥斯丁分校(UTAustin)队对垒的。应该说UTAustin可能名气没麻省理工那么响,但在理工科,工程方面在美国也绝对是第一梯队。他们队常年在机器人足球赛中名列前茅。所以当时估计这场比赛会打得非常艰苦,赢的机率并不高,然而实际比赛进程居然出乎意料得顺利。

上半场5比0,下半场不一会儿就到了6:1了。

正当整个团队的神经慢慢放松下来,准备迎接最后的胜利时,一直在场边焦躁着来回踱步的UTAustin(学生)领队忽然紧盯住正在场上比赛中我们队的一只机器狗,手直直地指着它大叫起来“foul,foul”,着实把在场所有在全神贯注看比赛的人都吓了一大跳(说实话之前都没注意过他一直在做什么)。

比赛被这么一打断自然就瞬间暂停了。比赛裁判和双方团队成员都围了过来。UTAustin领队极其激动地指着我们的机器狗说,他们的灯亮着,他们的灯亮着,这是严重犯规,这场比赛无效之类的话。

AIBO当初是索尼作为娱乐开发的机器狗,身上布满了不同样式的LED,平时开启不同颜色的LED表演起来会非常好看。在用作为比赛机器人平台,我们也会利用它身上的几个LED(尤其是耳边的两个)来显示机器狗状态从而来调试代码。比如显示绿色代表机器狗能看到比赛用的菊红色小球,显示黄色代表看不到小球。

机器人足球赛比赛守则上有条要求参赛队在比赛中不使用LED以免造成不必要的干扰。

看来这次大家都关注着调试机器狗能在场发挥的代码和参数,没人想起要最后关闭LED。这真是个不大不小的纰漏。用LED显示机器狗状态是所有队不成文的通用办法,以至于所有人都熟视无睹,包括UTAustin领队直到下半场比赛将要结束之际才看出来。

这下麻烦了,UTAustin队坚决表示本场比赛无效,我们严重犯规,甚至要立刻上报比赛组委会要求取消我们队的参赛资格。我们这边几个主要团队成员(我自以为自己英语还过的去,也凑上去了),也围着比赛裁判理论:

没关闭LED是我们无意中的失误,浅浅的黄色条形色块跟比赛用的菊红色小球 在色彩和形状上完全不同,不应该造成机器狗视觉上的判断错误,对比赛不会造成直接影响。没关LED的情况以前也在其他队出现过等等。就这样拉锯战了十多分钟,期间陈老师跑过来询问发生了什么,由于他是这次赛事组委会的主要成员,不能偏袒自己队伍,只有让我们自己去争取了。

最终于三方达成一致,本场比赛被宣布无效,当天晚上择时重赛。

比赛主裁判宣布重赛话音刚落,围观群众开始准备散去,Austin的领队回头要去收拾自家的机器狗,我这时灵机一动,冒出来说,重赛可以,但应该以两队机器狗当前的技术状态来比,不能有任何改动才算公平。也就是说,把机器狗中存放所有运行程序记忆卡拿出来交由比赛裁判统一保存管理,谁也不能在重赛之前改动任何代码和参数。

LED灯亮的问题我们可以用其它物理手段来消除。这回轮到Austin那边小吃一惊。这下又僵持了几分钟,我和几个同伴详述了临时起意的方案,终于在几个裁判的协调下,Austin无奈交出了他们的记忆卡。

500

半决赛重赛被安排到当晚的九点举行。经过几天的赛事,所有类型的比赛都已接近尾声。开头两天比赛准备期,整个场馆晚上热闹的境况已经不复存在。大多数人都早已回各自酒店休息,围观观众也没有了,只剩下我们两队的成员,裁判和几个来帮忙的本地大学生志愿者。

我们几个队员,晚饭都没怎么吃,早早回到场地,憋着气地改造我们的机器狗:

为了在整个赛事当中我们不会遗忘丢失自家的行李和装备,我们准备了好几打白色的粘贴纸上面印着我们队的名字和地址,这回用来粘贴覆盖住机器狗上所有可发光的地方。

40多分钟后,几个要参赛的机器狗都被贴成了纸灯笼,经过在场裁判和Austin队检查确认后,比赛正式开始。我抬头看了看场馆上空聚光灯,把整个场地照得泛白,回想着白天发生的事,以及这几天我们机器狗场上场下的技术表现,有了新的看法。没了白天的喧嚣,除了裁判不时的几句口令,所有人都静默不语, 整个赛场,只剩下机器狗快速移动的机械声和塑料碰撞声……20多分钟的比赛很快就结束了。

结果……果然如此……

====================================================

昨天草草写完事情的大致经过就发了上来,居然还有人看,小编也帮着改了话题。那就加点后续,顺便回应一些质疑,把事情的来龙去脉讲得更清楚点。

按照比赛规则,我们的确犯了不应该出现的失误,重新比赛的确符合规则,大家都能接受。然而Austin队一开始要求取消我们整个比赛资格和已有成绩,这就非常过分,我们坚决反对。吵了一顿之后,他们似乎勉为其难地同意重赛,就像某位网友所说的,成了对你们的宽容和恩赐。其实他们根本的目的就是想重新比赛。因为他们知道为这场比赛调试的代码参数中出了重大的问题,必须做出修改。这一切两队其实都看的非常清楚。

这里多讲点比赛技术细节,每次比赛开始前,所有机器狗都在场地边上被横列成一队,由裁判通过比赛控制软件给所有机器狗远程无线发出比赛开始的命令(也就是说一旦机器狗被拿上场,排列好,控制权就交给裁判了)。机器狗们自主走上比赛场地,并自主排出自己队的比赛队形。这需要每个机器狗能通过自己的视觉定位系统判断自己的位置,从而能自行走到自己应该站的位子。这自主列队是有时间限制的,时间一到,比赛就开始了。而在这次半决赛上,Austin队上来列队时就表现的非常拉胯,到时间了,队列还是稀里哗啦,不成行。这就等于告诉我们他们的软件系统出了问题,接下来的比赛表现就不难理解了。呵呵。

所以Austin队真正的想法是,拿回机器狗,在重赛之前暂停休息时间内修复代码,重刷机器狗的记忆卡,这才有可能在重赛中打赢。他们原以为我们要改正我们的失误,必须也要重设代码重刷记忆卡,没有理由不让他们做同样的事。我们最后提出的物理消除方案彻底封死了他们改错的机会。这才是全场精彩之处!

作为一个跑龙套的,我比赛没出什么大力,整个赛程期间,我都在跑东跑西观察各队的表现情况,然后给自己队提供技术反馈和建议。根据我几天对自己队的观察,察觉我们的系统在晚上的人造光下表现更佳。那重赛是在晚上9点。。。看官们最后要看的结果就是 7比0!

全部专栏