足球运动是一种大家非常喜爱的运动。让机器人去踢足球,听起来像天方夜谭似的。机器人也能去踢足球? 而且,还要组成一个队伍,不同的机器人要互相配合?足球机器人要参加比赛是否有自己的眼睛、自己的双腿、自己的大脑、有自己的嘴?本文试图通过足球机器人比赛的整个准备过程的描述来解答这些问题。
机器人足球比赛是全国中小学生机器人大赛中的一个项目,目前主要有科协机器人足球比赛和电教馆机器人足球比赛。机器人足球作为多种高新技术集成的产物,一方面可为开展诸如多智能体系统协调与合作问题研究提供一个较理想的实验平台,另一方面因其对抗性和博弈性,已成为一种新型、高趣味性、高智力比赛项目。足球机器人处于一个实时性很强的动态环境中,为了出色地完成比赛任务,不仅要求机器人具有良好的动力学特性,还要求机器人具有和人类球员一样的盘球和踢球等能力。在此,我们对如何开展足球机器人活动作一个初步探索。
赛前选拔与前期训练
在足球比赛中参赛队员的自身素质非常重要,主要包括前期准备过程中的动手能力和编程能力以及比赛过程中参赛队员的心理素质和临场应变能力,这些直接决定了比赛能不能取得较好的成绩,因此一定要选好参赛队员。在选择人员时要注意这几个原则。第一,一定要选择对该项目有浓厚兴趣的学生。第二,一定要选择理科成绩特别是数学和物理成绩比较好的学生(机器人准备过程中需要大量编写和更改程序)。第三,一定要是喜欢动手、善于与人协作和沟通并且喜欢计算机学科的学生。在我校是从参加全国中小学生信息学奥赛的学生中选择,因为这些学生有编写程序的基础,在培训过程中他们能够很快地上手,可以很容易地看懂程序并对其进行修改。
如今的机器人编程基本有两种方式,一种是代码实现的编程,一种是图形化的编程。两种语言各有各的特点,前者编程灵活,机器处理速度较后者快,但是编程结构比较复杂,难度比较大,不易于实现;而后者结构简单,一目了然,实现起来比较容易,学生易于上手,但是机器处理速度较慢。因此在对于速度要求不是很高的机器人比赛中,选择图形化编程;在对于速度要求比较高的比赛中,还是应该选择代码编程。本校参加的足球机器人比赛,要求机器人在赛场上的速度和灵敏度都比较高,所以我们选择的是C语言代码编程。
在选择好学生之后,还要对学生进行程序基础知识和机器人基本理论的培训,包括C语言程序的三大基本结构的学习,主要是顺序结构、循环结构、选择语句以及C语言函数的学习和练习。足球机器人程序设计主要运用if选择语句和while循环语句的结合编程,因此在训练过程中一定要让学生重点掌握这两种结构的嵌套。
方式确定与实施策略
确定移动方式
机器人在地面上移动的方式通常有3种:轮式、履带式和步行式。步行移动方式模仿人类或动物的行走机理,用腿脚走路,对环境适应性好,智能程度也相对较高,但不适于在对抗性高的比赛中。履带式实际是一种自己为自己铺路的轮式车辆,适用于松软不平的地面。因此,履带式广泛用在各类建筑机械及军用车辆上,也不适用在比赛中。轮式移动是最常见的一种地面行进方式。它的优点是:能高速稳定地移动,能量利用效率高,机构和控制简单,而且技术比较成熟。在机器人足球比赛中,场地为室内光滑平整地面,非常适合轮式运动。当今有很多机器人生产厂家运用的都是车轮方式。车轮安装方式有2种,3轮机器人车体配置结构虽然简单,但稳定性差,遇到冲撞容易倾倒。与3轮相比,4轮稳定性更好。4轮典型配置有如下2种:
(图1 四轮结构)
(图2 四轮全向结构)
图1是4轮结构,图2是4轮全向结构。前者在转向时不够灵活,比赛中不容易被对方机器人轻易地推动,适合于电量比较多、电压比较高的比赛中,可用于参加电教馆机器人比赛。而后者则相反,在科协的比赛项目中,由于只用6节干电池,电量比较小,比赛过程中冲撞不会激烈,而且场地是非常光滑的喷绘纸,因此采用四轮全向结构更加灵活些。
选择机器人配件
● 马达的选择
如今市场上主要有两种型号的马达可用于足球机器人,一种是普通马达,有不同输入电压、不同转速的,高电压高转速的适用于电教馆足球,低电压低转速的适用于科协足球。另一种是去年才推出的空心杯马达,要求电压比较低,但是比同样电压的普通马达转速稍高。在科协的比赛中对电压有限制,只能是使用6节干电池,因此选择空心杯的马达有一定的优势。
● 轮子的选择
轮子在这里非常关键,因为比赛场地很光滑,所以轮子不能太过光滑,否则机器人在场地上会很不稳定,可能被对方轻易地推动。所以科协比赛中轮子最好选择软皮且有点纹路的。
● 灰度和驱动板的选择
每个机器人需要4个比较精确的灰度模块,选择的时候一定要在场地上一个个进行测试,使它们在同一个区域的测值比较接近。只有这样机器人才能精确地区分场地的5个区域。选择驱动板时一定要和马达搭配,主要就是输入和输出电压一定要和马达一致,才能达到最佳的效果。
● 主机的确定
主机可以有多种选择,但是一定要遵循一定的原则,即处理速度快、耗电低。就是说要能和驱动板搭配,能在9V电压下正常工作。
● 其他部件的选择
电子罗盘和红外测距一般都是通用的,要求一定要能精确测值。
组装调试
● 组装
一种是直接购买公司的结构件,按照公司的结构示意图形搭建机器人。这样可以节约很多时间,学生可以把大量时间花在机器人的调试上。但是对于程序编写有很多限制。还有一种是自己买材料,自己做结构包,但是这种方式需要学生动手能力和程序设计能力极强,适合于高中学生。这里只谈谈搭建过程中需要特别注意的地方。由于机器人需要靠场地区域的灰度值、角度传感器和红外传感器来判断机器人处于场地的具体位置,而灰度模块和红外模块测值容易受到外界自然光或其他因素的影响,因此对灰度模块和红外模块的安装是非常有讲究的。灰度模块必须与地面尽量地靠近,但是不能接触,这样既可以使测值比较准确,又可以避免外界光线的干扰。红外模块安装高度应尽量比球的高度高一点,因为红外发出的红外线,如果没有经过特殊的处理,可能影响其他机器人的复眼的读值。同时红外模块前面不能有其他物体(线、结构件等)遮挡。
● 调试
机器人硬件调试
机器人组装好之后,首先需要对机器人的硬件安装和接线进行调试,看硬件是否有安装错误的地方或接线是否有接错的地方。最直接的方法就是给机器人通电,传入马达测试程序,看机器人是否是朝定义的前方运动的。其次看复眼、红外和灰度模块是否安装正常。具体方法是将机器人放入场地,看主机显示屏上的灰度值是否属于正常水平。然后将手靠近红外传感器,观察测值。最后把机器人球靠近复眼,观察读值。如果这些测值都属于正常范围之内,那么可以确定机器人硬件安装成功。
机器人软件调试
对机器人的控制的思想,是直接通过软件程序表达的。因此,软件设计是整个设计过程中最重要的部分之一,直接关系到机器人在赛场上的表现。由于程序模块比较复杂,在此不具体写出,只对一些程序思想作简单描述。对比赛过程的规则进行分析后发现,比赛的进行与真实的足球比赛的思维过程是一致的,机器人需要完成下述动作循环:
(图3 足球机器人需要完成的动作循环)
然而在这一过程中,最关键的一步是把球攻进正确的球门。其难点在于找球的传感器与地面方向的传感器是相互独立的两套系统,怎样才能让机器人判断当前状态是找球过程还是带球进攻过程非常重要。如果单独执行找球程序,让机器人跟随球的方向前进,这样机器人会很难将球正确地冲向对方球门,还很有可能把球撞入自己的球门;如果单独执行方向判断程序,机器人则无法知道当前球的位置,有可能在没有控球的情况下冲向对方球门而造成无效的进攻。怎样解决找球程序和进攻方向判断程序的衔接,避免乌龙球和无效的进攻,这需要在算法设计中为找球和进攻进行相互配合才能解决。
(图4足球机器人找球进攻流程图)
进攻方向的判断是根据地面灰度的增减比较来进行的。在接近白色的区域,对红外光的反射量大,光电判读器即灰度传感器的输出电压高;在接近黑色区域,输出电压则低。在此,默认从白到黑为进攻方向进行编程。
当机器人的前面复眼找到球并持球时,机器人首先判断前进的方向是否是进攻的方向,之后,再判断前进的方向是否平行于边线正对球门。如果是,直接持球攻门;如果不是进攻对方球门方向或前进方向不平行边线正对球门,机器人则需要先调整角度,然后选择攻门。这样做可以大大提高进球的效率。
当机器人的后面复眼找到球的时候,机器人不能直接去持球,如果直接冲近去持球的话,有可能造成乌龙球。那这样就要求我们机器人应该绕过球,让机器人的前复眼去看到球,并使程序循环到前复眼找球—持球的过程。
在大方向调正之后,需要调整机器人的前进角度,即使前进方向平行于边线,正对球门。这个动作是通过左右两个灰度传感器转换结果之间的比较来完成的。先读取当前灰度值,再进行左右两个结果的比较,如果左灰度大于右灰度,说明前进方向偏左,调用原地转动程序向右偏转,调整后,再次读取,比较,直到左右相等为止,这时方向正对球门,调用长距离直行程序,开始进攻,把球攻入球门。
在对两个灰度值大小进行比较时,与红外传感器有类似的问题需要注意:相减出现负数时需要调整为相反数;判断相等时有传感器误差存在,需要设定阈值,差值小于阈值即认为相等。
赛前训练与参赛技巧
赛前训练
参赛之前培训学生是非常关键的,初中、小学的学生,由于年龄的原因,可能有很多注意事项不容易记住,加上在比赛过程中紧张,更加容易忘记,那唯一的方法就是在赛前多培训,多强调,让他们对比赛的注意事项加深印象。具体的方法就是,让学生在训练场地上多次进行模拟比赛,并且指导教师要严格按照比赛规则进行执裁。每一次比赛之后都让学生进行简单小结,并把需要注意的关键地方和队员进行交流。经过多次训练之后,学生可以非常熟练地进行场地调试,从而可以胸有成竹地参加比赛。
参赛技巧
有时候比赛策略的好坏直接决定比赛的胜负。比如比赛过程中,一般是不允许离开赛场的,所以就必须把维修备件和笔记本都带到赛台处,出现意外情况的时候才能及时处理。还有比赛过程中要随时关注自己的机器人,看到运行状态跟预定程序不一致,就要尽快找机会检查机器人,有时候就是线路的松动导致机器人运行不正常,通过简单的处理就能马上恢复状态。另外科协的足球比赛运用的是6节5号干电池,对于进攻机器人,一般情况下上半场便用掉了大部分的电量,下半场力量会变得很弱。但是,防守机器人就在禁区内部防守,运动量小,消耗电量相对较少。所以如果上半场输掉球或是双方都没有进球,那么下半场最好更换电池(当然规则不允许的话就不能更换)。如果上半场赢球,那么下半场的关键就是防守。只要防守住对方进攻,不让进球,那这场比赛就赢定了。这些基本的比赛策略在培训过程中都要对学生进行训练。
结束语
随着包括信息技术在内的科学技术的高速发展,以前的教育模式下培养的学生已经不能适应社会发展的需求,这就要求学校开设一些其他课程来补充教学,其中机器人课程教学应该是一种比较好的辅助课程。机器人课程教学以学生动脑学习新知、动手操作实践为主,以教师引导和服务为辅。通过机器人的教学,学生可以在学习过程中不断获取经验,改变思维方式,学会与其他人合作,学会与人分享,从而全面提高学生的现代社会素养,为适应今后的发展打下良好的基础。
(本文作者为重庆市29中科技辅导员,文章转载自《中国科技教育》杂志2012.10总第199期http://www.xiaoxiaotong.org/News/ArticleView.aspx?AID=19230和2012.11总第200期http://www.xiaoxiaotong.org/News/ArticleView.aspx?AID=19234)