机器人足球是高新技术与体育竞技相结合的产物,是用机器人踢球的一种足球比赛项目。它最大的魅力就是通过足球比赛来公正合理地评价综合技术水平。在机器人足球项目里包含了21世纪人类要攻克的众多技术难题,如计算机视觉技术、无线通信网络技术、行为决策技术、智能控制技术、机电一体化技术、计算机仿真技术、人工生命技术、对策论及社会组织学等多学科综合技术。每次机器人足球的世界杯上,虽然没有人类世界杯上的激情四射、万众瞩目,但这里进行的是没有硝烟的尖端科技战争,各国的技术实力在此一目了然。
我们所推广的FIRA SimuroSot 5 VS 5 仿真组别的项目的比赛是机器人足球项目里的入门级项目。这个级别没有实物需求(不需要实际的机器人),全仿真纯软件环境,使用目前使用最为广泛、效率最高的高级语言C/C++开发控制程序。入门门槛低,费用低廉,适合向我们所有刚加入IT行业的学员和大学生推广普及,有了更好的群众基础,对于科学技术的整体发展也是有着巨大的促进作用的!
所有学员在初次听说这个项目时都是感觉它高深莫测,但是只要我们具有创新的激情和坚忍不拔的毅力,那么我们就可以体会到其中的乐趣。让我们一起来进入神奇的机器人足球的世界中吧!
首先,是基础部分。我们使用C/C++语言来编写机器人控制程序,使用的编程环境以VC6.0为主,也有不少队伍喜欢使用更华丽的VS2005。我们的程序事实上是动态连接库(dll),仿真平台Robot Soccer会先加载比赛双方各自的.dll文件来控制场上的机器人。仿真平台Robot Soccer会模拟比赛的所有数据,并将当前每一时刻比赛场上的信息传递给控制程序(关于仿真平台Robot Soccer传递的信息的说明请翻看我们出版的《过人》的小册子,上面有详细的说明),我们的主要工作就是处理这些信息,然后决定我们自己的机器人要如何运动,当然,大家的最终目标就是将球打入对方的球门!
解释完基础原理后,我们可以开始接触一些控制技术了!第一个要解决的问题是:机器人如何运动!其实,这个大家感觉无从下手的难题,技术上是很简单的!我们这个项目的机器人是一种两轮小车,要控制它运动,只是控制两个轮子的速度而已。于是,我们只要在程序中对代表机器人的两个轮子的轮速的变量赋值就可以完成了!下面,我们就要解决如何精确地控制机器人运动了,这个问题稍有点复杂,因为这涉及到了动力学的问题,不过,不要紧,对于刚接触这个的项目的人来说,原本和仿真平台Robot Soccer一起提供的一个基本示范代码就是我们研究的起点。下图是机器人运动模型:

机器人运动模型
假设VL和VR分别表示机器人左右轮的速度,当机器人左右轮的速度值不相等时,机器人将作弧线运动,设其瞬时圆周运动半径为R,ICR为瞬时旋转圆心,L 为机器人的边长。
机器人遵守刚体运动约束,有如下公式:

其中V 是小车中心的线速度,ω 是小车自转瞬时角速度。
机器人的状态变量是位置和角度 (θ,y,x) ,下面将它们用VLVR 表示出来:

将(1.1),(1.2)式带入并写成矩阵形式得到运动学微分方程:

