370 likes | 811 Views
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
E N D
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