[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