server和agent之间通信的msg格式 & agent的传感器
一、General Perceptors(一般传感器)
1.Joint Perceptor(关节传感器)
关节分为两种,铰链关节和万向关节.
RoboCup3d仿真机器人关节传感器获得的信息蕴含着机器人的运动状态,尤其是双足步行机器人下肢的运动状态对其位姿变化有直接的影响,因此RoboCup3d仿真机器人关节传感器获得的运动信息可以用于机器人进行局部的自定位.
- 1.HingeJoint Perceptor(铰链关节传感器)
消息格式:
Message format: (HJ (n <name>) (ax <ax>))
<name> - the name of the corresponding hinge joint
<ax> - the current position angle in degrees and an accuracy of two digits
Example message: (HJ (n laj3) (ax -1.02))
- 2.UniversalJoint Perceptor(万向关节传感器)
消息格式:
Message format: (UJ (n <name>) (ax1 <ax1>) (ax2 <ax2>))
<name> - the name of the corresponding universal joint
<ax1> <ax2> - the current position angles of the two axes in degrees and an accuracy of two digits
Example message: (UJ (n laj1 2) (ax1 -1.32) (ax2 2.00))
Noise model: None
2.GyroRate Perceptor(陀螺仪)
RoboCup仿真3d机器人拥有一个三轴角速度陀螺仪,提供了机器人位姿角度变化的信息.可以用于机器人进行及局部的自定位.
消息格式:
Message format: (GYR (n <name>) (rt <x> <y> <z>))
<name> - the name of the body containing the gyro rate perceptor
<x> <y> <z> - the current angular velocities along the three axes of freedom of the parent body in
deg/s and an accuracy of two digits
Example message: (GYR (n torso) (rt 0.01 0.07 0.46))
Noise model: None
3.Accelerometer(加速度计)
作用: 加速度计可以测量机器人运动的瞬时加速度.
当机器人静止在地球表面时,加速度计测量的结果大约是1G,方向朝上.
消息内容: 该消息以字符‘ACC’标示,后面跟上该加速度计所属的主体名称,及三个轴向当前的加速度.
消息格式:
Message format: (ACC (n <name>) (a <x> <y> <z>))
<name> - the name of the body containing the accelerometer (see robot descriptions 8)
<x> <y> <z> - the current acceleration along the three axes of freedom in m/s 2 and an accuracy of
two digits
Example message: (ACC (n torso) (a 0.00 0.00 9.81))
Noise model: None
4.ForceResistance Perceptor(脚部压力传感器)
作用: 该传感器获得作用于身体的力.
消息内容: 该消息以字符‘FRP’标示,后面是主体的名称,再后面是两个向量,第一个向量是受力点的坐标,单位为米,保留两位小数;第二个向量是受到的力在三个方向上的分量.
消息格式:
Message format: (FRP (n <name>) (c <px> <py> <pz>) (f <fx> <fy> <fz>))
<name> - the name of the body, to which the force resistance perceptor belongs (see robot
descriptions 8)
<px> <py> <pz> - the local coordinates of the point of origin of the applied force in meter and an
accuracy of two digits
<fx> <fy> <fz> - the components of the force vector with an accuracy of two digits, while the length
of the force vector represents the given force in newton (kg · m/s 2 )
Example message: (FRP (n lf) (c -0.14 0.08 -0.05) (f 1.12 -0.26 13.07))
Noise model: None
5.Touch Perceptor(触碰传感器)
作用: 当安装该传感器的主体和另外的仿真对象碰撞时,该传感器会被触发.
这个传感器会报告它独有的名字,因此一个机器人可以有多个触碰传感器.
消息内容: value值为0表示未发生碰撞,值为1表示发生碰撞.
消息格式:
Message format: (TCH n <name> val 0|1)
Example message: (TCH n bumper val 1)
二、Soccer Perceptors(足球仿真比赛专用传感器)
1.Vision Perceptor(视觉传感器)
你的机器人有一个特别的全方位相机,附带一些智能的图片处理软件:),如果使用常规的视觉传感器,机器人有360度的视野,在RoboCup仿真3d平台中,机器人的视野被限制为水平方向和垂直方向都为120度。视觉的方向总是跟当前机器人的身体取向有关,可以被水平倾斜效应器改变。相机可以水平转到任意角度并且可以在水平面上倾斜。
作用: 视觉传感器提供了一个看到的对象列表,包括机器人身体的一部分、球、或是场上的标志。目前场上有八种标志:足球场的四个角、球门的四个门柱。通过每个可视对象你可以得到一个球坐标系下的坐标向量。
与仿真2D足球相反,这个视觉系统不提供对象的速度。对象可以被其他对象堵塞(目前还未完全实施)。所有的距离和角度都是相对于相机的坐标和方向给出的。
视觉系统的噪声参数如下:
- 相机的位置会添加一个小的校准误差。对于每个轴,误差均匀分布在-0.005m到0.005m之间。该误差只计算一次并在整场比赛中保持不变。
- 动态噪声通常分散在0.0左右(以0.0为期望的正态分布)
- distance error(距离噪声): σ = 0.0965 (另外,距离噪声乘了distance/100)
- horizontal angle error(水平角度噪声): σ = 0.1225
- latitudal angle error(垂直角度噪声): σ = 0.1480
消息内容: 视觉消息以字符‘See’来标识,后面是看到的对象列表。球和球场上的标志是可以用一个坐标向量描述的简单对象,而球员是一个更为复杂的对象,需要更严格的描述以及附加的信息比如队名或是球员号码。因此通过队名、球员号和至少一个坐标向量来描述球员的不同身体部分。根据视觉系统附带的超复杂图像处理软件:)视觉信息每三个周期被感知一次。
消息格式:
2.AgentState Perceptor(球员状态传感器)
作用: 给出球员的当前状态。
消息内容: 当前的电池状态和球员的温度。
消息格式:
Message format: (AgentState (temp <degree>) (battery <percentile>))
Example message: (AgentState (temp 48) (battery 75))
3.GameState Perceptor(比赛状态传感器)
作用: 给出当前比赛环境的状态。
消息内容: 当前的比赛时间和比赛模式。
消息格式:
Message format: (GS (t <time>) (pm <playmode>))
<time> - the current play time in seconds and two digits
<playmode> - the current play mode of the soccer game (see table 4.3 for possible values)
Example message: (GS (t 0.00) (pm BeforeKickOff))
比赛状态表
2019年世界杯新加入了两种模式:
Pass_Left | pass ball for left team |
---|---|
Pass_Right | pass ball for right team |
4.Hear Perceptor(听觉传感器)
规则不允许机器人之间直接通信,但是机器人可以通过仿真server来交换信息。因此机器人装了听觉传感器来接收其他球员喊出的消息。
作用: 接收其他球员喊出的消息。
消息内容: 听到消息的时间,听到消息的水平方向与头之间的角度,听到的消息内容。
消息格式:
Message format: (hear <time> ’self’|<direction> <message>)
<time> - the play time when the given message was heard in seconds
<direction> - the horizontal direction where the sound was located, relative to the head in degrees
<message> - up to 20 characters, which may be taken from the ASCII printing character subset
[0x20, 0x7E] except the white space character (t) and the normal brackets ( and )
Example message: (hear 12.30 self helloworld)
听觉传感器提出了一些限制:
1.< message >的内容最多有20个字符,必须取自ASCII打印字符集[0x20,0x7E],不包括空格和左右括号‘(’ , ‘)’。
2. 超过50米外的消息不能被接收到。
3. 可以同时听到的消息数量是有限的:每个球员在每两个周期最多只能听到特定球队发出的一个消息。每支队都有单独的跟踪能力,因为队伍不应该通过一直喊叫来阻挡对手的听觉感知器。如果来自一只队伍的多个消息到达,会按消息到达的顺序依次处理;根本听不到剩下的消息。但是自己喊出的消息总是被注意到。