进攻?防守? - 中鸣机器人.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进攻?防守? - 中鸣机器人

进攻?防守? ——AI-RCJ虚拟足球机器人设置左右两边马达转向及速度,需要控制直走多长距离还要设置时间延时,而在RCJ 4.0中只需设置前进距离就可以了。在RCJ4.0上还多了数学上各种测量三角函数及点线距离和画圆、线、方型的图标。也就是说,RCJ4.0中设计主要面向解决问题的思路上而不在于具体实施上,这样便于初学者训练逻辑解决问题的方法而不再受到各种具体实施繁琐的硬件设置束缚。 大体上知道RCJ4.0有以上的特征,真正要熟识还需通过教学实践。 RCJ4.0是图形化虚拟足球编程软件,当然以编出各种各样进攻和防守的机器人为主要任务。怎样教学使学生编出来呢? 我的学生在接触这个软件之前已经学习了VB及机器人快车,编程的过程、制作机器人的过程都有所了解。这个虚拟足球软件应该是这些二合为一,既需编程又需对真实的机器人的运动有所了解。制作真实的机器人过程是—— 功能需求分析——制作机器人外观——编程——运行调试和优化。而我将这个制作过程中的“制作机器人外观“步骤删除剩下功能需求分析、编程、运行调试和优化。其中编程又细分为:摆列图标`——连线——设置属性—— 编译。 在教学生编出程序之前先让学生理解一个概念,就是怎样定义在一个平面上物体的位置,这个问题很重要,无论是控制机器人还是控制球、检测球都要用到。我就举了一个例子,在课件上划了几个圆,问同学怎样清楚描述几个圆的位置特征。同学们思考了良久但讲得都很模糊。我就引申前面在VB中用数字1、2、3来代替猜拳的石头、剪刀、布比较的方法提问能不能用同样的原理来处理。答案当然是肯定的。只是不再使用一个数字而是用XY坐标轴,分别测量平行方向和纵向离原点的距离来说明一个物体在一个平面的具体位置。在虚拟平台上这个原点就在场地的右下角。 虚拟进攻足球机器人 功能需求分析: 1、能够检测到球场的高和宽(因为我们要利用这些数值来定义出球场上各个物体的位置) 2、能够测量出龙门的长度和位置(决定将球踢到哪个地方) 3、能够检测出进攻方向(防止大乌龙球) 4、能够进攻进球(这是进攻足球机器人最重要的功能) 编程: 首先要选择图标解决刚才分析出来的功能问题。如能够检测到球场的高和宽有两个图标和测出height、width就可以解决。龙门的长度和位置,尤其是中心点位置分别可用图标和计算图标得出goallong(球门大小)和goalx(进攻球门X坐标)、goaly(进攻球门Y坐标)。检测自身进攻方向可以用图标得出并保存到变量attack中,若向右进攻则attack0,若向左进攻则attack0。最后解决的是怎样进攻进球呢。这就要讲求策略,最简单就是用图标将球踢到进攻龙门处,即让这个图标的X值为goalx,Y值为goaly。决定goalx的是进攻方向,向右进攻时goalx就是width,向左进攻goalx就是0。怎样决定goaly呢。如果只是将球踢到球门中心,显然比较单一很容易就被防住,让一个机器人在球门中心停住不动这种进攻就无效了,怎样才能比较多元地进攻呢?可以通过判断球的Y坐标(bally)来决定射球到最近的龙门关键点上(分上中下三路进攻)。通过以下的图解就很清楚了: 设置属性过程中首先要设置变量,刚才分析出要定义的变量有:Height、width、goallong、goalx、goaly、attack、bally七个。其中除了attack为int类型,其它都是坐标值double型。最后得出的程序为: 运行调试和优化: 编译好后,通过工具选项中AI-RCJ运行平台进行调试,新建比赛在Default包中找到相应程序名(JMAPPx或改成attack的文件名)添加后测试。让学生思考,如果让两个进攻足球机器人为一对搭配配合进攻该怎样改程序?(提示最后进攻的条件得出的结果可以变化,也可以自己定义根据是否碰到球、对方、墙壁来决定进攻时的各种方位) 虚拟防守足球机器人 功能需求分析: 1、能够检测到球场的高和宽 2、能够测量出龙门的长度和位置 3、能够检测出防守方向 4、能够防守龙门 编程: 可以说,在这里防守和进攻的原理很相似,都需要检测球场的高和宽以及龙门的长度和位置,不同的是进攻的龙门和防守的龙门的方向刚好相反,而且进攻是使球进入龙门而防守是使机器人将球挡于龙门外。相同的和前面一样,主要说说不同的。防守时,不再用图标来将球踢到某个位置,而是用来控制机器人的位置挡球于门外。怎样控制呢?也用goalx和goaly来决定吧。当attack0时,向右进攻,goalx应该是左边龙门的坐标X,但通常守门员是在禁区里活动的,所以将这条防守线前移一些暂定为离龙门50的位置,则goa

文档评论(0)

zhaoxiaoj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档