此文获深圳科技论文一等奖AI-CODESYSTEMS在智能机器人教学.DOC

此文获深圳科技论文一等奖AI-CODESYSTEMS在智能机器人教学.DOC

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

此文获深圳市科技论文一等奖 深圳市罗湖外语学校 龚 睿 ?【摘要】 ??? 我国的信息技术教育是从原来计算机教学的基础上发展到今天的,其内容也将会随着信息技术的发展而变化。而智能机器人作为中小学校信息技术教育的另一载体的出现,不仅充实了信息技术教学的内容,也使我们对中小学校信息技术教育有了一个新的认识。使中小学的信息技术教育更全面的体现了信息技术的内涵。 ?? 中小学校的信息技术教育中如何进行智能机器人的教学,如何在程序设计中渗透其他学科的学习(特别是数学的学习),AI-CODE SYSTEMS是一套教育平台系统,以寓教于乐的方式,打破了传统教育的模式, 让大家在非压迫的竞争中极大的提高自己的学习水平。用户通过机器人控制接口控制机器人的动作,编制好的机器人可以放到战场上和其他用户写的机器人同台竞 技,在战斗的过程中感受到学习所带来的快乐。 ?? 使用户在玩的过程中不断学习程序设计和机器人策略算法。在这个过程中,为了学习程序设计,使用了AI- CODE SYSTEMS,因为他有趣,直观,在学习的同时您感到了快乐,可是在娱乐的同时您发现自己目前的知识存储不能给您更高的支持,所以为了得到更多的快乐,您又投入学习。AI-CODE SYSTEMS就是让你在玩,学习,玩,学习的循环过程中不断提高自己程序设计和策略算法设计的水平。 ??? 本文着重介绍数学在AIRobot中的应用。 【关键词】 AI-CODE SYSTEMS 智能机器人教学三角学的应用程序设计 几乎是最简单的机器人都会用到三角学,比方说敌人机器人在(ex,ey)坐标,自己在(mx,my)坐标,要向敌人方向射击,必须用三角学知识求得敌人坐标点到自己坐标点连线的方向,往此方向射击就是往敌人方向射击。这里有必要先介绍一下AIRobot的坐标系统,如下图所示,一个标准的笛卡尔坐标(国内数学教学通用的坐标系统),场地左下角坐标为(0,0),右下角为(地图宽,0),左上角为(0,地图高),右上角为(地图宽,地图高),场地中水平向右为0度方向,水平向上为90度方向等。 (图1,AIRobot坐标系统) ? 现在我来示范一下在AIRobot中怎样用到三角知识,当机器人扫描到敌人后会触发onScannedRobot事件函数,并传入一个ScannedRobotEvent作为参数,此ScannedRobotEvent包含了敌人的坐标,按照上面提到的方法,我们利用此坐标和自己机器人的坐标计算射击方向,如下:? double heading = Math.atan2(event.getY()-getBody().getY(),event.getX()-getBody().getX()); 由此我们计算到了敌人所在方向,调用fire(heading, fire_power)即可向敌人方向射击。是的这里的确应用了三角知识,但这几乎是最简单的应用,也许你认为这算不上什么,好的,为了说服你我只好举更多的例子。 上个例子是关于瞄准射击的,这个例子将应用在机器人的运动上面,在古代战舰的战斗中,由于战舰的炮都是装在战舰的侧身,于是战斗的时候总是要侧对着敌人才能达到最佳的攻击效果,那么在AIRobot坦克对战的时候此效果会有好处吗?虽然AIRobot机器人可以向任何方向发射炮弹,但是假如你侧对着敌人,自己躲避子弹的范围会增加(你要知道AIRobot中的炮弹是对一个方向有效而不仅仅是对一个点有效),因此为了减少自己被击中的机会,我让自己的机器人始终侧对着敌人运动。好,我们现在来实现这个运动吧,AIRobot机器人的运动控制函数很简洁,只有两个,其中turn()控制转动速度,move()控制移动速度,这里我们关注turn,我们要让自己的机器人始终转向侧对敌人的方向就达到目的了,为了使说明更直观我这作了一幅图,见图2,假如敌人在P1点,自己在P0点,此时自己的车身方向为L0方向(熟悉AIRobot API的应该知道这总是已知的,可以通过getBody().getHeading()得到),通过上面刚刚介绍的方法可以得到敌人相对自己的方向L1(L1就等于上面第一个例子中的heading),要想侧身对着敌人,那么自己需要转动到垂直于L1的方向,如图中的L2方向或者L2的反方向,这里我们选择L2方向(当然你也可以选择它的反方向),L2的计算就又要用到三角数学知识了,由于L2垂直于L1可以得出L2 = L1-90度(L1+90度得到L2的反方向),得到了L2之后就好办了,从目前的车身方向转到目的方向,须转动的角度等于目的方向减去目前的方向,因此需要转动的角度disAngle = L2 – L0,如果使用机器人快车,模块库中就包含了这样的模块,直接使用即可以让自己的机器人转到L2方向,如果直接写机器人代码,可以使用每

文档评论(0)

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

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

1亿VIP精品文档

相关文档