an introduction to robocup february 24, 2004 by kevin lam portions by paul marlow

Post on 25-Dec-2015

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

An Introduction to RoboCup

February 24, 2004

by Kevin LamPortions by Paul Marlow

Agenda

Overview of RoboCup

Demonstration Game

Simulator Mechanics

Simulator Communications Protocol

Some Existing Clients

Other Developments/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 Leagues

four-legged

small size

middle size

simulation

World Championships

RoboCup 2004 - Lisbon

RoboCup 2003 - Padua

RoboCup 2002 - Fukuoka/Busan

RoboCup 2001 - Seattle

RoboCup 2000 - Melbourne

RoboCup 1999 - Stockholm

RoboCup 1998 - Paris

RoboCup 1997 - Nagoya

RoboCup Simulator

simulation

Server

Monitor clients

Player clients (i.e. agents!)

Coach clients

Demonstration

QuickTime™ and aMPEG-4 Video decompressor

are needed to see this picture.

Simulator Mechanics

Clients and Server

ClientClientClientClientClientClient

ClientClientClientClientClientClientServer

One server

Up to 11 clients per team (plus coach)

Clients/server communicate via UDP/IP

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!

ClientClientClientClientClientClient

ClientClientClientClientClientClientServer

ClientClientClientClientClientClient

ClientClientClientClientClientClientServer

Soccer MonitorCoach Coach

Monitor(s) used to visualize the action and/or interrupt the game

Coaches (optional) to give guidance to teams

RoboCup ClientsAutonomous 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 Clients

Player Agent

timeplay modemy body

landmarksother players

speechcoach

instructions

dashturn

turn headkick

catchspeak

decision-makingstrategy

Sensory Input Outputs

RoboCup ServerKeeps 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

kick off

game on

goals

out of field

offsides

half time and game over

Starting a GameDownload 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 ServerConnect the players to the Server host and portStart the kick-off!

Communications Protocol

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•send 6000 : (init MyTeam)

•recv 1067 : (init l 1 before_kick_off)

•recv 1067 : (see 0 ((goal r) 66.7 33) ((flag r t) 2 55.73)((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 CommandsClient Command Once per Cycle

(catch Direction) Yes

(change_view Width Quality) No

(dash Power) Yes

(kick Power Direction) Yes

(move X Y) Yes

(say Message) No

(sense_body) No

(score) No

(turn Moment) Yes

(turn_neck Angle) Yes

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

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(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 MessagesObjName:– (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

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

• (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))

CoachesPrivileged 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 Clients

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: UvA Trilearn

Coordination Graphs for passing, anticipating passes

Layered skills hierarchy (pass, intercept)

Formations

Behaviour modelling of opponents

Example: FC Portugal

Strategic, ball possession, ball recovery behaviours

“Situation Based Strategic Positioning”

Given game situation, calculated best position and go there

Example: Krislet

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

Surprisingly effective

Written in Java, easy to extend

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

ActorsThese are designed to implement a specific action, such as run-to-ball or score-goalContains 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 InterfaceAdd the new Actor to the ActorTable hash in StripsBrain.java

SensorsThese 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 InterfaceAdd the new Sensor to the SensorTable hash in StripsBrain.java.

ActionsActions 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”)

ActionsTo add an Action:

StripsBrain maintains a list of actions, so any new actions must be added to this listNote 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

GoalListContains a list of goals for which the agents try to achieveCurrently the default list consists of only one predicate: “ball-in-net”Interesting possibilities include

Adding multiple goalsRe-evaluating the goal list each cycle depending on the environment

Developing Clients

www.robocup.org

Soccer Server Manual

Start with Krislet and Stripslet

Older server versions required (v 5.xx)

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)

My Project“Scene” Learning and Recognition

Could an agent learn from observing another?

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

As little human intervention as possible!

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 Goals

Scene Recognition

Build a RoboCup client

Searches from a stored library of key scenes and actions

Evaluate performance (resemblances?)

Scene Descriptions

Extreme

LeftLeft Center Right

Extreme Right

Immediate

Ball

Near Team Mate

Distant GoalOpponen

t

An idea by Prof. Esfandiari

Size of “slices” impacts complexity, accuracy

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

top related