[robocup-legged] Proposed pickup soccer communication packet
William Uther
willu.mailingLists at cse.unsw.edu.au
Tue Feb 7 20:23:09 EST 2006
Hi all,
I'm going to propose the following as a pickup soccer communication
packet. I think it covers most things that we talked about
previously, although it is a little different to the last version.
The roll information is simply a 'destination' point. At present it
doesn't have a 'home' location as well. I suspect having both is
going to be confusing, and I think a destination is more general.
The ball information is now just the mean/variance of whatever filter
you use (previously it was only sensor information - now it is
whatever information you have). There is a trade-off here. If you
send sensor information then each robot can get more use out of it,
but you need one of high-bandwidth, sub-sampling, or sensor
aggregation. If you send the post-filter ball information, then it
is much easier to define a protocol, and it is simpler for everyone
to use in a basic way, but it is harder to do distributed data
fusion. Robots running the same code base will still be able to
communicate on other UDP ports using their own protocol to do proper
distributed data fusion.
Even sending post-filter information, there is a choice of how much
to send. More information is useful for people using the chosen type
of filter, but for people using different types of filters can be
hard to translate the information. I settled on a fairly minimal
amount of information which should be easily usable by a large number
of teams.
Specific suggestions for improvement are welcome.
Will :-}
#ifndef PICKUP_H
#define PICKUP_H
static const int PICKUP_UDP_PORT = 9000;
struct PickUpSoccerBroadcastInfo {
char header[4]; // "PkUp"
int playerNum; // 1-11
int team; // 0 is red 1 is blue
// position of robot
// same coordinate system as past years' localization challenge
// coordinates in centimetres
// 0,0 is in centre of field
// +ve x-axis points towards the yellow goal
// +ve y-axis is 90 degrees counterclockwise from the +ve x-axis
// angles in radians, 0 along the +x axis, increasing
counterclockwise
float pos[3]; // x,y,theta
// main diagonal of covariance matrix of position of robot
// i.e. variance in x, y and theta without any correlation
information
float posVar[3];
// Ball information
int ballAge; // frames since this robot last saw the ball. -1 if
we haven't seen it
// position of ball (same coordinate system as above, without
heading)
float ball[2];
// main diagonal of covariance of position of ball
float ballvar[2];
// destination of robot (same coordinate system as above,
without heading)
float dest[2];
};
#endif // PICKUP_H
--
Dr William Uther National ICT Australia
Phone: +61 2 8306 0424 Computer Science and Engineering
Email: william.uther at nicta.com.au University of New South Wales
Email: willu at cse.unsw.edu.au Sydney, Australia
Web: http://www.cse.unsw.edu.au/~willu/ or http://www.nicta.com.au/
NICTA email Disclaimer:
http://www.cse.unsw.edu.au/~willu/NICTAEmailDisclaimer.html
UNSW email Disclaimer:
http://www.eng.unsw.edu.au/emaildis.htm
More information about the robocup-legged
mailing list