上面是小车运动模型的基本运算公式,我们首先就需要用这些公式来修改随平台附送的代码中的Position和Angle两个函数,其原型如下:
void Angle ( Robot *robot, int desired_angle);
void Position( Robot *robot, double x, double y );
这里有很多数学公式可以运用,泰勒公式,拉格朗日方程都可以。当然,如果你觉得麻烦,也可以参加我们的千人工程机器人足球俱乐部,我们内部可以提供一部分已经研究出的算法的代码,你可以在此之上再修改。
那么到这里我们已经解决了大部分的基本问题,我们可以调用Position和Angle两个函数控制机器人在虚拟的赛场上飞奔了!但这样漫无目的的乱跑可以进球吗?当然不可能(可能会是乌龙球)。现在,我们要拿出我们的聪明才智来分析问题解决问题了!
第一步是明确我们的问题!我们要进球,就是说要让球进入对方的球门内,并且不让球进入我方的球门内。
第二步是分析问题!我们有五个机器人,必须分工配合,有进攻、有防守、还有守门员。那么就有了角色分工的不同,不同的角色有不同的动作。但是什么时候机器人应是什么角色呢?这就需要我们分析比赛的情况来作判断了!有没有当教练的感觉?
在足球机器人系统中,决策子系统的任务就是根据当前球场上比赛形势作出部署,给队员发出指令担负起教练员的职责。

如图,这是3 VS 3 半自主实物组比赛的实际由数据采集摄像机拍下的镜头。作为人类球员与教练员,他们的思维通常包括形象思维和逻辑思维两部分,在激烈的体育比赛中通常以形象思维为主,比如,此刻球场上是如图所示的态势,如果我方在左半场向右进攻,那么教练员立即看出R2 队员位置较好,因此,教练员应该发命令使R2 射门。而机器人决策系统得到得信息,是如下表所示的表,这使得人类形象思维的优势荡然无存。

人类对球场信息的处理通常是基于模糊的概念,如远近、快慢、有利、不利等等,用自然语言进行推理决断。而决策子系统面对的是刻板的数据和程序语言,如何将教练员的决策思维过程形式化、规范化,并用计算机程序表现出来。这属于知识工程的范畴,是崭新的前沿领域。这也是决策子系统的难点所在。如果说决策子系统充当的是教练员的职责,那么对于机器人足球而言教练员是个盲人。他不是用眼睛看到比赛场景反映到大脑进行形象思维,而是根据队员在比赛场上的位姿和球的位置等数据对比赛场上的形势进行分析,所以更多的是依靠逻辑思维来完成推理过程。这样决策子系统在制定决策时就应该参照盲人教练的思维过程,展开细致的抽象推理链上的每个环节,从而实现专家知识与决策过程的形式化。东北大学
1) 输入信息预处理计算有关实体速度相对距离等
2) 态势分析与策略选择
3) 队形确定与角色分配
4) 目标位置确定
5) 运动轨迹规划
6) 轮速确定
一般说来1)、4)、5)、6)步为演绎推理,可由数学模型计算。而2)、3)步为产生式推理,应该由专家系统来完成。在系统开发的初级阶段考虑因素有限,可以将第2)、 3)步合二为一直接进行角色分配,而第1)、4)、5)、6)步的计算关系又可以用程序模块组织起来。于是决策系统可由四大部分组成:
1. 输入信息预处理
2. 角色分配
3. 动作安排
4. 输出轮速设定值
通过以上对策略系统特点和推理模型的分析,我们可以大致得出策略子系统的一个基本的框架。如图:

关于策略系统属于高级话题,但凡参加大型比赛的队伍都会实现策略系统,因为这样可以实现对比赛情况更合理的处理和对机器人更适当的运用,不过其效果取决于其实现方式和决策库的积累。比如说,在首届微软-千人杯的决赛上,最终获得第三和第四的武汉的队伍都是有简单的策略系统的,但结果却是对动作处理和小范围配合作的更好的长沙的队伍获得冠军。
虽然机器人足球是个高技术含量的运动项目,但事实上目前FIRA SimuroSot 5 VS 5这个级别的上手却很容易,剔除掉决策系统后就是千人学员和在校学生可以大展拳脚的舞台,我们可以在这个虚拟的赛场上尽情地驰骋!最后,希望有更多的人来关注这个项目,更多的人通过这个项目来了解当前科技发展的最前沿,让我们一起迎接机器人时代的来临!

【