- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
校赛仿真2D第二次培训技术部分 向server发送得命令 在SoccerTypes.h里面得commandT有着向server发送得所有得命令种类 不是所有得命令都需要用到,大概有一半得指令不会涉及到,是关于代码得底层定位得,大家不用深究 最有用得命令型:CMD_DASH,CMD_TURN, CMD_TURNNECK, CMD_KICK, CMD_TACKLE等. CMD_ILLEGAL 故名思意,是非法得命令,如 SoccerCommand soc(CMD_ILLEGAL); 那么这个soc就是一个空的命令,如果执行ACT-putCommandInQueue(soc); 那么代码会自行处理掉这个soc,就好像没有运行过这句指令一样 下面解释一下关于ACT-putCommandInQueue(soc); Soc就像前面定义得是一个命令 那么我们如何让agent(球员)运行这个命令呢,我们只要 ACT-putCommandInQueue(soc); 就可以了. (每一周期只能发送一个主命令,后面在具体说) CMD_DASH 这个命令是让球员能跑起来得核心命令 当一个球员发送dash100时,那么他就朝着身体朝向得到一个加速度,(具体参数看技术手册),然后得到相应得速度, 也就是说一直发送dash100得话球员会一直向着身体朝向向前跑 当一个球员发送dash-100时,那么他就朝着身体朝向得反方向得到一个加速度 CMD_TURN 这个命令是用来转身得指令,但是注意了如果发CMD_TURN,180,并不是说是转身180度,他和自身相应得速度还有一定得关系 最大转身角度为180到-180 跑动:跑向一点 比如我们让球员跑向(0,0)点,可以用命令函数moveToPos(VecPosition(0,0),7.0) 实际上moveToPos这个函数就是组合了CMD_DASH和CMD_TURN而达到了跑动得目的. 大致就是先转向那个要跑得点然后dash CMD_TURNNECK 这个命令是这次校赛和首届校赛得最大不同之处,因为现在是局部视觉,所以需要通过agent不断得转动脖子来尽量多得看到有用得信息 首先说明一下CMD_TURNNECK和CMD_TURN得不同 CMD_TURNNECK是转动脖子朝向 CMD_TURN是转动身体朝向,这是两个不同得方向 主命令与复命令 CMD_TURNNECK这是讲到得第一个副命令 主命令一周期只能发一个,比如一个周期同时发送CMD_DASH和CMD_TURN的话,只会执行一个命令. 不同得复命令一周期可以发送多个,比如CMD_TURNNECK和CMD_SAY这两个可以在一周起同时发送 当我们发送CMD_TURN得命令时,如果不发送CMD_TURNNECK命令时,脖子朝向会和身体得转动而相应得转动 turnNeck还有其他得一些限制,如脖子和身体的夹角不能大于90度等 关于turnNeck得使用可以看一下turnNeckToPoint这个函数 CMD_CHANGEVIEW 这个命令是改变视觉得角度得命令 由于这个命令得使用比较复杂,涉及到一些底层问题,所以我们已经在程序内部做了一定得处理(大家不用管) 视觉得模式是2次narrow(45度视角),一次normal(90度视角) 这是最好得视觉模式,大家不用改,只需要控制agent得脖子转向就可以了 CMD_CATCH 这是守门员的专门命令 Catch的范围是和守门员中心距离2米的一个圆 CMD_KICK 这个命令的目的就是发给球一个加速度 如果想要把球踢向(0,0),只要执行kickTo(VecPosition(0,0),2.7)就可以了,2.7指得是球到达(0,0)后想要的速度 CMD_MOVE 这是在开场前,以及守门员抓住球后可以发的瞬时移动得命令. CMD_SAY 通讯时候用的命令,可以不用管,在通讯中已经做了处理 CMD_TACKLE 铲球命令 虽然在上一界校赛中没有人用过,但是是一个非常有用的命令,不过对于初期代码的开发帮助不大 具体的用法可以查技术手册 CMD_ATTENTIONTO 可以说是听谁的命令 只要会用listenTo命令就可以了 比如listenTo(一号队员) 命令的介绍就到这里 其他命令可以不用管,没有帮助 带球方法介绍 UVA底层得带球函数dribble Dirbble函数可以选择带球角度和带球方向,可以说是一个比较实际,好用的带球函数 Dribble主要思想就是向带球方向发送kick命令,然后再去截球,这就实现了带球. 当然这种带球方法完全没有考虑对手 其他带球思想介绍 人球一体 特点:每周期都可以选择发送kick或者dash命令,具体做法比较复杂,也没有最好的算法,有兴趣的可以找一下今年10月苏州robocup
原创力文档


文档评论(0)