资源描述:
《足球机器人仿真系统的研究与开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第16卷 第4期计 算 机 仿 真1999年10月 足球机器人仿真系统的研究与开发罗 青 吕恬生 费燕琼 (上海交通大学机器人研究所,200030)摘要 机器人足球比赛是国际上迅速兴起的高技术对抗活动。该文介绍了利用面向对象的可视化编程技术设计足球机器人仿真系统的方法。该仿真系统包括对现实世界的仿真、决策系统设计和动画设计,能够生动地再现机器人足球比赛的激烈场面。关键词 足球机器人 系统仿真 动画设计1 引言为、图象实现等函数;近年来在国际上迅速兴起的机器人足球比赛是融机器足球类CBall:定义了足球的具体属性与行为、图
2、象实人学、人工智能、模式识别、图象处理、自动控制、通讯、传感现等函数;等多门学科的高技术对抗活动。多机器人组队构成一个复场地类CField:定义场地属性;杂的系统,因此机器人足球成为研究多机器人合作与多智球门类CGoal:定义球门属性;能体系统的很好的实验载体[1、2]。而一对一机器人比赛则动画类CRobocarView:显示动画。是机器人足球的低级形式,同时也是多机器人足球的基础。其中CSprite类及其派生的CPlayer类和CBall类除了包世界各参赛队在构造硬件环境之时,往往先开发出比含定义对象自身行为的成员函数外
3、,还包含定义对象与其赛的仿真系统,用系统仿真方法作为研究决策系统的主要他各种对象的相互关系和行为的成员函数。球门类CGoal方法。同系统实验方法相比,系统仿真更快捷、更经济,也之所以独立于场地类CField,是因为球门及球门区属于赛场更易于实施;仿真实验的可重复性也大大方便了分析工的敏感区域,进球与判罚均发生在此处,而且球门有敌我之作[3]。本文介绍的仿真系统“Robocar”模拟一对一机器人分,所以自成一类。比赛。该系统力图在计算机屏幕上生动形象地表现出赛场上的激烈竞争场面,为决策系统的研究提供有效手段,同时3 对现实世
4、界的仿真也可作为机器人比赛的效果演示。对现实世界的仿真工作一方面是建立各对象的静态模型,如大小、质量、摩擦系数、碰撞系数等属性;另一方面是2 仿真系统中各个类的简介建立对象的动态模型,如速度、加速度等,特别是对象之间Robocar系统用面向对象的语言VisualC++编制而成。的碰撞检测、动量与动能守恒。由于静态模型较为简单,本这是考虑C++具有抽象、封装、继承和多态性的特点[4、5]。文主要讨论对象的动态模型。这种对象之间相互独立而又联系的面向对象的编程方法,3.1 绝对坐标和相对坐标使对象的行为很大程度上依赖对象自身的
5、能力(数据成员对于机器人而言,既需要知道自己的绝对位置和绝对和成员函数),方便了程序的建立和维护,提高了程序的可速度等参数,又需要知道其他机器人及足球相对于自己的移植性。下面简略介绍一下仿真系统中主要的类。方位和速度等参数。因此,比较好的方法是设置两组并行矢量类CVector:矢量的各种计算,主要用于速度矢量;的坐标系统。其中一组是以场地为参照系的绝对坐标;另精灵类CSprite:机器人球员与足球的父类,定义了活外一组是每个机器人以各自自身为参照系的相对坐标。绝动对象的基本属性与行为;对坐标是固定不变的,用它来描述机器人的
6、环境;相对坐标球员类CPlayer:定义了机器人球员的具体属性与行固定在机器人上,随机器人的移动而发生变化。两者的关罗青:博士生。研究领域:智能机器人,计算机视觉。吕恬生:教授。研究领域:特种机器人,机器人控制。费燕琼:博士生。研究领域:模块机器人,机器人控制。收稿日期:1999-04-15—27—©1995-2005TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.系可用图1来表示。(c)墙角挡板 可分为左上、左下、右上、右下四种,每种只要考虑法线(场地中点对挡板板
7、面平行线的垂线)方向即可参照碰墙模式得出相应的算法。2)足球与机器人相碰由碰球机器人计算出足球相对于自身的方向、位置和速度,然后计算出自身的速度。同时,足球也计算出自身碰撞后的速度。足球与机器人碰撞检测方程是:L<=h+r。式中L是机器人中心与足球球心的距离,r是足球的半径,D是机器人的长度,h=(D/2)/cos(α);在-π/4<=θ<=π/4时α=θ,在θ为其他角度时(也相应地变动一定的角度。足球对机器人的碰撞面分为机器人正面、侧面和后面:(a)正面和后面图1 绝对坐标和相对坐标关系图足球在平行于机器人方向上的速度分
8、量和机器人速度满足动量守恒,在垂直于机器人方向上的速度分量则保持在图1中假设某给定点N,在绝对坐标XOY中的坐标不变。若考虑碰撞时的能量损失,可以将所得结果再乘以一值为(Xa,Ya),在相对坐标X’O’Y’中的坐标值是(Xr,定的衰减系数。Yr),机器人中心在绝对坐标系中的坐标值是(Xm,Ym),O’X