第3章 FIRA仿真比赛_第1页
第3章 FIRA仿真比赛_第2页
第3章 FIRA仿真比赛_第3页
第3章 FIRA仿真比赛_第4页
第3章 FIRA仿真比赛_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 FIRA仿真比赛刘钊目录 一、背景 二、仿真平台介绍 三、创建一个简单的策略程序 四、比赛规则 五、方法与模式举例 六、调试方法一、背景半自主型机器人足球类人型机器人足球全自主型机器人足球仿真机器人足球足球机器人系统基本框架 机器人执行子系统动作执行体 机器人感知子系统了解环境信息和位置信息 机器人策略子系统多机器人协作、单机器人的技术动作和运动规划 机器人通讯子系统信息交换 在机器人足球的四个子系统中,决策子系统是核心和灵魂,它决定机器人足球系统的智能度,是人工智能的先进理论应用和测试的平台FIRA:基于视觉的遥控足球机器人系统足球机器人策略子系统简介策略子系统(大脑)到底要什么功能

2、?建立、并灵活使用各种模型;建立、并灵活使用各种规则;存储、选择存储、选择足球机器人策略子系统简介是一个典型的智能系统: 获得信息(感知、记忆、学习) 分析决策(信息处理) 输出动作(执行)设计模型 设计模型1:输入输出响应设计模型 设计模型2:世界模型执行决策规则输入输出 设计模型2优点: 建立世界模型,具有记忆功能; 规则分离出来,形成模块; 输出是有缓冲的; 设计模型2问题: 世界模型单一; 规则的使用不连续;前锋后卫守门员环境感知模型传感器信息融合信息预处理特征状态提取队形确定及队形变换动作1队形m队形1.既定队形图6-5:足球机器人系统四层决策推理模型示意图队形角色1角色n.角色分配

3、及角色转换角色集1队形的角色集角色集m.动作N.动作A动作An.动作层动作选择足球机器人系统四层决策推理模型示意图设计模型3:二、仿真平台介绍 电脑: 奔腾 600MHZ的处理器 内存 265M Windows 98 2000 XP 操作系统 此仿真软件(1.5版本)可以在下面的网站上下载: Http:/ 机器人的场地分配HomeHome代表己方代表己方机器人机器人OppOpp代表对方机代表对方机器人器人箭头所指的方向箭头所指的方向为机器人的为机器人的方向方向home1home1home2home2home3home3home4home4opp1opp1opp2opp2opp3opp3opp4

4、opp4opp0opp0home0home0比赛基本过程 1. 双方将自己的DLL文件放入C:Strategyblue(yellow)里面. 2.输入自己的DLL文件名. 3.系统会自动调用一次你的程序.三、创建一个简单的策略程序 1。打开V 或VC+6.0 2。创建(MFC DLL或win32 dll)项目, 取项目名,比如Strategy. 3。添加指定结构定义(一般在stdafx.h里):typedef struct double x, y,z; Vector3D; typedef struct long left, right, top, bottom; Bounds;typedef

5、struct Vector3D pos; Ball;typedef struct Vector3D pos;double rotation; OpponentRobot;typedef struct Vector3D pos;double rotation,velocityLeft, velocityRight; Robot;typedef struct Robot home5;OpponentRobot opponent5;Ball currentBall, lastBall, predictedBall;Bounds fieldBound, goalBound;long gameState

6、;long whosBall;void *userData; Environment; 4。添加指定外部函数: 在Strategy.h里:extern C void _declspec(dllexport) Create ( Environment *env ); extern C void _declspec(dllexport) Strategy ( Environment *env );extern C void _declspec(dllexport) Destroy ( Environment *env ); 在Strategy.cpp里:extern C void Create (

7、 Environment *env )extern C void Strategy ( Environment *env ) extern C void Destroy ( Environment *env ) 5。完成!Strategy () 函数void Strategy ( Environment *env )switch (env-gameState)case 0:MoonFollowOpponent ( &env-home 1, &env-opponent 2 );MoonFollowOpponent ( &env-home 2, &env-oppon

8、ent 3 );MoonFollowOpponent ( &env-home 3, &env-opponent 4 );MoonAttack ( &env-home 4, env );Goalie ( &env-home 0, env );break;case FREE_BALL:四、比赛规则 见附件。比赛演示 演示比赛 传中射门 门前盘带五、方法与模式举例 1.信息获取与存储信息获取、积累、预测 信息获取:感觉、查询、解析。 信息积累:保存必要的信息。 信息预测:非常重要、困难;空间大,要有针对性;球的位置预测 考虑因素: 速度衰减(建立速度正常衰减模型) 边

9、界反弹与衰减(建立边界反弹模型) 队员干扰(建立对手干扰模型) 关于坐标系建立; Vector3D turn_blue(Vector3D p)Vector3D pp;pp.x=p.y-41.8;pp.y=93.4-p.x; return pp; Vector3D turn_yellow(Vector3D p)Vector3D pp;pp.x=41.8-p.y;pp.y=p.x-6.8; return pp; double turn_blue(double rotate)rotate=270+rotate; if(rotate=0)rotate-=360;return (rotate+360);

