An Introduction to RoboCup - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

An Introduction to RoboCup

Description:

(stamina StaminaEffort) (speed AmountOfSpeed DirectionOfSpeed) (head_angle HeadAngle) ... (sense_body 19 (view_mode high normal) (stamina 4000 1) (speed 0 0) ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 52
Provided by: engsocC
Category:

less

Transcript and Presenter's Notes

Title: An Introduction to RoboCup


1
An Introduction to RoboCup
  • October 28, 2004
  • by Kevin Lam
  • Portions by Paul Marlow

2
Agenda
  • Overview of RoboCup
  • Demonstration Game
  • Simulator Mechanics
  • Simulator Communications Protocol
  • Existing Developments, Clients, Tools
  • Vision Table Project

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
four-legged
small size
middle size
simulation
6
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 2005 - Japan
7
RoboCup Simulator
simulation
  • Server (2-D and new 3-D)
  • Monitor clients
  • Player clients (i.e. agents!)
  • Coach clients

8
Demonstration
9
Simulator Mechanics
10
Clients and Server
  • One server
  • Up to 11 clients per team (plus coach)
  • Clients/server communicate via UDP/IP

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

12
  • Monitor(s) used to visualize the action and/or
    interrupt the game
  • Coaches (optional) to give guidance to teams

13
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

14
RoboCup Clients
15
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

16
Play Modes
kick off
game on
goals
out of field
offsides
half time and game over
17
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!

18
Communications Protocol
19
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

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

21
Client Commands
Client 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
22
Client Sensor Protocol
  • Three main message types
  • Hear
  • See
  • Sense_Body
  • Noise models for each

23
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

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

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

26
See Messages
  • ObjName
  • (p TeamName UniformNum goalie) or
  • (b) or
  • (g lr) or
  • (f c) (f lcr tb) (f p lr tcb)
  • (f g lr tb) (f lrtb 0)
  • (f tb lr 1020304050)
  • (f lr tb 102030)
  • (l lrtb)
  • (B) (F) (G) (P)

27
Flags and Lines
28
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))

29
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))

30
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))

31
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

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

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

35
Example UvA Trilearn
  • Coordination Graphs for passing, anticipating
    passes
  • Layered skills hierarchy (pass, intercept)
  • Formations
  • Behaviour modelling of opponents

36
Example FC Portugal
  • Strategic, ball possession, ball recovery
    behaviours
  • Situation Based Strategic Positioning
  • Given game situation, calculated best position
    and go there

37
Example Krislet
  • Only one strategy run to the ball and try to
    kick it!
  • Surprisingly effective
  • Written in Java, easy to extend

38
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

39
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

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

41
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)

42
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

43
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

44
Developing Clients
  • www.robocup.org
  • Soccer Server Manual
  • Start with Krislet and Stripslet
  • Soccer Server 9.4.5

45
Other Projects
  • Soccer Server 3D
  • 3D Soccer Monitor (Robologvis)
  • Tools to convert logs into Flash animations
  • Log analyzers (eg. Team Assistant, Paul Marlows
    Classifier)

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

47
Project Goals
  • Scene Generation
  • Extract data from game logs
  • Create scenes - snapshots
  • Scene Learning (Reasoning)
  • Associate key scenes, patterns of scenes, with
    action taken

48
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?)

49
Scene Descriptions
  • A form of generalization and knowledge
    representation
  • Size of slices impacts complexity, accuracy

Extreme Left Left Center Right Extreme Right
Immediate Ball
Near Team Mate
Distant Goal Opponent
50
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

51
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com