1 / 37

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

oshin
Download Presentation

An Introduction to RoboCup

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Introduction to RoboCup • October 26, 2006 • by Michael Floyd • Portions by Kevin Lam and Paul Marlow

  2. Agenda • Overview of RoboCup • How Games Are Played • Demonstration Game • Client/Server Communication • Existing Clients and Tools

  3. 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

  4. Overview of RoboCup • Started in 1992 as the Robot J-League (Japan) • First games and conferences in 1997 • Workshops, conferences and yearly competitions

  5. RoboCup Leagues

  6. RoboCup Simulator • Server (2-D and new 3-D) • Monitor clients • Player clients (i.e. agents!) • Coach clients

  7. 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

  8. 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!

  9. 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

  10. 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

  11. 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

  12. 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

  13. Play Modes

  14. 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!

  15. Demonstration

  16. 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

  17. 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))

  18. Client Commands

  19. Client Sensor Protocol • Three main message types: • Hear • See • Sense_Body • Noise models for each

  20. 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

  21. 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)

  22. Flags and Lines

  23. 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))

  24. 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))

  25. 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))

  26. 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

  27. 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

  28. Some RoboCup Clients • UvA Trilearn (Amsterdam) (2003 champion) • CMUnited (Carnegie Mellon) • Everest (China) • FC Portugal 2003 (Portugal) • HELIOS (Japan) • Magma Furtwangen (Germany)

  29. Typical Approaches • Hard-coded behaviour • Scripted behaviour (e.g. planning) • Neural Networks • Opponent Modelling • Layered Learning • Behaviour Networks

  30. Example: a4ty • Layered skills hierarchy (pass, intercept) • Follow advice of coach • Competed in RoboCup competitions

  31. 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

  32. Example: RoboPlayer • Based off of Krislet • Allows Krislet-type players to have states (forward, defense, goalie)

  33. 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

  34. Developing Clients • www.robocup.org • Soccer Server Manual • Start with Krislet, RoboPlayer or Stripslet • Soccer Server 9.1.5

  35. Carleton Projects • Tool to log client-server communications (LogServer) • Imitative Agent (RCScenes) • Human-user interface (In The Agents Shoes)

  36. 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

  37. 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

More Related