- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AIRCJ仿真机器人足球比赛
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 团队机器人足球比赛仿真编程 组成角色自动变化 Wiki足球队的“抢点” 机器人的调试 检查和修正编写的机器人程序 输出方法 向控制台输出字符串信息 向控制台输出变量值 机器人的调试 向控制台输出字符串信息 println(“x”); //x是要输出的字符串 向控制台输出变量值 printDouble(x); //x是要输出的double数据 printLong(x); //x是要输出的int数据 printSD(msg,x); //msg是字符串,x是double数据 printSL(msg,x); // msg是字符串, x是要输出的int数据 认识机器人足球比赛仿真编程 使用“机器人快车”编程 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 单个机器人足球比赛仿真编程 撞墙检测 判断跟那部分墙相撞 跟左、右墙相撞 ball_x 0 、 ball_x CourtWidth 跟顶部、底部墙相撞 ball_y 0 、 ball_y height 单个机器人足球比赛仿真编程 撞墙检测 修正某点的坐标值 如果指定的点超过了场地范围,则需要修正该点的坐标值. 单个机器人足球比赛仿真编程 撞墙检测 modifyInCourt(X, Y, reserve); x, y 指定的点 reserve 与边界保留的距离 单个机器人足球比赛仿真编程 撞墙检测 单个机器人足球比赛仿真编程 球的运动预测 球在n个单位时间后所在的位置 假设一个单位时间内,从C运动到B,求B的坐标 1、求C的坐标 2、根据球运动方向、运动速度求B的坐标 3、重新计算球的速度 4、判断球是否撞墙 重复2、3、4,直到n个单位时间或球停止 单个机器人足球比赛仿真编程 球的运动预测 球在n个时间后所在的位置 程序 应用(进攻程序2、防守程序2) 单个机器人足球比赛仿真编程 对射门程序的优化 R是足球和机器人半径之和;AB=AC D点是最佳的踢球点 AD AB或AC,可直接到D点;AD AB或AC,需回身拿球 单个机器人足球比赛仿真编程 对射门程序的优化 需回身拿球时,考虑往C运动,还是往B运动? BD CD,往C点运动,否则往B点运动。 单个机器人足球比赛仿真编程 对射门程序的优化 计算AD、AB、BD、CD 比较AD、AB;比较BD、CD? 单个机器人足球比赛仿真编程 对射门程序的优化 点o(x,y)、R已知,求出OB、OC、OD的方向,即可求得B、C、D,再由两点间距离求AB、AD、BD、BC 单个机器人足球比赛仿真编程 对射门程序的优化 先求AO的方向和角AOB,再求出OB、OC的方向。 OD的方向跟EO方向一致。 单个机器人足球比赛仿真编程 对射门程序的优化 heading(X1,Y2, X2,Y2)//求两点的方向 distance(X1,Y2, X2,Y2)//求两点间距离 acos(R/distanceToTarget)//求角度 setMoveToward(X, Y, MoveVelocity)//以设定的速度移动到某个点 单个机器人足球比赛仿真编程 基于事件消息的编程 是一种以消息为导向的编程方式,通过对机器人各时刻产生的事件做响应,控制机器人进一步的动作。 单个机器人足球比赛仿真编程 Action和Action处理函数 Action是在特定时刻触发的事件。例如,撞墙时会有HitWallAction被触发。 每个Action都有一个对应的Action处理函数。例如,处理撞墙的有onHitWall() 使用头文件ActionListeningRobot.h 单个机器人足球比赛仿真编程 Action和Action处理函数 每个单位时间内,如果一个Action被触发,对应的Action处理函数就会被调用。 当所有的Action函数被处理完后,execute函数就会被执行。 可以在Action函数中加入对机器人的控制代码,实现对机器人的控制。 单个机器人足球比赛仿真编程 TickAction和OnTick() TickAction 每个单位时间都会触发 #include airobot/c/ActionListeningRobot.h void onTick(struct TickAction* action) { setMoveVelocity(10); setTurnVelocity(toRadians(10)); } 团队机器人足球比赛仿真
原创力文档


文档评论(0)