An Introduction to RoboCup
An Introduction to RoboCup October 26, 2006 by Michael Floyd Portions by Kevin Lam and Paul Marlow Agenda Overview of RoboCup How Games Are Played Demonstration Game Client/Server Communication Existing Clients and Tools Overview of RoboCup The Robot World Cup Initiative
An Introduction to RoboCup
E N D
Presentation Transcript
An Introduction to RoboCup • October 26, 2006 • by Michael Floyd • Portions by Kevin Lam and Paul Marlow
Agenda • Overview of RoboCup • How Games Are Played • Demonstration Game • Client/Server Communication • Existing Clients and Tools
Overview of RoboCup • The Robot World Cup Initiative • “By the year 2050, develop a team of fully autonomous humanoid robots that can win against the human world soccer champion team.” • A standard problem for AI research
Overview of RoboCup • Started in 1992 as the Robot J-League (Japan) • First games and conferences in 1997 • Workshops, conferences and yearly competitions
RoboCup Simulator • Server (2-D and new 3-D) • Monitor clients • Player clients (i.e. agents!) • Coach clients
Client Client Client Server Client Client Client Client Client Client Client Client Client Clients and Server • One server • Up to 11 clients per team (plus coach) • Clients/server communicate via UDP/IP
Client Client Client Server Client Client Client Client Client Client Client Client Client • Can be written in any language (C++, Java, Smalltalk, ...) • Can be run on same machine or a network • Clients may talk only to the server... not to each other!
Client Client Client Server Client Client Client Client Client Client Client Client Client Coach Coach Soccer Monitor • Monitor(s) used to visualize the action and/or interrupt the game • Coaches (optional) to give guidance to teams
RoboCup Clients • Autonomous agents • The “brains” of the players • Sensory information received from server, decision made, action command sent back to server • One agent represents one player • One agent can designate itself as the goalie
time play mode my body landmarks other players speech coach instructions dash turn turn head kick catch speak Player Agent decision-making strategy Sensory Input Outputs RoboCup Clients
RoboCup Server • Keeps time (typically 6000 (10 mins) simulator cycles, 10 cycles per second) • Receives client messages, updates “world model”, sends back new status information • “Automated Referee” tracks current play mode
Starting a Game • Download and install applications • Run the Server (default host is localhost and default port is 6000) • Run the Monitor, connecting to the host and port of the Server • Connect the players to the Server host and port • Start the kick-off!
Connection Protocols • From client to server: • Initiate a connection • Reconnect • Quit • From server to client: • Confirms the connection and provides the player’s uniform number, side of field, and current state of the game
An Example • Player : Connects and joins “MyTeam” (init MyTeam) • Server : Tells the player they are connected, have uniform #1, are on the right side of the field, and the game is pre-kickoff (init r 1 before_kick_off) • Server : Tells player current location and location of visible objects (see 0 ((goal r) 66.7 33))
Client Sensor Protocol • Three main message types: • Hear • See • Sense_Body • Noise models for each
Hear Messages • Can hear one message per team per cycle • (hear Time Sender “Message”) • Sender = online_coach_left/right, referee, self, Direction • Direction = -180 – 180 degrees
See Messages • (see Time ObjInfo) • ObjInfo: • (ObjName Distance Direction DistChange DirChange BodyFacingDir HeadFacingDir) or • (ObjName Distance Direction DistChange DirChange) or • (ObjName Distance Direction) or • (ObjName Direction)
See Example • (see 18 ((f r t) 44.7 -22) ((f g r b) 47.9 30) ((f g r t) 42.5 13) ((f p r c) 30.3 34 -0 0) ((f p r t) 25.3 -7 0 0) ((f t r 40) 36.2 -37) ((f t r 50) 44.7 -29) ((f r 0) 49.4 20) ((f r t 10) 47 8) ((f r t 20) 46.5 -3) ((f r t 30) 48.4 -15) ((f r b 10) 53.5 30) ((f r b 20) 59.1 38) ((f r t) 44.7 -22) ((f g r b) 47.9 30) ((g r) 44.7 22) ((f g r t) 42.5 13) ((f p r c) 30.3 34) ((f p r t) 25.3 -7 0 0) ((f t r 40) 36.2 -37) ((f t r 50) 44.7 -29) ((f r 0) 49.4 20) ((f r t 10) 47 8) ((f r t 20) 46.5 -3) ((f r t 30) 48.4 -15) ((f r b 10) 53.5 30) ((f r b 20) 59.1 38) ((p “ExampleTeam") 36.6 28) ((l r) 41.7 -89))
Sense_Body Messages • (sense_body Time • (view_mode {high | low} {narrow | normal | wide}) • (stamina StaminaEffort) • (speed AmountOfSpeed DirectionOfSpeed) • (head_angle HeadAngle) • (kick KickCount) • (dash DashCount) • (turn TurnCount) • (say SayCount) • (turn_neck TurnNeckCount) • (catch CatchCount) • (move MoveCount) • (change_view ChangeViewCount))
Sense_Body Example • (sense_body 19 (view_mode high normal) (stamina 4000 1) (speed 0 0) (head_angle 0) (kick 0) (dash 0) (turn 0) (say 98) (turn_neck 0))
Coaches • Privileged clients used to provide assistance • Receives noise-free view of the whole field • Can only send occasional messages to players (info, advice, freeform, etc.) • Used for opponent modelling, game analysis, giving strategic tips to teammates
The Environment • accessible vs inaccessible: Only sees what is in front of it (with noise) • deterministic vs non-deterministic: Just because agent wants to kick ball doesn’t mean it will happen • static vs dynamic : The players and ball will constantly be moving • discrete vs continuous: Player can take any position on the field
Some RoboCup Clients • UvA Trilearn (Amsterdam) (2003 champion) • CMUnited (Carnegie Mellon) • Everest (China) • FC Portugal 2003 (Portugal) • HELIOS (Japan) • Magma Furtwangen (Germany)
Typical Approaches • Hard-coded behaviour • Scripted behaviour (e.g. planning) • Neural Networks • Opponent Modelling • Layered Learning • Behaviour Networks
Example: a4ty • Layered skills hierarchy (pass, intercept) • Follow advice of coach • Competed in RoboCup competitions
Example: Krislet • Only one strategy: run to the ball and try to kick it! • Surprisingly effective – can beat many more complex teams • Written in Java, easy to extend
Example: RoboPlayer • Based off of Krislet • Allows Krislet-type players to have states (forward, defense, goalie)
Example: STRIPSlet • Based off of Krislet • Uses STRIPS-style linear planning • Works at achieve a set of goals • The base-version only has one goal – putting the ball in the net
Developing Clients • www.robocup.org • Soccer Server Manual • Start with Krislet, RoboPlayer or Stripslet • Soccer Server 9.1.5
Carleton Projects • Tool to log client-server communications (LogServer) • Imitative Agent (RCScenes) • Human-user interface (In The Agents Shoes)
References • Most of the information about RoboCup itself was taken using from the RoboCup Soccer Server manual. • For the latest manuals and code, visit the RoboCup project website at: • http://sourceforge.net/projects/sserver
Support • Project links and executables are available from http://chat.carleton.ca/~mfloyd/robocup/ • Feel free to e-mail me with any questions mfloyd@connect.carleton.ca