An introduction to robocup l.jpg
Advertisement
This presentation is the property of its rightful owner.
1 / 51

An Introduction to RoboCup PowerPoint PPT Presentation

An Introduction to RoboCup October 28, 2004 by Kevin Lam Portions by Paul Marlow Agenda Overview of RoboCup Demonstration Game Simulator Mechanics Simulator Communications Protocol Existing Developments, Clients, Tools “Vision Table” Project Overview of RoboCup

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


An introduction to robocup l.jpg

An Introduction to RoboCup

  • October 28, 2004

  • by Kevin Lam

  • Portions by Paul Marlow


Agenda l.jpg

Agenda

  • Overview of RoboCup

  • Demonstration Game

  • Simulator Mechanics

  • Simulator Communications Protocol

  • Existing Developments, Clients, Tools

  • “Vision Table” Project


Overview of robocup l.jpg

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 robocup4 l.jpg

Overview of RoboCup

  • Started in 1992 as the Robot J-League (Japan)

  • First games and conferences in 1997

  • Workshops, conferences and yearly competitions


Robocup leagues l.jpg

RoboCup Leagues


World championships l.jpg

World Championships


Robocup simulator l.jpg

RoboCup Simulator

  • Server (2-D and new 3-D)

  • Monitor clients

  • Player clients (i.e. agents!)

  • Coach clients


Demonstration l.jpg

Demonstration


Simulator mechanics l.jpg

Simulator Mechanics


Clients and server l.jpg

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


Slide11 l.jpg

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!


Slide12 l.jpg

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

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 designates itself as the goalie


Robocup clients14 l.jpg

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

RoboCup Server

  • Keeps time (typically 6000 simulator cycles, 10 cycles per second)

  • Receives client messages, updates “world model”, sends back new status information

  • “Automated Referee” tracks current play mode


Play modes l.jpg

Play Modes


Starting a game l.jpg

Starting a Game

  • Download and install applications (running the configure and make scripts for the Unix / Linux systems)

  • 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!


Communications protocol l.jpg

Communications Protocol


Connection protocols l.jpg

Connection Protocols

  • From client to server:

    • (init TeamName [(version VerNum)] [(goalie)])

    • (reconnect TeamName Unum)

    • (bye)

  • From server to client:

    • (init Side Unum PlayMode) as a response for both client init and reconnect messages

      • Side = l | r; Unum = 1 ~ 11


An example l.jpg

An Example

  • send 6000 : (init MyTeam)

  • recv 1067 : (init l 1 before_kick_off)

  • recv 1067 : (see 0 ((goal r) 66.7 33) ((flag r t) 55.7 3) ((flag p r t) 42.5 23) ((flag p r c) 53.5 43)) recv 1067 : (see 0 ((goal r) 66.7 33) ((flag r t) 55.7 3) ((flag p r t) 42.5 23) ((flag p r c) 53.5 43))

  • send 1067 : (move 0 0)


Client commands l.jpg

Client Commands


Client sensor protocol l.jpg

Client Sensor Protocol

  • Three main message types:

    • Hear

    • See

    • Sense_Body

  • Noise models for each


Hear messages l.jpg

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


Hear example l.jpg

Hear Example

  • (hear 18 self FCPortugal ETV 18 world_status r 2 0.98 -10.95 16.64 1 0.95

  • 0.00 0.00 1 0.95 0.00 0.00 3 0 OtGL- - fGXtZ 3F.- /sdhAl 1p.- 0 40.0 0.0 0 2 )


See messages l.jpg

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 messages26 l.jpg

See Messages

  • ObjName:

    • (p [TeamName [UniformNum [goalie]]]) or

    • (b) or

    • (g [l|r]) or

    • (f c); (f [l|c|r] [t|b]); (f p [l|r] [t|c|b]);

    • (f g [l|r] [t|b]); (f [l|r|t|b] 0);

    • (f [t|b] [l|r] [10|20|30|40|50]);

    • (f [l|r] [t|b] [10|20|30]);

    • (l [l|r|t|b])

    • (B); (F); (G); (P)


Flags and lines l.jpg

Flags and Lines


See example l.jpg

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 "FCPortugal") 36.6 28) ((l r) 41.7 -89))


Sense body messages l.jpg

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

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

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


Robocup clients32 l.jpg

RoboCup Clients


Some robocup clients l.jpg

