RoboCup2d学习——WorldModel

RoboCup2d学习——WorldModel

WorldModel 世界模型 自我学习文档

BallObject Ball; 球类
AgentObject agentObject; agent类
PlayerObject Teammates[MAX_TEAMMATES]; 球员类,三个数组存放不同的球员
PlayerObject Opponents[MAX_OPPONENTS];
PlayerObject UnknownPlayers[MAX_TEAMMATES+MAX_OPPONENTS];
Time 时间类(int类型属性:周期数,循环次数)
Circle 圆类(圆心,半径)
Line 直线类(包含三个double属性,分别是直线ay + bx + c = 0的三个系数)
VecPosition 坐标信息类(包含两个double属性,分别对应x轴和y轴的坐标值)
ObjectT 枚举类,包括场上可能出现的对象,例如OBJECT_BALL,OBJECT_GOAL_L,球,左侧球门等等

函数

可通过WM-> 调用函数
(1)球的坐标位置
getGlobalPosition( ObjectT o ) 获取o的坐标(返回类型VecPosition)
getBallPos() 获取球的坐标(通过调用getGlobalPosition间接完成)
getBallPos().getX() 获取球的x轴坐标
getBallPos().getY() 获取球的y轴坐标(均为double类型)
getPosOwnGoal( ) 获取自己的球门位置(返回VecPosition)
getPosOpponentGoal( ) 获取对手球门的位置(返回VecPosition)

(2)球的速度,方向
getGlobalVelocity( ObjectT o ) 获取o的速度(返回类型VecPosition)
getBallSpeed() 获取球的速度(返回值为double类型,通过调用
getGlobalVelocity间接完成)
getBallDirection()获取球的运动方向(返回AngDeg(弧度角),也就是double)

(3)球员,场上的状态
getPlayerNumber( ) const 获取球员的号码(返回int)
getPlayMode() 获取状态
PlayModeT 枚举类,包含不同的状态,例如PM_BEFORE_KICK_OFF,PM_KICK_OFF_LEFT

getClosestInSetTo这是一个重载函数,根据参数的不同功能的实现也不同

(4)距离,角度
getPosClosestOpponentTo( double *dDist, ObjectT o ) (返回VecPosition)
getRelAngleOpponentGoal() 获取自己与对方球门之间的相对角(返回double)
getRelativeDistance( ObjectT o )获取自己与o之间的相对距离(返回double)
getRelDistanceOpponentGoal() 获取自己与对方球门之间的相对距离(返回double)

(5)判断
isBeforeKickOff( PlayModeT pm ) 判断是否在开球之前(返回bool)
isKickOffUs( PlayModeT pm ) 判断当前的play模式下是否由我方开球
isOffsideUs( PlayModeT pm ) 判断当前的play模式下我方是否越位(返回bool)

isBallKickable() 判断球是否可踢(返回bool)
isBallCatchable() 判断球是否可抓(返回bool,该方法只适用于守门员)
isBallHeadingToGoal( )判断当前球是否朝向我方球门(返回bool)
isBallInOurPossesion( ) 判断球是否在我方手中(返回bool)
isBeforeGoal( VecPosition pos )判断位置参数pos是否在对方球门前(返回bool)

(6)周期
getCurrentTime() 获取当前的时间(返回Time对象)
getCurrentCycle() 获取当前的周期(返回int)

猜你喜欢

转载自blog.csdn.net/qq_45800517/article/details/108027350
今日推荐