10、double turn_yellow(double rotate)rotate=450+rotate;if(rotate=0)rotate-=360;return (rotate+360);关于球的信息:void predict_ball_pos(void)double dx = my_head.ball.loc_now.x-my_head.ball.loc_last.x; double dy = my_head.ball.loc_now.y-my_head.ball.loc_last.y;double ra=0.45; /速度衰减率for(int i=1;iPre_View_No;i+) /

11、预测double try_x = my_head.ball.loc_array_prei-1.x+dx;double try_y = my_head.ball.loc_array_prei-1.y+dy;if(try_x BALL_MOST_RIGHT)dx=-dx*ra;else if(try_y BALL_MOST_UP)dy=-dy*ra;else if( try_y try_x-29.6)dx=-dy*ra;dy=-dx*ra;else if(try_y try_x + 116)dx=dy*ra;dy=dx*ra;else if(try_y -try_x + 116)dx=-dy*ra

12、;dy=-dx*ra; my_head.ball.loc_array_prei.x=my_head.ball.loc_array_prei-1.x+dx; my_head.ball.loc_array_prei.y=my_head.ball.loc_array_prei-1.y+dy; / for every seconds; / end predictball 关于队员的信息:typedef struct myRobotint FREE;int fore_back;Vector3D loc_last;Vector3D loc_now;Vector3D loc_next;Vector3D su

13、du_vector; double sudu_abs;double angle_last;double angle_now;double angle_next;double angle_v;double angle_move;Vector3D loc_catch_ball;Vector3D loc_shoot_to_point;double dist_to_ball;double dist_to_ball_next_time; double dist_to_my_goal;double dist_to_shoumen_loc;double dist_to_fangshou_loc;double

14、 angle_ball_to_me;double key_time;double power;double dist_to_catch_ball;double dist_to_catch_ball_next_time;double angle_catch_ball_to_me;double angle_ball_should;double Q;double last_add_r;double last_add_l;bool is_ready_outline;int out_line_num;bool outline_is_left_or_right;double outline_long;bo

15、ol could_turn; myRobot; 关于世界的信息:typedef struct myData Environment* env;myBall ball; myRobot his5;myRobot my5;Vector3D loc_shoumen;Vector3D loc_fangshou;int p_my_qianfeng;int p_my_youyi;int p_my_zuoyi;int p_my_houwei;int p_my_shoumen;int p_his_qianfeng;int p_his_xiezu;int p_his_youyi;int p_his_zuoyi;

16、int my_qianfeng_state; myData; 关于自动信息获取:边界信息;球速度衰减,反弹;球员加速度(线速度角速度);球员减速情况等.常用决策框架 集中控制型 分布控制型 时时规划型 阶段规划型常用决策框架 集中控制型、时时规划型 举例:获取信息;局势判断;总体任务确定;角色分配;任务分配;动作确定;输出.环境感知模型传感器信息融合信息预处理特征状态提取队形确定及队形变换动作1队形m队形1.既定队形图6-5:足球机器人系统四层决策推理模型示意图队形角色1角色n.角色分配及角色转换角色集1队形的角色集角色集m.动作N.动作A动作An.动作层动作选择足球机器人系统四层决策推理模型

17、示意图模块间的关系?模块间的关系 策略:决定目标(短期、中期目标); 模式:定义角色,分配角色; 动作:具体的安排。 =特点= 层次不同; 需要评价; 相互作用;决策形成的基本模式在数据与模型中叠代:选择目标;搜索行动方案;更新数据与模型直到收敛(满意)。FIRA 中的例子 当前状态:“我”在A点,球在B点,其速度为V。 目标:尽快上前,经过1次击球,球以最大速度到C。 如何行动? 分析:确定击球可能发生的时间是问题的关键。 搜索方法1(确定步伐): 尝试:1s,2s,3s, , 之后,球员是否能够刚好到达合适的位置。 改变步伐算法描述:step初值设置,一般为1;如果要改变方向, step=

18、 step/2; 如果不要改变方向, step= step*2; 如果满意则完成,否则,转. 子问题: 当前状态:“我”在A点。 目标:尽快上前到B,且到达B后运动速度向C。 如何行动?时间耗费多少? = 方法1:查表。 方法2:数学函数计算法。方法1:十字交叉法 在A点与B点连线的中点,作垂线,与目的方向BC交与X点,则射线AX为目前小车的前进的方向;动态地跟踪点X,即可以完成任务(到达B点,方向大约为BC)。方法2:如何行动? r=abs(Q)/60+dist_to_key_point/6; Key_point.x= key_point.x+ r* cos(angle_ball_should*PI/180+PI-Q*PI/360); Key_point.y= key_point.y + r* sin(angle_ball_should*PI/180+PI-Q*PI/360 ); act_daoda(no,Key_point,125);时间耗费 时间耗费因素:行动方式;到目的地的距离;与目标角度的角度差;当前小车的角度与规划方向的差;时间耗费 d=dist(p0,p_mubiao); a=angle(p_mubiao,p0)-angle(p_mubiao_to,p_mubiao);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论