




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仿真足球机器人比赛技术动作设计与实现Design and Implementation of Action of Simulated Soccer Robot学 院:专 业 班 级:学 号:学 生 姓 名:指 导 教 师: I 摘 要机器人足球比赛是近年来人工智能和机器人领域的研究热点之一,它是高技术与娱乐性的完美结合,融合了多种学科,促进了人工智能和机器人的研究和教育。而仿真足球机器人比赛是其中的一种比赛形式,具有成本低、实际干扰因素小、实验可重复等优点,方便足球机器人的普及。在仿真足球机器人比赛中机器人的比赛动作设计有重要的基础作用,如果最终的动作执行不到位,会导致策略系统的效率低下。论文目的在于能够编程实现机器人足球比赛中的技术动作设计和运行结果的实时显示,以满足比赛的基本需求,为上层策略系统提供良好的支持。论文的工作基于国际机器人足球联盟(FIRA)仿真比赛SimuroSot 5vs5组的仿真系统The Robot Simulater,并对该平台以及机器人的运动学模型和重要动作函数的算法做了较为详细的介绍。在此平台之上使用VC+ 6.0对仿真足球机器人的基本比赛技术动作进行设计与开发,编程实现了仿真足球机器人的基本比赛动作。其中包括原地转角、到顶点、定向运动、截球、传球、射门等动作。通过对单独动作在仿真平台上实际运行效果的测试,基本达到了预期的目的,满足了比赛的基本需求,可为上层策略系统提供动作支持。关键词: 机器人足球比赛;技术动作;仿真AbstractIn recent years, robot soccer is one hot spot of the robot and artificial intelligence research fields, it is a perfect combination of high technology and entertaining .The robot soccer needs many branches of learning and promotes the artificial intelligence research and education. And the simulation soccer robot game is one form of the game of robot soccer. It costs low and can avoid form the actual interference factors and repeat in the same condition. In the simulation soccer game robot soccer action design plays an important and basic role, if the final executive does not reach the designated position, that will lead to low efficiency of the strategy system. The objective of this thesis is to accomplish the programming of the robot soccer movement design and the operation results can be real-time displayed, in order to meet the basic needs of the soccer game and provide good support to the strategy for upper system.The thesis is based on the Federation of International Robot-soccer Association (FIRA) SimuroSot 5vs5. The simulation system platform is the Robot Simulater. It gives the robot platform 、 kinematics model and the algorithms of important movement functions a detailed introduction. In this platform , by using VC+ 6.0, the robot technique actions in the simulated robot-soccer game are designed and developed, and realized the basic actions in the simulation robot-soccer game in C+, Including angle, position, moving, blocking the ball, passing, shooting and such actions. All the actions have been tested in the simulation platform and achieve the expected performance. The result showed that the design could meet the basic needs of the game and support the upper strategy system.Key words: Robot Soccer; Technique Action; SimulationII 目 录摘 要IAbstractII第1章绪 论11.1课题研究的意义11.2国内外研究现状21.3主要研究的内容3第2章仿真足球机器人相关开发背景介绍52.1仿真足球机器人运动学模型52.1.1运动学物理模型52.1.2运动学物理模型的约束62.2机器人足球仿真平台82.2.1机器人足球仿真平台介绍82.2.2仿真软件使用说明102.3编程向导112.3.1场地信息和比赛信息112.3.2平台环境122.3.3接口函数132.4仿真平台工作原理13第3章 仿真足球机器人动作总体设计153.1动作设计的目的和意义153.2足球机器人动作特点153.3仿真足球机器人动作模块结构16第4章仿真足球机器人动作详细设计184.1仿真足球机器人基本动作184.1.1移动动作184.1.2转角动作184.1.3 到定点动作224.1.4 定向运动动作264.2仿真足球机器人技术动作274.2.1截球动作274.2.2踢球动作294.2.3传球动作324.2.4射门动作324.2.5其他动作34第5章结论36参 考 文 献37致 谢39第1章绪 论1.1课题研究的意义机器人足球竞赛是近年来国际上迅速开展起来的一种高科技对抗活动,它涉及人工智能、机械、通讯、传感等多个领域的前沿研究和技术融合。机器人足球已成为人公智能领域发展的历史性目标和智能机器人发展的代表方向。机器人足球之所以受到如此重视,就是因为足球机器人涵盖了诸多的高新技术,是一项人工智能与机器人领域的应用基础研究课题,而机器人足球比赛便是这些研究成果的公开展示,是一种具有战略意义的小型高科技对抗平台。通过机器人足球赛的研究促进人工智能和机器人领域及相关各学科的发展,进而为相关技术在生产及生活中的应用打下良好基础1。研究机器人足球的意义主要有以下几个方面。1.它是人工智能和机器人学的标准问题。2.它是连接基础研究与应用技术开发的必要桥梁。3.它是推动信息自动化领域产、学、研结合的重要途径。机器人足球除了在科学研究方面具有深远意义外,它也是一个很好的教学平台2。机器人足球所设计的学科很多,需要创新的内容也很多,研究人员借以可以研究的应用的先进技术,可以反过来促进相关领域的研究和发展。组建一个真实的机器人足球需要投入大量的资金、时间、空间,为了能够方便快捷地进入机器人世界,建立一个虚拟平台是很必要的。在仿真软件中,比赛所需的硬件设备均由计算机模拟实现,可重复使用,不受硬件条件和场地环境的限制,可以集中于研究多智能体的合作与对抗的问题,具有成本低,实验具有可重复性实际干扰因素少等优点3。机器人足球策略系统最终是通过机器人执行动作来实现的,动作实现是策略系统的基础。足球机器人的动作设计建立在其运动学模型上。通常将机器人动作设计进行分层,分为基本运动控制与技术动作控制。前者面向仿真平台,后者面向策略,它们之间存在调用与被调用的关系。策略系统的效果是依赖于动作执行的效率。如果最终的动作执行不到位,也会导致策略系统的效率低下。所以动作设计在仿真足球机器人比赛中有重要的作用。机器人足球比赛的目标就是尽可能多的将球踢进对方球门,并保证自己球门尽可能少地被对方进球。而要想在激烈的比赛中战胜对手,充分体现足球机器人的魅力,除了灵活多变的战略战术、攻守兼备的队形之外,快速、精确、有效的技术动作也是必不可或缺的。1.2国内外研究现状机器人足球比赛兴起于20世纪90年代,它是自动化和机器人领域最具前瞻性的研究之一。机器人足球比赛的设想首先由加拿大不列颠哥伦比亚大学的Alan Mackworth教授在1992年的论文On Seeing Robot中提出的。他和他的学生还就他们的机器人足球项目发表了一系列的文章。目前,国际上比较有影响力的机器人足球比赛有两个:国际机器人足球联盟(federation of international robot-soccer association, FIRA)举办的微型机器人世界杯足球锦标赛(MicroSot)和日本人工智能研究会举办的机器人世界杯足球赛(RoboCup)。在FIRA比赛蓬勃开展的同时,有关机器人足球系统和机器人足球竞赛的理论研究也取得了长足的进步。在每一届机器人足球世界杯比赛和地区性比赛期间,主办者都会举行相关的培训和研讨会并召开一些机器人足球专题学术会议,介绍了一些机器人足球相关的领域的最新研究成果3-6。足球机器人的动作和策略系统研究成绩显著。在早先的比赛中,机器人之间缺乏合理的分工协作,常常挤在一起,互相干扰任务的完成。现在这种现象已经不存在了,特别是在仿真系统中,机器人常常打出行云流水的配合,比赛极具观赏性。同时,足球机器人正以一种高技术对抗的形式赢得学术界的认同。机器人足球的研究已经在国际人工智能及智能机器人领域产生非常大的影响7。虽然离实现最后的目标还有相当长的路要走,但必将对相关研究领域产生巨大的推动作用。国内的机器人足球研究虽然刚刚起步,但已经显示出强大的活力,相关研究也取得了长足进步。目前,国内有很多大学都有了自己的机器人足球队,从1999年开始,国内开始组织全国性的机器人足球比赛,以及相关的学术交流活动。近年来,在国际比赛中尤其是在FIRA竞赛中,我国科研机构取得了非常好的成绩。例如,2008年在中国青岛举行的FIRA比赛中,中国参赛队在25个比赛项目中共取得了14项冠军,这是世界杯举办以来中国队取得的最好的成绩,参赛队来自新加坡、美国、德国、加拿大、澳大利亚、马来西亚等国家和地区8。目前,从机器人足球的国际发展来看,主要有以下几个方面的特点。1.发展迅速,比赛规模逐年扩大;2.竞争激烈,比赛水平提高很快;3.得到著名期刊和国际研讨会的高度重视;4.欧美以及日韩的机器人足球水平任处于领先地位;5.我国机器人足球奋起直追、迅速提高9 -12。1.3主要研究的内容课题主要研究内容及预期达到的目标:本课题设计题目为“仿真足球机器人比赛动作设计与实现”,是基于机器人足球比赛仿真软件系统进行程序开发与设计,对仿真比赛中机器人球员的基本动作进行设计和程序实现,其主要内容如下:(1) 熟悉Visual C+程序设计技术和机器人足球比赛的基础知识。(2) 编程实现仿真机器人足球比赛环境的构建。(3) 编程实现机器人足球比赛的环境和参数设定。(4) 编程实现机器人球员的射门,带球,截球等基本比赛动作。(5) 实现仿真比赛中机器人运动的实时动态显示。预期的目标:编程实现仿真足球机器人比赛软件系统,能够实现机器人足球比赛中的技术动作设计和运行结果事实显示,以满足方针足球机器人比赛的基本需求。仿真机器人足球比赛动作设计可分为基本动作设计和技术动作设计两个层次,其中技术动作是基本动作的一个组合,课题的难点在于技术动作的设计与实现,使仿真机器人在比赛中良好的执行上层策略,达到预期的效果。足球机器人比赛动作系统结构图如图1.1所示:图1.1足球机器人比赛动作系统结构图足球机器人技术动作可以大致分为进攻动作和防守动作。这样的分层设计是可行的并且符合软件工程的要求,它能够方便系统的集体开发和升级。一方面在技术动作控制中不进行最基本轮速的设定,使得程序结构简洁清晰;另一方面,如果仿真平台有任何变化,只需要改变底层的运动函数而保持调用函数接口不变,上层的策略就不需要相应的变化,因而具有良好的适应性。第2章仿真足球机器人相关开发背景介绍2.1仿真足球机器人运动学模型2.1.1运动学物理模型足球机器人的动作设计首先需要建立足球机器人的运动学模型所有动作的实现都是在其运动学和动力学基础之上的,离开了对这些物理模型的认识是不可能实现足球机器人的动作的。SimuroSot系统中是模拟MiroSot足球机器人的,采用的是一种轮式移动机器人结构(wheeled mobile robot, WMR)结构,其两个轮子共轴但是独立驱动。动作设计的基本就是基于机器人当前的位置、方向和速度,合理地分配机器人左右轮速度,使得它能够实现期望的的位置、方向和速度。显然时间最优是控制算法的期望实现的目标1。目前的情况下,如图2.1所示,足球机器人的运动学模型可以认为是一种无侧滑、纯滚动的两轮独立驱动移动小车模型。图2.1纯滚动、无侧滑的机器人车轮小车的运动包括两部分:小车中心的平动和绕中心的转到。机器人的运动学模型如图2.2足球机器人运动学模型所示。图2.2足球机器人运动学模型其中足球机器人小车左右轮中心距离为L,两轮外侧间距表示为R,通过控制左右轮速来实现不同的动作。2.1.2运动学物理模型的约束根据质点系的速度和位置是否受到一定限制,有非自由质点系和自由质系之分。限制系统各质点位置和速度的这些条件成为约束,约束的数学方程,称为约束方程。通常根据限制条件(限制系统质点的位置还是速度),约束可以分为几何约束和运动约束1。在约束方程中,只包含系统各点的坐标,不包含系统各点的速度,这种约束就是几何约束。如果在约束方程中包含系统各坐标对时间的导数,则为运动约束。如果运动约束方程可积分为有限形势,则与几何约束没有显著差别,称为可积的运动约束,它与几何约束总称为完整约束。不可积分为有限形式的运动约束,则称为非完整性约束1。非完整性约束的系统,称为非完整性系统。约束条件不能等价的表示成广义坐标函数,约束中含有广义坐标对时间的导数。本文研究的足球机器人就是典型的非完整性系统,其物理含义是机器人不能沿轮轴方向运动。根据足球机器人运动学模型,小车的位姿(位置、方向)与速度(线速度、角速度)之间存在如下关系: (2-1) (2-2) (2-3)其中是小车的线速度,是小车的角速度。RV和LV分别是小车的右轮和左轮的线速度,L是两轮之间的间距。有小车的运动学模型不难看出,小车的状态空间有三个分量: cx、cy和,而小车的控制分量只有两个:线速度和角速度,或者说小车左、右轮的转速。因此,这是一个典型的非完整约束(Non-holonomic Constraints)问题,必须增加一个约束方程。根据小车无侧滑的假定,在运动过程中下面的这个等式始终满足,其物理意义是小车的轮轴方向的速度始终为0。 (2-4)这个等式意味着,小车运动瞬时速度的方向,始终与小车的朝向相同。小车方向的改变只能通过两个轮子的差速来实现,小车运动的轨迹,是有一系列瞬时圆心(Instantaneous Center of Rotation,ICR)旋转的小段圆弧组成的。如图2.3所示。图2.3 小车绕瞬时圆心作圆周运动图中R为瞬时圆的半径,很容易推导出下面等式关系: (2-5)当VRVL的时候,R为无穷大,小车做直线运动。当VRVL时,R 0,小车原地旋转。转弯半径可以从0到无穷大变化,这也是两轮独立驱动小车运动的一个显著特点1。了解机器人的物理原型和动力学模型中的约束是进行机器人动作设计的第一步。2.2机器人足球仿真平台FIRA机器人足球比赛最早由韩国高等技术研究院(Korea Advanced Institute of Science and Technology,KAIST)的金钟焕(Jong-Hwan Kim)教授于1995年提出,并于1996年在KAIST所在的韩国(Daejeon)举办了第一届国际比赛。FIRA仿真组别的项目的比赛是机器人足球项目里的入门级项目。这个级别没有实物需求(不需要实际的机器人),全仿真纯软件环境,使用目前使用最为广泛、效率最高的高级语言C/C+开发控制程序。本文是以SimuroSot 5v5比赛平台Robot Soccer v1.5a为开发平台的13。 2.2.1机器人足球仿真平台介绍安装R_Soccer_v15a_030204.exe;安装程序后,生成C:Strategy。其中yellow对为我方控制球队。启动程序后,您将看到如图2.4 5v5仿真平台用户界面的界面:图2.4 5v5仿真平台用户界面左侧是比赛区域,右侧是菜单栏和比赛信息。比赛开始前用户可以用鼠标将比赛区域中的机器人拖动到自己想要的位置,用户还可以点击右侧菜单上的选项进行操作,比赛进入Stop 时菜单仍会显示以方便裁判进行仲裁。菜单下面是比分和比赛时间。系统要求:Pentium III 600 MHz256 M 内存TNT2 3d 显卡32 M 显存24x CDROM显示器最小分辨率800 x 600声卡Microsoft Windows 98Direct X 8.010M 磁盘空间142.2.2仿真软件使用说明仿真平台主菜单和仿真平台策略菜单分别如图2.5 图2.6所示。 图2.5 仿真平台主菜单 图2.6 仿真平策略菜单主菜单使用说明:(1) Strategies用户可以通过这个按钮来打开策略菜单选择两个队的策略文件。(2) 犯规和判罚按钮裁判可以通过这几个按钮判罚某队犯规,并判罚另一队拥有球权。点击后在比赛区域下方将会出现相应的提示。(3) Start开始比赛。(4) Time当前比赛进行时间。(5) Score当前比分。(6) Time/Score点击这个按钮进入时间和比分的设定菜单,你可以调整比赛时间和比分。(7) New Game开始一场新比赛。(8) Help打开帮助文档。策略文件可以使用写入txt 文件的代码或DLL 文件。在比赛前应该指定它们的位置。策略文件应该放在程序安装时所创建的新文件夹。一般会创建在系统盘根目录下,比如C:strategyyellow 就是黄队的策略文件应该放的位置。本文正是为黄队编写动作函数,比赛前应将黄队的包含动作函数的策略文件放在这里,然后在蓝队的文本框中输入文件名(不要带扩展名)15。本文是通过VC+ 6.0中使用C+语言编程,生成DLL策略文件,添加到黄队的策略文件夹下,当比赛开始前选择此策略文件即可。2.3编程向导2.3.1场地信息和比赛信息仿真平台对场地的描述是以英寸为单位的。1英寸约为2.54厘米。SimuroSot 5vs5描述的场地大小是实际的MicroSot 5vs5的场地尺寸大小16。策略头文件中有场地变量的描述17。图2.7场地尺寸信息图仿真平台还描述了比赛状态gameState和控球方whosBall这两个参数用以描述比赛信息。2.3.2平台环境这一节将描述以C+语言来开发包含动作设计的策略系统时平台中提供的重要结构体。(1) 机器人和球的模型仿真环境中对机器人信息的定义如下:typedef struct Vector3D pos; /机器人坐标double rotation; /机器人方向角 double velocityLeft, velocityRight; /机器人左右轮速度 Robot;仿真环境中对球的信息的定义如下:typedef struct Vector3D pos; /小球的坐标位置 Ball;(2) 环境信息模型仿真平台对于决策系统多需要的所有信息封装在同一个结构中,及环境信息中;并定义了一个全局环境变量来用于仿真系统与决策系统之间进行信息的交换。仿真环境中对环境信息的定义如下:typedef struct Robot homePLAYERS_PER_SIDE; /我方机器人数组 OpponentRobot opponentPLAYERS_PER_SIDE; /敌方机器人数组 Ball currentBall, /当前小球的位置lastBall, /上一次小球的位置 predictedBall; /预计的小球的位置Bounds fieldBounds, /场地范围goalBounds; /球门的位置与范围 long gameState; /当前比赛的状态 long whosBall; /由谁控制球 void *userData; /用户自定义信息 Environment;2.3.3接口函数仿真平台提供了以下三个预定义的几口函数:extern C STRATEGY_API void Create ( Environment *env ); / Create 程序的初始化 extern C STRATEGY_API void Strategy ( Environment *env ); / Strategy 程序的主要执行逻辑每秒调用六十次。extern C STRATEGY_API void Destroy ( Environment *env ); / Destroy 程序的销毁,释放程序创建是的数据分配空间。Strategy函数为仿真环境接口中最为重要的函数,所有的设计的策略内容都在此函数中实现,仿真系统每秒钟调用60次该函数,即该函数要在1/60秒内完成一次决策18。2.4仿真平台工作原理仿真系统主要完成机器人物理模型的计算工作,包括碰转检测模型、机器人运动学模型、机器人动力学模型以及球的运动学模型与球的动力学模型的计算等内容。同时它还负责比赛过程中的管理工作,如点球、任意球等比赛时裁判所需要的操作界面和比赛时间设置、比分纪录等操作界面。平台还是一个服务程序,它将实时处理决策系统发出来的决策命令,并将及时将各个机器人与球的位置和角度反馈给决策系统19。仿真平台的简化结构去下图2.8所示:图2.8仿真平台的系统结构简图目前仿真系统采用的是周期轮询的方式从决策系统取得控制命令,即从策略文件中获得执行命令,包括机器人左右轮速等内容。在一个时钟周期内,仿真系统取得决策系统的决策命令,完成物理模型的计算,再完成显示工作,然后将比赛信息发送给决策系统20。同样,决策系统也在一定时间内完成决策分析,并将决策命令发送给仿真系统。第3章 仿真足球机器人动作总体设计3.1动作设计的目的和意义机器人足球比赛的目标就是尽可能多的将球踢进对方球门,并保证自己球门尽可能少地被对方进球。而要想在激烈的比赛中战胜对手,充分体现足球机器人的魅力,除了灵活多变的战略战术、攻守兼备的队形之外,快速、精确、有效的技术动作也是必不可或缺的20。动作是比赛活动的基本单元,任何精彩的比赛都是由球员的一系列动作构成,因此,全面规范的动作设计,准确有效的动作实现在足球机器人决策系统设计中就显得尤其重要。动作是决策系统的最底层,是决策的基础和保障,是决策系统的最终体现,因此,机器人动作完成的好坏是系统整体性能的最好验证。3.2足球机器人动作特点机器人的动作是对人类智能行为的一种模拟,可以在功能上模仿人类的射门动作、避障动作等。机器人通过动作来改变环境和自身的状态,同样每个动作都具有发生的条件和发生后的效果。总的说来,足球机器人的动作有如下特点:各种动作都是通过机器人的速度、位移和轨迹来实现。如到定点的动作由机器人的位移来体现;如避障由机器人的轨迹来体现;再如射门动作由机器人的速度和轨迹共同来体现。所有的动作最终都是由机器人的速度控制来实现的。速度包括线速度和速度,足球机器人小车常采用双轮差动结构,因此这里的机器人小车速度控制也就是左、右轮速函数的设计。动作设计的主要问题就是如何设计一种快速平滑的控制算法使得机器人从初始状态(包括初始位置、初始速度和初始角度)运动到期望状态(包括期望位置、期望速度和期望角度),如果能够很好地控制机器人摆脱机器人初始位姿的影响,运动到球后的某一位置,并且正方向对着球,这样就可以很方便地让机器人完成射门、传球等动作。由于微型足球机器人存在着非完整性约束,因此快速平滑地实现机器人的位姿控制是问题的关键21。微型足球机器人的动作设计既要体现创作性,又能结合受非完整约束机器人各种轨迹规划和控制的应用研究。将动作空间分层设计,既能提高系统的实时性,系统的鲁棒性,又能满足动作不断发展的需要,只要添加更多的动作行为即可,且这种分层结构非常易于C+程序实现,只要在动作类当中编制新的动作函数,就可以在协调层和运动规划层中调用该动作函数,机器人就会实现该动作。3.3仿真足球机器人动作模块结构通过分析人类踢球过程,可以发现:抛开人类大脑的思维模式和人的神经、肌肉反应不说,人类踢球动作可分为基本动作、技术动作。应用面向对象的方法,对人类足球训练过程进行抽象移植,可以将足球机器人的动作空间也分为两部分,即基本动作模块、技术动作模块。基本动作空间中的动作对应于足球机器人的基本素质训练,包括移动动作、转身动作和到定点动作等;技术动作空间中动作是在具备基本动作的基础上,为达到一定的技巧性目的,利用基本动作沿一定的轨迹运动而得到的动作,包括射门动作、传球动作等。基本动作负责机器人运动指令和轮速指令之间的转换,实现机器人的基本功能。技术动作是以基本动作为基础的。下层动作是实现上层动作的保证。通过对人类足球比赛的观摩,结合对小车机器人的物理力模型参考可对基本动作模块和技术动作模块作如下设计:(1) 基本动作(BasicAction)模块:对应于足球机器人的基本素质。具体内容如表3.1所示:表3.1足球机器人基本动作模块动作名称动作功能转角动作移动动作到定点动作控制机器人转动一定的角度,在足球机器人比赛中表现为调整角度和扫球控制机器人向某点或方向做定向运动,在足球机器人比赛中表现为直线前进和后退控制机器人到指定点位置,并将会停在该位置上直至有新的命令,在足球机器人比赛中表现为沿一定的曲线轨迹到定点续表3.1 足球机器人基本动作模块动作名称动作功能定向运动动作控制足球机器人沿着某一个反向运动,最好拥有一个理想的速度(2) 技术动作(Skilled Action)模块:在具备基本动作的基础上,为达到一定的技巧性目的,利用基本动作沿一定的轨迹运动而得到的动作。具体内容如表3.1所示:表3.2 足球机器人技术动作模块名称功能射门动作传球动作截球动作踢球动作扫球动作盯人动作通过一定的算法控制机器人将球撞入对方球门内,在足球机器人比赛中表现为应用直线、中分线法、切圆弧法射门通过类似射门的方法控制机器人将球踢向给定的目标机器人,已完成比赛中的配合任务当敌方机器人在我方半场进行有威胁的传球时,往往需要我方接应队员上前将球截断,把球踢向敌方半场,后者将球传递给我方其他机器人等动作较为常用的动作,将球踢向队友或对方球门足球机器人的边界类似于围墙,小球触碰边界会反弹。若小球在边界死角等地卡住无法移动的情况出现时,就需要机器人上前扫动,使其离开原位使足球机器人紧盯住对方机器人,阻止对方进攻第4章仿真足球机器人动作详细设计4.1仿真足球机器人基本动作4.1.1移动动作对机器人小车的最基本和最终的控制是通过对机器人的左右轮速进行赋值来实现的。以下这个函数是基本动作的最简单形式,后面几个基本动作是对这个动作调用实现的。其速度大小在Middle League项目中,也就是本文中的项目中是限制在-125,125的区间内。这个动作只是在某些特殊情况下单独使用,例如旋转等。此动作函数的函数名为Velocity,功能是对机器人轮速进行控制。其中参数说明 :robot-执行动作机器人,vl-左轮速,vr-右轮速。其具体实现代码如下:void Velocity ( Robot *robot, int vl, int vr )if(vl 125) vl = 125;if(vl 125) vr = 125;if(vr velocityLeft = vl;robot-velocityRight = vr;4.1.2转角动作根据机器人的运动学模型可以指导,原地转角动作的实现是通过对左右轮速赋相反的值即可。计算出当前机器人的方向角与目标方向角之间的角度差值,然后计算出机器人左右轮转速,调用速控命令即可。机器人原地转角示意图如下图4.1所示:目标方向当前方向图4.1机器人原地转角示意图转角动作可用比例轮速法实现,左、右轮速的计算公式为: (4-1)公式中为机器人从当前的方向角原地转动到目标方向角之间的角度。显然,系数K越大小车转动速度越快,但这并不意味着转动时间花销最少。因为这样会引起运动的震荡。当系数很大时,小车不能很快的停下来,将在震荡一定周期后稳定下来;而当系数较小时,小车转动较慢,达到目标状态花的时间就长。最优系数可通过实验调试得到。我们应该这样考虑,假定TagetAngle为目标角度,CurrentAngle为机器人目前角度。当TagetAngle和CurrentAngle相差较大的时候,我们设定一个较大的左右轮速差,这样机器人转动很快,是一个加速的动作,CurrentAngle和TagetAngle逐渐靠近。当CurrentAngle 和TagetAngle差距减小到某一个值的时候,我们应该减小左右轮速差,减小加速度,或者甚至采取“刹车”减速,使其最终停留在TagetAngle。尽管我们考虑的很周到,但是由于某种原因比如误差或者碰撞,我们的机器人的角度CurrentAngle有可能超过TagetAngle,这样相当于又回到了某一差距,只要我们的模型参数正确,就可以把误差减小并且实现转向的动作。此动作函数的函数名为Angle,功能是对机器人转角进行控制。其中参数说明:robot-执行动作机器人,desired_angle是机器人要达到的目标角度。其具体实现代码如下:void Angle ( Robot *robot, int desired_angle)int theta_e, vl, vr;/求目标角度与机器人当前角度之差theta_e = desired_angle - (int)robot-rotation; /将角度差控制在-180度到180度之间while (theta_e 180) theta_e -= 360;while (theta_e -180) theta_e += 360; /角度差为负钝角时,取其补交的正值if (theta_e 90) theta_e -= 180; /以下为不同情况对轮速的不同设置,以达到良好的控制效果if (abs(theta_e) 50) vl = (int)(-9./90.0 * (double) theta_e);vr = (int)(9./90.0 * (double)theta_e);else if (abs(theta_e) 20)vl = (int)(-11.0/90.0 * (double)theta_e);vr = (int)(11.0/90.0 * (double)theta_e);else if (abs(theta_e) 10)vl = (int)(-8.0/90.0 * (double)theta_e);vr = (int)(8.0/90.0 * (double)theta_e);Velocity (robot, vl, vr);转角实验效果图如下图4.2所示:(a) 转角前(b) 转角后图4.2转角实验效果图通过导入调用该动作函数的策略代码段,实现了对黄队四个机器人的原地转角控制。4.1.3 到定点动作到定点是一个基本的动作,可以有多种方式实现。到顶点是指机器人从当前位置运动到目标点并保持零速度。可由两部分运动实现:旋转和移动。当指定了目标点以后机器人就向目标点移动。机器人运动控制和两个因素有关:机器人到目标点的距离,以及机器人的运动方向和机器人与目标点连线方向的夹角。要是两个因素不断缩小,才能达到控制目的,否则,机器人将与目标点越来越远。其运动形式有多种。方法一:先做原地转向运动,再做直线运动。方法二:直接向目标点做弧线运动。从轨迹上看,方法一的运动轨迹要短一些,但是这里时间因素是考虑的关键,多数情况下方法二效率更高。因为方法二拥有更多的加速度,而方法一有一个原地加速减速的过程,降低了效率。这里给出方法二的实现: (4-2)式中f为某一增函数,最简单形式为k*d;d为机器人到目标点的距离。方法二的实现也有很多种,例如,比例控制法、比例余弦控制法和指数法等。比例余弦的算法为: (4-3)比例余弦控制法的主要问题在于比例系数比例增益Kp、角度增益Ka的选取,系数偏大使动作过大产生振荡,系数过小则动作缓慢而使完成动作时间过长,很难达到较好的控制效果。使用此法比使用比例控制法的一个好处就是,这个算法能使机器人在靠近目标点时,仍然保持一点的速度,左右轮速的计算式为(4-2)。此动作函数的函数名为Position,功能是使机器人向目标点移动。其中参数说明:robot-执行动作机器人,x-目标位置x坐标,y-目标位置y坐标。其具体实现代码如下:void Position( Robot *robot, double x, double y )int desired_angle = 0, theta_e = 0, d_angle = 0, vl, vr, vc = 70;double dx, dy, d_e, Ka = 10.0/90.0;dx = x - robot-pos.x;dy = y - robot-pos.y; /计算与目标位置的距离d_e = sqrt(dx * dx + dy * dy); /求的所需角度if (dx = 0 & dy = 0)desired_angle = 90;elsedesired_angle = (int)(180. / PI * atan2(double)(dy), (double)(dx);theta_e = desired_angle - (int)robot-rotation;/正规化角度while (theta_e 180) theta_e -= 360;while (theta_e 100.) Ka = 17. / 90.;else if (d_e 50)if (theta_e 95 | theta_e 180) if (d_e 5.0 & abs(theta_e) 40)Ka = 0.1;vr = (int)(-vc * (1.0 / (1.0 + exp(-3.0 * d_e) - 0.3) + Ka * theta_e);vl = (int)(-vc * (1.0 / (1.0 + exp(-3.0 * d_e) - 0.3) - Ka * theta_e);else if (theta_e -85)Velocity(robot, vl, vr);到定点实验效果图如下图4.3所示:(a) 出发前(b) 到达目标点图4.3到定点实验效果图通过导入调用该动作函数的策略代码段,实现了对黄队四号机器人的到球场中心位置的操作。4.1.4 定向运动动作在实际比赛中真的让机器人运动到某一点停下来的情况不是很多,更多的情况下要求机器人做定向运动。机器人沿某一方向运动,最好用又一个理想的速度。机器人定向运动示意图如图4.4所示。目标方向当前方向图4.4机器人定向运动示意图下面使用余弦轮速控制法来实现这个动作。通过计算机器人当前的方向角和目标运动方向之间的角度差,然后让机器人左右轮速具有一个如下公式要求的余弦函数关系达到。 (4-4)式中角度为机器人当前运动方向与目标方向之间的角度差;Vc为一指定速度。定向运动函数的函数原型为:void DirectMove ( Robot *robot, double desired_angle, double v_max, double k_dangle ),功能是使机器人向定方向运动。其中参数说明:robot-执行动作机器人,desired_angle-目标运动方向,v_max-运动最大速度,k_dangle-角度误差系数,当运行的方向误差小于角度误差系数k_dangle一定倍数可视为可以接受的范围。其部分源代码如下:/正规化角度至-180,180while (angle 180) angle -= 360;while (angle 5*k_dangle)if(angle=0 & angle = 90 & angle pos.x - env-predictedBall.pos.x;dy = robot-pos.y - env-predictedBall.pos.y;length = sqrt(dx*dx + dy*dy);/预测接近球用时add_time = (int)(fabs(length)/ (robot-velocityLeft + robot-velocityRight
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快乐成长的小故事(9篇)
- 金融市场数据分析报告表格
- 六年级议论文奉献爱500字(7篇)
- 采购合同管理及审核注意事项
- 成长路上我与书为伴演讲稿15篇
- 跳绳运动作文400字13篇范文
- 描述我成长过程中的一次转折事件作文12篇范文
- 小学生保护地球作文500字(14篇)
- 我的寒假周记作文12篇
- 市场租赁经营合同协议
- 小学生着装礼仪课件
- 实验室生物安全应急预案
- 九年级数学知识点【北师大版】:一元二次方程的根的代数式求值综合问题(培优强化30题)(原卷版)
- 《PCB设计与制作(基于Altium-Designer)》教材配套电子课件电子教案(全)完整版课件
- 四年级数学上册【近似数】专项练习题
- 新型活页式、工作手册式教材编写理论依据和编写体例
- 《税费核算与智能申报》课件全套 中职 导言 税收概述 学习情境1-7 增值税核算与智能申报-社保金及住房公积金核算与智能申报
- 血液标本采集与血涂片制备教学课件
- 易筋洗髓功由来参考教学课件
- 渗透检测记录
- 中考英语阅读理解题材Topic2学校生活与语言学习
评论
0/150
提交评论