清华机器人挑战赛的主办单位除清华机械工程系和华为、大疆、小米等几家科技类制造企业外,还有包括腾讯视频在内的几家视频门户网站。企业主办方参与设计比赛方案,会按自己需要的人才设计赛制。比如华为更重视机器人的精确操作能力,所以设计了操作任务比赛;大疆更在意感知、避障与记忆,所以设计了迷宫吹蜡烛比赛;小米注重考察机器人在不同环境下的行动能力,所以设计了包含台阶在内的障碍赛。
媒体主办方则更重视比赛的娱乐程度。腾讯方面派出的导演是一位美国海归,他希望把机器人挑战赛做成像美国广播公司机器人擂台BattleBots那样强对抗性的赛事——就是让机器人两两PK,允许除了射击以外的任何暴力手段,谁把对方打残,谁就是赢家。
挑战赛对参加比赛机器人的重量有限制,对外形、规格与数量则无限制。一只参赛队伍可以在不同环节派出不同的机器人。这样做的结果是非常烧钱。但不这样做,由一个机器人应付所有环节,势必会有几个环节足襟见肘。比如,对于迷宫吹烛比赛,以Micromouse机器鼠为蓝本的小型感知机器人最具有优势;但如果让依靠滚轮行动的机器鼠去参加障碍赛,一到台阶跟前,机器鼠就一筹莫展了。
最致命的是强对抗赛。有的机器人在设计时就以感知与避障为核心,没有太多考虑防卫与进攻能力;它们凭借昂贵的感知与运算装备,在障碍赛和迷宫比赛中表现出色,却在强对抗赛中被人秒得惨不忍睹,昂贵的部件也就此报销。
清华的未来智能机器人团队,是少数几个只派一个机器人参加所有环节的团队之一。这样做倒不是因为他们坚信自己的技术很牛逼,而是因为穷。首先院系方面就有人反对在娱乐性质的机器人比赛中太多投入,所以学校方面的支持很少;其次,他们的东家腾讯,虽然确实拨出一笔巨款赞助参赛团队,但却是一视同仁地分配给腾讯开展校招的几所大学,尤以南方科技类大学为重,分到清华头上的就很寥寥。
虽然只派出一个机器人,为了应付各个不同环节,清华团队在设计时充分考虑了机器人的延展性,允许机体针对不同比赛进行改装。最后的成品是一块丑丑的、板砖形状的东西,外面喷涂红漆,响应“又红又专”的清华精神,大名“红砖号”。红砖号在平时是一个人棍状没头没腿没胳膊的板砖,板砖上下各有接口,平地比赛就接轮子,台阶比赛就接机械腿。
能在机械腿与轮子之间互相转换,成为许多团队设计的共识。韩国科学技术院派出的人形机器人“征服者”,膝盖部位装着轮子。站立时可以像人一样行走,一跪下就可以滚着前进。“征服者”在前期迷宫赛时表现平平,障碍赛时才得以展现运动速度与避障能力,轻松拿下小组第一。同组两个中国参赛团队,偷偷管“征服者”叫“跪得容易”和“滚得容易”。
为了充分保护中央处理器,大多数机器人都把核心部件藏在腹部,外观五花八门,看起来一点也不像人。但是人形机器人因其难度,在小组赛中有20%的额外加分,仍然有不少团队做了人形机器人。麻省理工派出的人形机器人“尼克”,因为没有脑袋,看上去超恐怖。《哈利波特》里有个鬼叫作“差点没头的尼克”,麻省理工这个机器人叫做“没头的尼克”。跟麻省理工同组的其他团队向组委会抗议,表示“没头的尼克”不能叫“人形机器人”,最多叫“类鬼机器人”。麻省理工团队赶紧连夜找了个纸箱,画上眼睛鼻子,给“没头的尼克”粘上。组委会表示:看,有头了。抗议者只得作罢。这样,麻省理工保证了20%的人形机器人加分,在总分排行榜上稳踞第一。
另一个进入四强的人形机器人强队是中国东北大学。东北大学团队是机器人世界杯中国赛区连续六年的卫冕冠军,两次世界亚军。但是,机器人世界杯使用的是法国公司研发的NAO机器人,考验的实际上是参赛者高级编程的能力,所以东北大学团队在硬件方面缺乏灵活性,且使用机器人成品意味着丧失原创加分。东北大学机器人“牛牛”在前几轮任务赛与障碍赛中表现极好,但因为没有原创分,在总分榜上仍然屈居麻省理工之下。
挑战赛场地在清华体育馆。四强对抗循环赛第一场,是韩科院征服者对战东北大学牛牛。田田跟高守、牛仁早早守在看台上。自从确定挖人目标,田田每个白天都守着清华团队,自觉主动为他们打杂,非常努力地刷存在感;比赛结束以后自己回公司加班。
团队里忽然多出一只萝莉,高守的家属当然不乐意,但是团队里的男生们可高兴啦——队伍里多一个MM,人气都涨了不少呢。参加比赛的时候,忽然之间冒出好多红砖号的粉丝。再加上清华本来就是东道主,“清华红砖,又红又专”——他们家的口号喊得比谁都响哩。
韩科院对战东北大学的强对抗赛,爆了一个冷门。
韩科院在总分榜排名第五,本来无缘四强;但以色列理工学院代表队队长因为家人被巴勒斯坦人绑架,临时放弃参赛资格,韩科院得以上位。比较来说,东北大学是除了麻省理工外在国际机器人赛事中实力最强的队伍,取得的成绩有目共睹。之前败在韩科院征服者手下的中国队伍都了憋了一口气,希望东北大学能替他们复仇。
但是强对抗赛比的不是精密操作和动作协调了,而是攻击与防御。取得胜利的条件是放倒或制住对方机器人,令对方在十秒内无法动弹。东北大学的牛牛是一个中规中矩的足球机器人,他们以强大的编程能力掩盖了牛牛在机械衔接上的弱点。但是,牛牛的缺点实在太明显了——一旦倒下,它就有半天爬不起来。
而韩科院的征服者“跪得容易”又“滚得容易”——实在是便宜占尽。牛牛好不容易抡开胳膊击中征服者,征服者灵巧地一跪倒地,膝盖与小腿上的滚轮立即开始工作。接下来,360度旋转滚轮的征服者完虐只能依靠双脚转向的牛牛。第一次倒下,牛牛侥幸在十秒之内站起。第二次倒下,征服者变成一辆小车,直接压在了牛牛身上。裁判倒数十秒,牛牛没能起身。征服者胜。
“不要担心。”看到田田深受打击的模样,牛仁安慰她说,“我们放弃人形机器人设计,就是为了强对抗赛考虑。‘红砖’外形就是针对强对抗赛设计的,没那么容易输。”
立即被麻省理工打脸。
红砖号坚固的钢筋外壳,的确能够保证它逃过普通的击打进攻。但是板砖式外型,实在很方便敌人抓握啊!麻省理工团队针对红砖号制定了战术,没头的尼克上来就伸出长长的、完全超过正常人比例的机械胳膊,把红砖号从地上捞到了半空中。可怜红砖号上面四条腿底下四个轮子,只能在空中乱踢乱滚。没头的尼克完胜。
那个晚上,清华团队十来个队员一片哀戚。也难怪,本来就是为强对抗赛放弃了人形机器人加分,结果四强赛一开赛就输得凄惨无比,怎么对得起喊“清华红砖,又红又专”喊到嗓子哑的父老乡亲?
第二场对阵东北大学,倒是赢得毫无悬念——牛牛就不是为打架设计的,平衡性本也欠缺。而红砖号是个大怪物,底下四个轮子可以滚可以撞,上面四条胳膊可以推可以扯。三两下拉扯,牛牛果然又仰天翻倒了。
这一场赢是赢了,可赢的是自己人,有什么意思呢?其他几支败给清华的中国队伍早就酸开了,“中国人啊,就是内斗特行。一对外就怂。”
输了也没有办法。另一边韩科院对战麻省理工。本来两边队伍都跟中国没什么关系,但是大家都不甘心输给棒子,一大半围观群众竟然开始支持没头尼克。结果——万万没想到,韩科院藏了一手,“征服者”的好几个变形能力都没有在之前的比赛中展示,显然是针对没头尼克设计的杀手锏。没头尼克占上风的时间不超过三分钟。在摸清尼克底牌后,征服者忽然下跪,仰身,咯吱一下把上身与下肢拼在一起,头顶一片原来以为是用来装饰的光盘,忽的一竖,开始高速旋转,变成了一个恐怖的切割机。
之后的比赛就没有悬念了,韩科院团队开着那台切割机所向披靡。它先将没头尼克放倒,接着将它从中斩断。因为切到了尼克位于腹部的电机,引起了一场小型爆炸,一时间火花四溅,浓烟滚滚。比赛主办方不得不出来灭火。没头尼克粉身碎骨,而征服者毫发无伤。
比赛结束,清华团队陷入一片静默。只有一个晚上的备战时间了。跟一台切割机,要怎么打?
那个晚上,清华团队包括田田在内,谁都没睡。高守连夜改进红砖号的视觉与感知系统,在红砖号的胳膊上另外增加了备用组件;这样,即使机体受到重创,红砖号仍能通过胳膊上的“眼睛”观察周围的情况。牛仁配合高守调整了四条胳膊上的并联柔索驱动结构,尽最大可能提高灵活度,同时为了方便单独控制,在四条胳膊上都加了通信系统。
除此之外,高守和牛仁还要改写红砖号的操作系统。但是,清华团队的专长其实是硬件。如果把操作系统比作大脑,硬件比作身体,红砖号的情况,就好似一个大脑没有发育完全的孩子,还不知道怎么掌控自己的身体,更不知道如何管理自己多出来的十来只眼睛。
两人改写系统,奋战到凌晨四点。虽然已经很拼了,可因为时间有限,操作系统实在写得太粗糙了。第二天比赛,红砖号上场,四条胳膊各自为战,各摇各的,完全不能协调。
“是这样的。”被田田拉过来观战的陈续缘说,“一般做机器人,80%的精力都会放在硬件上。最后做出来的机器人就是四肢发达,头脑简单。”
清华团队连夜做的改进都是针对征服者的切割机,比如加固机体,增加备用组件。没想到,征服者这回上场,并没有像面对没头尼克时那样变身切割机,它甚至没有跪下来。征服者保持完全站立的体型,面对红砖号,居高临下。一条长胳膊伸出,一爪抓起红砖号的身体,将它拎离地面。
红砖号奋起反抗,伸出一条小胳膊去拆征服者机械臂的零件。征服者立即伸出另一条长胳膊,掐住红砖号的胳膊的根部——那是一处可拆卸活槽——一掐一拧,轻轻松松把红砖号的小胳膊扯了下来,往身后一抛。
人群发出“啊”的一声叫喊,好像看到一条手臂被活活拧下来一般。
一着得逞,征服者立即如法炮制,又伸手拧下红砖号的第二条机械臂。观众度上又传来“啊”的一声。观众大多是中国人,本来就对棒子咬得牙响,这时更是又心痛又愤怒,加油的没有了,全是叫骂的。
紧接着又是两声“啊”,征服者卸掉了红砖号剩下的两条胳膊。红砖号再没有反抗余地了,当真变成一块板砖。征服者将红砖号往地上用力一抛。红砖号被摔得打了好几个滚,一路火花四溅。最后仰天倒地,四个轮子在半空中空转。操纵席上的清华团队一片沉默。
裁判开始倒数:“十、九、八、七、六……”
数到“五”时,地上有条机械臂,忽的一亮,接着腾地跳了起来。
紧接着另一条机械臂也“苏醒”了。两条脱离机体的机械臂,好像互相之间有感知似的,非常有默契地奔向它们的“身体”,一左一右,轻松一抬,将红砖号翻回身来。
倒数至“三”。好像一只翻回身的乌龟,红砖号立刻撒开轮子,一路欢跑。倒数停止,人群中爆发出一阵欢呼。
场上陷入重复的僵局。韩科院征服者想方设法要接近早已变成人棍的红砖号,却总是被四条机械臂碍手碍脚。一条扯,一条拽,一条绊,还有一条爬到它的摄像头上,完全挡住征服者的视野。红砖号虽然失去攻击能力,不能攻击征服者;但征服者为机械臂掣肘,一时间也无对策。双方谁也奈何不了谁。
“这、这是怎么回事?”一头雾水的牛仁扭头一看,忽然发现身边坐了个头发乱蓬蓬的大个子,两只手分别在两个键盘上飞快跳跃。其中一个键盘上有英雄联盟的键盘贴——咦,不就是牛仁自己的吗?
“喂!我们在比赛哎!你怎么抢我的操控键盘?”牛仁气冲冲地说。
“能把Python写成这样你也真是人才。”他电脑的音箱跟他说。
“你……你怎么会说话的?”牛仁问他的电脑屏幕。接着他呆滞了——那黑色屏幕上满是代码,并且还在飞速增加。
“喂,喂,你不能侵入我们的操纵系统……不不不,这里不能这么改……你根本不了解我们的代码库也没用过我们的API,你什么都不知道你不能这么乱改……”他接着开始讲脏话,“白痴!这是严重的逻辑错误……你在忽略边界条件……那会造成内存溢出……会造成指针混乱……天真!怎么可能实现那样的需求?……”
大个子的双手在键盘上飞快跳跃。在他完成某一行代码后,忽然的,牛仁一下子安静下来,睁大眼睛瞪着屏幕。
他进入了一种仿佛嗑嗨了的、被催眠的状态。他脸上出现各种表情:迷茫,不解,困惑,痛苦,挣扎,接着那脸上又出现诡异的微笑,真诚的赞叹,幸福的满足。他半梦半醒着,痛并快乐着,欲仙欲死着。随着大个子敲键盘的飞快节奏,他发出“啊!啊啊!啊!啊啊!”的,极其有节奏的呻吟。这个过程持续了大概十五分钟。
最后,像一个妓女被操出高潮,牛仁发出一句发自内心的,“我靠牛逼!”然后他“啊”了一声,什么都不说了,只是含情脉脉地盯着大个子跟前的那块屏幕,偶尔充满赞叹与激赏,同时带着一点畏惧地望一眼大个子。
十五分钟后大个子写完代码。他沉默着下达了一个运行的命令,接着收回双手,再不碰键盘了。
赛场上的四条胳膊忽然停滞。
但它们只停滞了三秒钟。
三秒钟后,像受到召唤的突击队员,它们非常有默契地爬到了征服者身上,各自的探头完整地扫描征服者的身体。虽然征服者在不停地变形,试图摆脱那四条胳膊,但因为它们体型很小,爪子又格外利索,像甩不掉的藤条一样缠在征服者身上。
“它们……它们在干什么?”观众席上有人问。
“它们在学习。”高守说。
他面前两个电脑屏幕。一个屏幕上有八个监控屏,征服者身上传感器和各种机械元件,在屏幕上毫发毕见。
另一个屏幕上是一个实时的立体模型。监控屏幕中的部件细节不断地增加进来,数据在不断跳跃。很快,征服者的每个部件,每个连轴,都无比清晰地显示在立体模型之中。
“我天,征服者所有数据都在我们这里了……”牛仁泪流满面地说,“妈呀,我是这见过最强悍的机器学习系统……”
这一边,清华团队好整以暇,一边猜测一边讨论(一边情不自禁地流泪),谁也没再碰操控键盘。另一边的韩科院团队已经忙疯了,三个主力队员眼睛盯着电脑屏幕,双手在键盘上疯狂地下命令。征服者发了狂似的不停变形,不停位移,仍然无法摆脱四条小小的机械臂。
之前它们在努力乱爬,恨不得抚摸征服者身体的每一寸角落。现在,它们好像对这具身体失去兴趣,懒洋洋地搭拉在变形无法触及的死角,已经不怎么挪动了。只看到征服者一个人,在场地里疯狂地变形和移动。
僵局没有持续太久。
某一个瞬间,高守面前的那个立体模型,忽然突的一亮,接着定格。数据搜集分析及建模完毕。最致命的关键部位——征服者头部的通讯及传感器,胸口的中央处理器,膝盖以下的两个电机——全部以亮红标示。通讯设备的射频电流及电磁频率,中央处理器的生产厂商、规格及每秒运算能力,电机的型号、功率、变频数据,清晰无比地显示在旁边的对话框里。
接着,四条机械臂分别移动至征服者的头部、胸口及两处膝盖。好像有谁在指挥它们似的,四机械臂同时伸出一根手指,插向了四个致命部位。
一秒钟。征服者停在原地,一动不动。
红砖号四条胳膊,从征服者身上迅速撤离,在一阵规模不是太小、但也没有造成严重破坏的爆炸声中,飞快回到红砖号身上,轻轻巧巧把自己插在那块板砖的四个凹槽里。
屋顶几乎被欢呼声掀翻。“清华红砖,又红又砖”的口号声响彻在体育馆里。征服者被炸得四分五裂。红砖号好像一个刚拿了冠军的奥运健儿,洋洋得意地绕着征服者的残骸转圈。四条胳膊非常整齐,又非常矜持地向人们招手,接受人们的恭贺。
“你……你到底是谁啊?”像刚刚被陌生人夺走初夜的大姑娘,牛仁哆哆嗦嗦地问大个子。
大个子根本不理他。像一个阅尽世事沧桑,又对人世心灰意冷的武林高手,他一脸悲哀地盯着场地上袅袅升起的烟雾,双眼里蓄满了深沉的悲伤。
“——张久全!他名字叫张久全!”在周围一片震耳欲聋的掌声中,田田粗着嗓子大声说,“我们蓝熊的CTO!”