本文转载自《中国科技教育》杂志2012.11总第200期
足球运动是一种大家非常喜爱的运动。让机器人去踢足球,听起来像天方夜谭似的。机器人也能去踢足球? 而且,还要组成一个队伍,不同的机器人要互相配合?足球机器人要参加比赛是否有自己的眼睛、自己的双腿、自己的大脑、有自己的嘴?本文试图通过足球机器人比赛的整个准备过程的描述来解答这些问题。
上期文章介绍了赛前选拔与前期训练,以及实施策略的前两步——确定移动方式和选择机器人配件。本期文章将接着介绍实施策略的第三步——组装和调试。
组装调试
● 组装
一种是直接购买公司的结构件,按照公司的结构示意图形搭建机器人。这样可以节约很多时间,学生可以把大量时间花在机器人的调试上。但是对于程序编写有很多限制。还有一种是自己买材料,自己做结构包,但是这种方式需要学生动手能力和程序设计能力极强,适合于高中学生。这里只谈谈搭建过程中需要特别注意的地方。由于机器人需要靠场地区域的灰度值、角度传感器和红外传感器来判断机器人处于场地的具体位置,而灰度模块和红外模块测值容易受到外界自然光或其他因素的影响,因此对灰度模块和红外模块的安装是非常有讲究的。灰度模块必须与地面尽量地靠近,但是不能接触,这样既可以使测值比较准确,又可以避免外界光线的干扰。红外模块安装高度应尽量比球的高度高一点,因为红外发出的红外线,如果没有经过特殊的处理,可能影响其他机器人的复眼的读值。同时红外模块前面不能有其他物体(线、结构件等)遮挡。
● 调试
机器人硬件调试
机器人组装好之后,首先需要对机器人的硬件安装和接线进行调试,看硬件是否有安装错误的地方或接线是否有接错的地方。最直接的方法就是给机器人通电,传入马达测试程序,看机器人是否是朝定义的前方运动的。其次看复眼、红外和灰度模块是否安装正常。具体方法是将机器人放入场地,看主机显示屏上的灰度值是否属于正常水平。然后将手靠近红外传感器,观察测值。最后把机器人球靠近复眼,观察读值。如果这些测值都属于正常范围之内,那么可以确定机器人硬件安装成功。
机器人软件调试
对机器人的控制的思想,是直接通过软件程序表达的。因此,软件设计是整个设计过程中最重要的部分之一,直接关系到机器人在赛场上的表现。由于程序模块比较复杂,在此不具体写出,只对一些程序思想作简单描述。对比赛过程的规则进行分析后发现,比赛的进行与真实的足球比赛的思维过程是一致的,机器人需要完成下述动作循环:
(图1 足球机器人需要完成的动作循环)
然而在这一过程中,最关键的一步是把球攻进正确的球门。其难点在于找球的传感器与地面方向的传感器是相互独立的两套系统,怎样才能让机器人判断当前状态是找球过程还是带球进攻过程非常重要。如果单独执行找球程序,让机器人跟随球的方向前进,这样机器人会很难将球正确地冲向对方球门,还很有可能把球撞入自己的球门;如果单独执行方向判断程序,机器人则无法知道当前球的位置,有可能在没有控球的情况下冲向对方球门而造成无效的进攻。怎样解决找球程序和进攻方向判断程序的衔接,避免乌龙球和无效的进攻,这需要在算法设计中为找球和进攻进行相互配合才能解决。
(图2足球机器人找球进攻流程图)
进攻方向的判断是根据地面灰度的增减比较来进行的。在接近白色的区域,对红外光的反射量大,光电判读器即灰度传感器的输出电压高;在接近黑色区域,输出电压则低。在此,默认从白到黑为进攻方向进行编程。
当机器人的前面复眼找到球并持球时,机器人首先判断前进的方向是否是进攻的方向,之后,再判断前进的方向是否平行于边线正对球门。如果是,直接持球攻门;如果不是进攻对方球门方向或前进方向不平行边线正对球门,机器人则需要先调整角度,然后选择攻门。这样做可以大大提高进球的效率。
当机器人的后面复眼找到球的时候,机器人不能直接去持球,如果直接冲近去持球的话,有可能造成乌龙球。那这样就要求我们机器人应该绕过球,让机器人的前复眼去看到球,并使程序循环到前复眼找球—持球的过程。
在大方向调正之后,需要调整机器人的前进角度,即使前进方向平行于边线,正对球门。这个动作是通过左右两个灰度传感器转换结果之间的比较来完成的。先读取当前灰度值,再进行左右两个结果的比较,如果左灰度大于右灰度,说明前进方向偏左,调用原地转动程序向右偏转,调整后,再次读取,比较,直到左右相等为止,这时方向正对球门,调用长距离直行程序,开始进攻,把球攻入球门。
在对两个灰度值大小进行比较时,与红外传感器有类似的问题需要注意:相减出现负数时需要调整为相反数;判断相等时有传感器误差存在,需要设定阈值,差值小于阈值即认为相等。
赛前训练与参赛技巧
赛前训练
参赛之前培训学生是非常关键的,初中、小学的学生,由于年龄的原因,可能有很多注意事项不容易记住,加上在比赛过程中紧张,更加容易忘记,那唯一的方法就是在赛前多培训,多强调,让他们对比赛的注意事项加深印象。具体的方法就是,让学生在训练场地上多次进行模拟比赛,并且指导教师要严格按照比赛规则进行执裁。每一次比赛之后都让学生进行简单小结,并把需要注意的关键地方和队员进行交流。经过多次训练之后,学生可以非常熟练地进行场地调试,从而可以胸有成竹地参加比赛。
参赛技巧
有时候比赛策略的好坏直接决定比赛的胜负。比如比赛过程中,一般是不允许离开赛场的,所以就必须把维修备件和笔记本都带到赛台处,出现意外情况的时候才能及时处理。还有比赛过程中要随时关注自己的机器人,看到运行状态跟预定程序不一致,就要尽快找机会检查机器人,有时候就是线路的松动导致机器人运行不正常,通过简单的处理就能马上恢复状态。另外科协的足球比赛运用的是6节5号干电池,对于进攻机器人,一般情况下上半场便用掉了大部分的电量,下半场力量会变得很弱。但是,防守机器人就在禁区内部防守,运动量小,消耗电量相对较少。所以如果上半场输掉球或是双方都没有进球,那么下半场最好更换电池(当然规则不允许的话就不能更换)。如果上半场赢球,那么下半场的关键就是防守。只要防守住对方进攻,不让进球,那这场比赛就赢定了。这些基本的比赛策略在培训过程中都要对学生进行训练。
结束语
随着包括信息技术在内的科学技术的高速发展,以前的教育模式下培养的学生已经不能适应社会发展的需求,这就要求学校开设一些其他课程来补充教学,其中机器人课程教学应该是一种比较好的辅助课程。机器人课程教学以学生动脑学习新知、动手操作实践为主,以教师引导和服务为辅。通过机器人的教学,学生可以在学习过程中不断获取经验,改变思维方式,学会与其他人合作,学会与人分享,从而全面提高学生的现代社会素养,为适应今后的发展打下良好的基础。■