分享
 
 
 

机器人策略程序设计(1)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

机器人策略程序设计框架

当欧洲足球联赛踢的漫天飞舞的时候,当国人又为国足难过的时候,机器人足球比赛也在热火朝天的举行着,这是考虑的一个3对3机器人的策略!

建立一个机器人群体类,该类实现机器人群体对球场形式的感知和提炼,综合形式决定战略目标,角色分配和各机器人的运动规划;用基本动作实现当前运动规划。总之,机器人群体完成了形式分析――判断和决定――行动的三阶段任务,最终由动作控制命令实现整体意图。其作用时把策略库组织成一个自包容的参数,方法库,模拟一个智能群体的全部功能:感知――决定――行动

1.机器人群体类的头文件:

CRobot

{

//预处理数据

RAWDATA rawData;//原始数据(当前机器人 球的方向)

NXTDATA nxtData;;//预测的后几个时刻机器人和球的方位

REFDATA refData; //提炼的决策依据

//预处理函数

Void GerRawData();//从VisionView.cpp获取当前全局数据 设置rawData

Void Predict();//根据当前和以前的机器人,球方位预测 预测器

Void SetRefData();//预处理器 一次调用三个预处理函数

//协调层数据

#define KICK_OFF 10 //标准形式化

#define PENALTY_KICK 11

#define FREE_KICK 12

#define FREE_BALL 13

#define GOALIE_LICK 14

#define DEFENS15

#define GoalieDefend 0 //禁区防守,120阵型

#define DoubleDefend 1 //重叠防守,120阵型

#define PassiveAttack 2//保守进攻,111阵型

#define ActiveAttack 3 //积极进攻,102阵型

Int nSituation;//形式,取以上4种值之一

Int attacker1;//主攻角色

Int attacker2;//协攻角色

Int defender1;//主守角色

Int defender2;//协守角色

//协调层函数

Void JudgeSituation();//依据refData判断形式,对nSituation赋值

Void InitRole();//根据形势和refData分配角色,即各角色赋值相应机器人ID

//运动规划层数据

#define Shoot 100 //单人射门技术动作

#define ………….. //其它战术动作

#define 2pass1 200 //2过1战术动作

#define ………….. //其它战术动作

#define Move 00 //直走基本动作

#define Angle 01 //转角基本动作

#define Position 02 //移动基本动作

#define …………. //其它基本动作

PATH path; //规划路径结构(链表30)-2个机器人

BOOL bIfChange;//是否维持原路径

Int nTechAct;.//技术动作代号

Int nCorAct;//战术动作代号 不包含具体参数

ACT act; //当前动作结构(包含int nBaseAct1,double x1,y1,&1,v1

// int nBaseAct2,double x1,y1, &2,v2

// int nBaseAct3,x3,y3, &3,v3)

//运动规划层函数

Void Makedecision(); //根据形式,角色和refData规划路径,确定2个机器人的技术动作

Void IfchangeDecision();//是否改变当前路径

MakeDecision 的工作原理

No IfchangeDecision() Yes 形式判断

禁区防守 重叠防守 保守防守 积极进攻 用switch-case语句

分别根据角色 refData决定战术动作序号

决定3个机器人的战术动作序号

决定3个机器人的技术动作序号

决定3个机器人的当前基本动作,存入act结构

//动作控制层函数;

Void Velocity(whichrobot,Vl,Vr);

Move(whichrobot,v) //左右轮速度相同

Void Angle(whichrobot,cur_&,desired_&); 反馈控制机制精确控制

Void Position(whichrobot,x,y, &,dx,dy,d&);

Void MakeAction();

{

Switch act.nBaseAct1

{

Case Move:

Move(Home1,v1);

Break;

Case Angle:

Case Position:

}

Switch act.nBaseAct2

{

Case ……….

}

Switch act.nBaseAct2

{

Case ……….

}

}

说明:MakeActions()的输入是act结构

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有