Some RoboCup Clients

  • UvA Trilearn (Amsterdam) (2003 champion)

  • CMUnited (Carnegie Mellon)

  • Everest (China)

  • FC Portugal 2003 (Portugal)

  • HELIOS (Japan)

  • Magma Furtwangen (Germany)


Typical approaches l.jpg

Typical Approaches

  • Hard-coded behaviour

  • Scripted behaviour (e.g. planning)

  • Neural Networks

  • Opponent Modelling

  • Layered Learning

  • Behaviour Networks


Example uva trilearn l.jpg

Example: UvA Trilearn

  • Coordination Graphs for passing, anticipating passes

  • Layered skills hierarchy (pass, intercept)

  • Formations

  • Behaviour modelling of opponents


Example fc portugal l.jpg

Example: FC Portugal

  • Strategic, ball possession, ball recovery behaviours

  • “Situation Based Strategic Positioning”

  • Given game situation, calculated best position and go there


Example krislet l.jpg

Example: Krislet

  • Only one strategy: run to the ball and try to kick it!

  • Surprisingly effective

  • Written in Java, easy to extend


Example stripslet l.jpg

Example: Stripslet

  • STRIPS style linear planning

  • Written by Aloke Wiki

  • Based off of Krislet

  • A Stripslet implementation is made up of four main concepts: Actors, Sensors, Actions, and a GoalList


Actors l.jpg

Actors

  • These are designed to implement a specific action, such as run-to-ball or score-goal

  • Contains two main elements, an execute method – providing the functionality, and a name – which is used as a key into a hash table.

  • To add a new Actor

    • Add a new class to the Actor.java, implementing the Actor Interface

    • Add the new Actor to the ActorTable hash in StripsBrain.java


Sensors l.jpg

Sensors

  • These consist of objects which include a sense method, as well as a name for a hash table key.

  • Each is designed to determine the boolean outcome of a specific predicate, such as can-see-goal.

  • To add a new Sensor:

    • Add a new class to Sensor.java, implementing the Sensor Interface

    • Add the new Sensor to the SensorTable hash in StripsBrain.java.


Actions l.jpg

Actions

  • Actions consist of four members: name, precoditionList, addList, deleteList.

  • name corresponds directly to that of the Actor name property (e.g. “score-goal”)

  • precoditionList is a list of predicates which must be true before execution of the action (e.g. “have-ball can-see-goal”)

  • addList is a list of predicates that will be true upon execution of the action (e.g. “ball-in-net”)

  • deleteList is a list of predicates that will be false upon execution of the action (e.g. “have-ball”)


Actions42 l.jpg

Actions

  • To add an Action:

    • StripsBrain maintains a list of actions, so any new actions must be added to this list

    • Note that multiple predicates in a list are separated by spaces

    • actionList.add(new Action("score-goal", // name

    • "have-ball can-see-goal", // pre

    • "ball-in-net", // add

    • "have-ball")); // delete


Goallist l.jpg

GoalList

  • Contains a list of goals for which the agents try to achieve

  • Currently the default list consists of only one predicate: “ball-in-net”

  • Interesting possibilities include

    • Adding multiple goals

    • Re-evaluating the goal list each cycle depending on the environment


Developing clients l.jpg

Developing Clients

  • www.robocup.org

  • Soccer Server Manual

  • Start with Krislet and Stripslet

  • Soccer Server 9.4.5


Other projects l.jpg

Other Projects

  • Soccer Server 3D

  • 3D Soccer Monitor (Robologvis)

  • Tools to convert logs into Flash animations

  • Log analyzers (eg. Team Assistant, Paul Marlow’s Classifier)


Vision table project l.jpg

“Vision Table” Project

  • “Scene” Learning and Recognition

  • Could an agent learn from observing another?

    • (original goal - learn from humans)

  • Could a team observe another and as a result start playing “similar to” what it saw?

  • As little human intervention as possible!


Project goals l.jpg

Project Goals

  • Scene Generation

    • Extract data from game logs

    • Create scenes - “snapshots”

  • Scene Learning (Reasoning)

    • Associate key scenes, patterns of scenes, with action taken


Project goals48 l.jpg

Project Goals

  • Scene Recognition

    • Build a RoboCup client

    • Searches from a stored library of key scenes and actions; uses most relevant to determine course of action

    • Evaluate performance (resemblances?)


Scene descriptions l.jpg

Scene Descriptions

  • A form of generalization and knowledge representation

  • Size of “slices” impacts complexity, accuracy


References l.jpg

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


  • Login