仿真机器人足球
// 场地上边界 // 场地下边界 // 场地右边界 // 场地左边界 // 球门上边界 // 球门下边界 // 球门右边界 // 球门左边界
4. 控球方
❖ const long ANYONES_BALL = 0; ❖ const long BLUE_BALL = 1; ❖ const long YELLOW_BALL = 2;
7.小球的位置定义
typedef struct {
Vector3D pos; } Ball;
// 小球的坐标位置
10
8.场地区域范围
typedef struct {
long left, right, top, bottom; } Bounds;
07
2.7 程序每周期发送的数据
策略程序发送给仿真平台的数据: ❖ 己方( home[i] )每个机器人的左轮速度(vl)和
右轮速度(vr) ❖ 注:当前发送的数据要到下一周期才能执行。
3.策略程序
3.1 策略类视图
02
3.2 环境接口文件InterFace.h 03
1.环境信息
//主要的定义,包含所有运行时的的信息,由系统刷新
2.3 场地信息介绍
03
(6.8118, 77.2392)
(93.4259, 77.2392)
பைடு நூலகம்(:)
单 位 英 寸
(6.8118, 6.3730) (0,0) 说明:1英寸= 2.54厘米
(93.4259, 6.3730)
(:)
2.4 场地的各种标志及尺寸 04
单 位 厘 米
2.5 球与车的长度尺寸 05
velocityRight; } Robot
// x 和 y 为坐标值
// 机器人坐标 // 机器人方向角 // 机器人左右轮速度
08
6.对方机器人的信息的定义
typedef struct {
Vector3D pos; double rotation; } OpponentRobot;
// 机器人的坐标位置 // 机器人当前的转角
2.仿真平台与策略程序的关系
01
2.1 什么是策略程序?
❖ 定义: 策略程序就是自己编写的能够使仿真平台中机器人按照预 定方式运动的程序。
❖ 通俗的来说,就是能够打比赛的程序。
02
2.2 仿真平台与程序的通讯方式
策略程序将接受的
策略程序接受数据
数据进行处理
MLS平台
策略程序发送数据 MLS策略程序
opp2 opp4
home3 home1
03
机器人的辨认
❖ 每方队员有五名,分别用不同的颜色 来标示,中间色块代表队伍的颜色, 左下角色块是区分不同队员的标识:
0号一般是守门员,用大红色表示; 1号用紫色表示, 2号用紫红色表示; 3号用绿色表示, 4号用蓝绿色表示;
比赛规则:开球(place kick)
❖ C. 开始比赛 ❖ D. 当前时间/比分 ❖ E. 修改时间和比分 ❖ G. 开始一场新的比赛 ❖ H. 帮助及规则
比赛规则:场地和球
goal line( 门线):球门前长40cm的线 goal area( 小禁区、球门区):A penalty area(禁区、罚球区): A+B+圆弧区 ball:直径42.7mm, 重46g
❖ 模拟精确: 碰撞检测完全,碰撞处理准确仿真极为真实
(采用商业游戏引擎公司Havok的碰撞处理引擎 作品 帝国时代、CS等)。
❖ 系统界面:
3维(采用Director设计界面,3D Max建模)。
05
MLS平台系统需求
❖ 硬件需求: Pentium III 600 MHz或与其性能相当的CPU; 256M系统内存; 具有32M显存的TNT2或其以上级别的显示卡; 至少可以实现800×600分辨率的显示器;
比赛规则:任意球(Free-Kick)
任意球判罚 ❖ 冲撞对方球员,直接影响比赛; ❖ 允许推球和对方球员,推动方一直与球保持
接触;
任意球摆位 ❖ 球摆放在任意球罚球点,罚球队员位于球后; ❖ 进攻方在己方半区任意摆位; ❖ 防守方两个队员压前方门线的左右两端,另
外两个压禁区边线;
❖ 防守方先摆队形。
RoboCup
11 VS 11仿真组比赛 5 VS 5 小型机器人组比赛 小型机器人组标准比赛(每队11人) 中型机器人组比赛 Sony四腿机器人比赛
02
仿真机器人足球比赛
03
仿真比赛的特点
❖ 仿真实物半自主机器人足球比赛; ❖ 所有的硬件设备均由计算机模拟实现; ❖ 简化比赛系统复杂度,减少硬件需求 ; ❖ 可控性好、无破坏性、可重复使用,不受硬件条件
//预计的小球的位置
Bounds fieldBounds,
//场地范围
goalBounds;
//球门的位置与范围
long gameState;
//当前游戏的状态
long whosBall;
//由谁控制球
void *userData;
//用户自定义信息
} Environment;
2. 比赛状态
❖ const long FREE_BALL = 1; ❖ const long PLACE_KICK = 2; ❖ const long PENALTY_KICK = 3; ❖ const long FREE_KICK = 4; ❖ const long GOAL_KICK = 5;
// 争球 // 定位球 // 点球 // 任意球 // 门球
3. 场地信息
❖ const double FTOP = 77.2392; ❖ const double FBOT = 6.3730; ❖ const double FRIGHTX = 93.4259; ❖ const double FLEFTX = 6.8118; ❖ const double GTOPY = 49.6801; ❖ const double GBOTY = 33.9320; ❖ const double GRIGHT = 97.3632; ❖ const double GLEFT = 2.8748;
比赛规则:点球(Penalty-Kick)
点球判罚
门区内多于一个防守队员; 守门员10秒内没有将球踢出门 区; 比赛进行中不经裁判同意,操 作机器人; 大禁区内超过3个防守队员;
点球摆位 除守门员和罚球队员,其余队员 在球场另一侧任意摆位; 罚球队员位于球后,可以踢球、 可以带球; 守门员必须接触门线; 防守方先摆球;
下半场结束时若不分胜负,则休息5分钟后,最多加时3分钟,采用突然死亡办 法产生胜出方。
若3分钟后仍然平局,则由点球决定胜负。 ❖ 球场上只能有一个进攻队员和一个守门员; ❖ 双方各踢三个点球,所有点球必须由一个队员完成; ❖ 裁判吹哨30秒后或球出门区,点球结束;
若三次点球后仍然平局,双发互踢点球,直到有一方得分;
门员防守的能力,不判门球; ❖ 若球位于守门员和进攻队员之间,允许在门区
内推守门员,但不允许将守门员推入门。
门球摆位 ❖ 进守门员在门区内,球位于门区内的任意位置; ❖ 进攻方队员摆放在门区外任意位置; ❖ 防守方先将队员在己方半场;
1.仿真平台使用介绍
04
MLS平台系统特点
❖ 机器人模型: Yujin机器人的物理模型。
进球后,上、下半场开始后,都将球放 在场地中央,球首先要踢回进攻方半 场; 若在5秒钟之内,没有踢回自己半场, 重新开定位球; 若这种情况出现两次,则由对方开定位 球。
❖ 投硬币,胜者选择队标; ❖ 加载策略; ❖ 裁判选定控球方; ❖ 双发按照定位球规则摆队形(place
kick) ; 进攻方首先在自己球场和中圈内 自由布置队员; 防守方只能在自己球场内(不包 括中圈)布置队员。
typedef struct
{
Robot home[PLAYERS_PER_SIDE]; //我方机器人数组
OpponentRobot opp [PLAYERS_PER_SIDE];//敌方机器人数组
Ball currentBall,
//当前小球的位置
lastBall,
//上一次小球的位置
predictedBall;
和场地环境的限制; ❖ 研究人工智能的绝佳平台;
SimroSot 5vs.5仿真平台
❖ 仿真平台安装 ❖ 仿真平台接口
策略菜单 时间/记分菜单 重放
❖ 仿真比赛规则
场地、球、车 比赛时间、进球、判罚、记分
07
SimuroSot5vs5平台安装
❖ 平台提供了基本的策略开发框架,见安装目录下的 Strategy Source目录 如:C:\Program Files\Robot Soccer v1.5a\Strategy Source)
❖ 模板程序为DLL动态链接库。 ❖ 动态链接库文件存放路径
C:\strategy\yellow; C:\strategy\blue;
SimuroSot5vs5用户接口
SimuroSot5vs5平台菜单
❖ A.策略载入 ❖ B.犯规/控球
裁判使用,哪方犯规,由谁控球 相应修改Gamestate、whosball的值
比赛规则:门球(Goal-Ball)
门球判罚 ❖ 进攻方多于一个队员进入对方门区; ❖ 进攻方机器人推或阻碍对方守门员; ❖ 进攻方队员推对方守门员(球位于中间)进球; ❖ 进攻方队员推对方守门员(球位于中间),影
响守门员运动; ❖ 门区内僵局10秒; ❖ 如果进攻队员碰巧撞到守门员,但没有影响守
比赛规则:争球(Free-Ball)
争球判罚 ❖ 门区外僵局10秒钟,僵局即球以
极低的速度移动,由裁判判断。