- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AI—RCJ虚拟足球机器人软件教学随笔
进攻?防守?
——AI-RCJ虚拟足球机器人软件教学随笔
刚接触到AI-RCJ虚拟足球机器人软件时,感觉和3.0以上版本的机器人快车相差无几,认真摸索以后发现区别还是很大的。
普通的机器人快车软件每一个图标都是和机器人实际的电子动作和感应部件相关联,譬如说控制一个马达转动、发射红外线、检测触碰传感器等,而RCJ 4.0中没有具体的机器部件需要控制而改为直接说明一个运动或检测功能的图标。具体举个例子,在普通的机器人快车里若需使机器人直走,那么需要两个马达控制图标设置左右两边马达转向及速度,需要控制直走多长距离还要设置时间延时,而在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
Y
t
width,height/2+goallong/2
0,height/2+goallong/2
width,height/2
0,height/2
width,height/2-goallong/2
0,height/2-goallong/2
X
width
0,0
设置属性过程中首先要设置变量,刚才分析出要定义的变量有:Height、width、goallong、goalx、goaly、attack、bally七个。其中除了attack为int类型,其它都是坐标值double型。最后得出的程序为:
运行调试和优化:
编译好后,通过工具选项中AI-RCJ运行平台进行调试,新建比赛在Default包中找到相应程序名(JMAPPx或改成attack的文件名)添加后测试。让学生思考,如果让两个进攻足球机器人为一对搭配配合进攻该怎样改程序?(提示最后进攻的条件得出的结果可以变化,也可以
文档评论(0)