仿真机器人足球比赛11vs11策略浅谈摘要:仿真系统所要做的是在计算机系统上给用户提供一个类似于真实世界的虚拟环境。仿真机器人足球比赛程序:根据赛方给定的仿真平台和底层,研究了底层函数以及机器人足球比赛参数传递机制后,选手需要在底层中的StrategySystem.cpp中编写自己的策略部分,然后双方球队把策略加载到平台上进行比赛,按照既定的规则决出正负。
关键词:机器人足球比赛仿真平台(11vs11)使用;仿真机器人足球比赛(11vs11)底层优化方法
中图分类号:TP242 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02
仿真机器人足球比赛(SimuroSot)
仿真机器人足球比赛,就是在计算机系统上给用户提供一个类似于真实世界的虚拟环境,我们可以在平台上通过运行编写好的底层程序来实现机器人足球的比赛大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。
一、机器人足球仿真平台
机器人足球仿真平台相当于现实中的球场场地,主要提供机器人比赛的场地。
(一)平台三大部分
1.CStrategySystem();
//系统层----用编写基本动作函数和处理数据的辅助函数
2.void ReceiveData(ReceiveRobot *r,double GameTime,int GameMode);大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
//数据层-----用以获取平台返还数据
3.void Action();
//执行层----实现机器人的具体动作
(二)台常用变量定义
FPoint KickTag;
//踢球目标,KickTag含(x,y,angle)三个参数
CPoint KickTag;
//踢球目标,KickTag含(x,y)两个参数
Robot robot[23];
//22号为足球,0——10为我方球员,11——21为对方球员。
Robot *Home[11],*Ball;
//我方队员和足球。由于以上两个变量是结构指针,调用时应该用以下形式
例如: Home[0]->Position.xBall->Position.x
Robot *OGK,*OMK;//对方守门员、主要踢球者
int WhichK; //踢球者
double LenH,LenO;
//足球距自己大门,对方大门的距离
二、仿真机器人足球比赛底层优化
(一)底层的主要结构
主函数:Action()——决策函数,在此进行策略编写构造函数:CStrategySystem()——对成员变量初始值的设定初始计算:CalcSpeed()——对平台数据的计算以及状态判断
数据恢复:DataReset()
——数据的重置
(二)基本函数功能分析
void CalcSpeed(); //计算速度、角度大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
void PositionAcc(int which, FPoint point, bool NeedSlow=false); //精确跑位
void Position(int which, FPoint point);
//一般跑位
void Position Slow(int which,FPoint point);//慢速跑位
解析:通常用一般跑位函数进行机器的跑位,效果较好。11vs11机器人在比赛时速度都较快,移动速度很快,不适宜用精确跑位和慢速跑位。
void PositionGoal(FPoint point); //守门员跑位
解析:一般不用守门员跑位函数,底层自带的守门员函数已经比较强大了,守门员的主要任务就是防守,所以通常比赛不用守门员函数。
double PositionDirCircle(int which, FPoint tag, double r=CircleR, int lr=0); //切线圆跑位
解析:切线圆跑位函数是个很优质的跑位的函数,它能保证机器人沿切线取很短的距离和很大速度跑出去。这个函数在比赛进攻和防守中都常用到。
void PositionDirMiddle(int which, FPoint tag); //中位线跑位
解析:中位线跑位就是沿着cy()
void Velocity(int which, int vL, int vR); //设置机器人左右轮速
Kick(); //踢球
解析:(缺点)踢球方向不准,未对球运动方向预测,机器人存在卡死现象。
方法调用条件不满足:无防碰撞机制。
三、仿真机器人足球比赛策略
(一)编写策略建议
1.分区不要太细
2.相邻分区阵型要相容
3.不要随意更换机器人角色
4.注意函数使用条件
5.严格控制犯规
(二)
评论留言