JavaSoccer. Tucker Balch. Mobile Robot Laboratory College of Computing Georgia Institute of Technology Atlanta, Georgia USA

Similar documents
Multi-Platform Soccer Robot Development System

RoboCup. Presented by Shane Murphy April 24, 2003

Keywords: Multi-robot adversarial environments, real-time autonomous robots

LEVELS OF MULTI-ROBOT COORDINATION FOR DYNAMIC ENVIRONMENTS

Hierarchical Controller for Robotic Soccer

Building Integrated Mobile Robots for Soccer Competition

Soccer Server: a simulator of RoboCup. NODA Itsuki. below. in the server, strategies of teams are compared mainly

Towards Integrated Soccer Robots

Cooperative Behavior Acquisition in A Multiple Mobile Robot Environment by Co-evolution

2 Our Hardware Architecture

Fuzzy Logic for Behaviour Co-ordination and Multi-Agent Formation in RoboCup

The CMUnited-97 Robotic Soccer Team: Perception and Multiagent Control

Soccer-Swarm: A Visualization Framework for the Development of Robot Soccer Players

The UT Austin Villa 3D Simulation Soccer Team 2008

The UT Austin Villa 3D Simulation Soccer Team 2007

the Dynamo98 Robot Soccer Team Yu Zhang and Alan K. Mackworth

CORC 3303 Exploring Robotics. Why Teams?

A Lego-Based Soccer-Playing Robot Competition For Teaching Design

CMDragons 2009 Team Description

Optic Flow Based Skill Learning for A Humanoid to Trap, Approach to, and Pass a Ball

FU-Fighters. The Soccer Robots of Freie Universität Berlin. Why RoboCup? What is RoboCup?

Autonomous Robot Soccer Teams

Using Reactive Deliberation for Real-Time Control of Soccer-Playing Robots

COOPERATIVE STRATEGY BASED ON ADAPTIVE Q- LEARNING FOR ROBOT SOCCER SYSTEMS

S.P.Q.R. Legged Team Report from RoboCup 2003

CMUnited-97: RoboCup-97 Small-Robot World Champion Team

Multi-Agent Control Structure for a Vision Based Robot Soccer System

Lab 7: Introduction to Webots and Sensor Modeling

CMDragons 2006 Team Description

Humanoid Robot NAO: Developing Behaviors for Football Humanoid Robots

Nao Devils Dortmund. Team Description for RoboCup Matthias Hofmann, Ingmar Schwarz, and Oliver Urbann

Multi Robot Systems: The EagleKnights/RoboBulls Small- Size League RoboCup Architecture

Improving the Kicking Accuracy in a Soccer Robot

Behavior generation for a mobile robot based on the adaptive fitness function

Learning and Using Models of Kicking Motions for Legged Robots

CMDragons: Dynamic Passing and Strategy on a Champion Robot Soccer Team

Anticipation: A Key for Collaboration in a Team of Agents æ

A Flexible and Innovative Platform for Autonomous Mobile Robots

Multi-Robot Team Response to a Multi-Robot Opponent Team

Multi-Robot Dynamic Role Assignment and Coordination Through Shared Potential Fields

Robotic Systems ECE 401RB Fall 2007

Multi-Agent Task Allocation for Robot Soccer

A World Model for Multi-Robot Teams with Communication

Development of Local Vision-based Behaviors for a Robotic Soccer Player Antonio Salim, Olac Fuentes, Angélica Muñoz

Multi-Humanoid World Modeling in Standard Platform Robot Soccer

Human Robot Interaction: Coaching to Play Soccer via Spoken-Language

The description of team KIKS

Multi-Fidelity Robotic Behaviors: Acting With Variable State Information

Team KMUTT: Team Description Paper

BRIDGING THE GAP: LEARNING IN THE ROBOCUP SIMULATION AND MIDSIZE LEAGUE

Robótica 2005 Actas do Encontro Científico Coimbra, 29 de Abril de 2005

soccer game, we put much more emphasis on making a context that immediately would allow the public audience to recognise the game to be a soccer game.

Saphira Robot Control Architecture

Team Playing Behavior in Robot Soccer: A Case-Based Reasoning Approach

Distributed Intelligence in Autonomous Robotics. Assignment #1 Out: Thursday, January 16, 2003 Due: Tuesday, January 28, 2003

Development of a Simulator of Environment and Measurement for Autonomous Mobile Robots Considering Camera Characteristics

Strategy for Collaboration in Robot Soccer

Development of Local Vision-Based Behaviors for a Robotic Soccer Player

HfutEngine3D Soccer Simulation Team Description Paper 2012

Multi-Robot Coordination. Chapter 11

College of Computing (404) Georgia Institute of Technology. Atlanta, Georgia

The Attempto RoboCup Robot Team

AN AUTONOMOUS SIMULATION BASED SYSTEM FOR ROBOTIC SERVICES IN PARTIALLY KNOWN ENVIRONMENTS

Learning and Using Models of Kicking Motions for Legged Robots

CS594, Section 30682:

The RoboCup 2013 Drop-In Player Challenges: Experiments in Ad Hoc Teamwork

Intelligent Humanoid Robot

Robo-Erectus Jr-2013 KidSize Team Description Paper.

Teaching with RoboCup

AI Magazine Volume 21 Number 1 (2000) ( AAAI) Overview of RoboCup-98

Real-time Cooperative Behavior for Tactical Mobile Robot Teams. September 10, 1998 Ronald C. Arkin and Thomas R. Collins Georgia Tech

Hybrid architectures. IAR Lecture 6 Barbara Webb

Coordination in dynamic environments with constraints on resources

A Multi-Robot Formation Control System Design

Turtlebot Laser Tag. Jason Grant, Joe Thompson {jgrant3, University of Notre Dame Notre Dame, IN 46556

Virtual Synergy: A Human-Robot Interface for Urban Search and Rescue

CMDragons 2008 Team Description

Distributed, Play-Based Coordination for Robot Teams in Dynamic Environments

Courses on Robotics by Guest Lecturing at Balkan Countries

CSE-571 AI-based Mobile Robotics

AI Magazine Volume 21 Number 1 (2000) ( AAAI) The CS Freiburg Team Playing Robotic Soccer Based on an Explicit World Model

Content. 3 Preface 4 Who We Are 6 The RoboCup Initiative 7 Our Robots 8 Hardware 10 Software 12 Public Appearances 14 Achievements 15 Interested?

Robot Sports Team Description Paper

UChile Team Research Report 2009

An Open Robot Simulator Environment

Attention! Choking hazard! Small pieces, not for children under three years old. Figure 01 - Set Up for Kick Off. corner arc. corner square.

Using Reactive and Adaptive Behaviors to Play Soccer

Baset Adult-Size 2016 Team Description Paper

Development of a Simulator of Environment and Measurement for Autonomous Mobile Robots Considering Camera Characteristics

NuBot Team Description Paper 2008

RoboCup was created in 1996 by a group of Japanese,

Representation Learning for Mobile Robots in Dynamic Environments

Ola: What Goes Up, Must Fall Down

Different robotics platforms for different teaching needs

The Attempto Tübingen Robot Soccer Team 2006

STOx s 2014 Extended Team Description Paper

ER-Force Team Description Paper for RoboCup 2010

Vision-Based Robot Learning Towards RoboCup: Osaka University "Trackies"

NaOISIS : A 3-D Behavioural Simulator for the NAO Humanoid Robot

Behaviour-Based Control. IAR Lecture 5 Barbara Webb

Transcription:

JavaSoccer Tucker Balch Mobile Robot Laboratory College of Computing Georgia Institute of Technology Atlanta, Georgia 30332-208 USA Abstract. Hardwaxe-only development of complex robot behavior is often slow because robot experiments are time-consuming and robotic hardware is subject to failure. The problem is exacerbated in multirobot tasks like robot soccer where successfifl experiments require several robots to operate correctly simultaneously. Robotics research proceeds more quickly through a cycle of experimentation in simulation and implementation on hardware than through hardware-only implementation. To facilitate research in the RoboCup soccer domain we introduce JavaSoccer, a portable system supporting development of multi-robot control systems in simulation and, potentially, on soccer robots. In simulation, JavaSoccer emulates the dynamics and dimensions of a regulation RoboCup small size robot league game. 1 Introduction Soccer is an increasingly active domain for mobile multiagent robotics research. Tile soccer task is simple and familiar to most people, yet provides opportunities for diversity and cooperation in tile individual team members [5, 3, 2]. No matter the domain, multi-robot team design is challenging because success depends on coordination between complex machines. Since robot hardware is subject to frequent failure and experimentation is time consuming, hardware-only robot development is difficult. To address these issues many resee~rchers turn to a cycle of simulation and robot experiments to develop their systems. Behaviors are prototyped in sinmlation, then implemented on robots. Even though further refinement of the control system is often required for use on robots, simulation can rapidly accelerate control system development. To facilitate experimentation in RoboCup soccer, we introduce JavaSoccer, a dynamic sinm]ation of RoboCup small size league play. 3avaSoccer is part of the JavaBots software distribution available from the Mobile Robot Laboratory at Georgia Tech. JavaBots is a new system for developing and executing control systems on mobile robots and in simulation. Individual and multi-robot simulations are supported, including multiple robot types sinmltaneously. The JavaBot system's modular and object-oriented design enables researchers to easily integrate sensors, machine learning and hardware with robot architectures. Additionally, since 3avaBots is coded in Java, it is easily ported to many operating environments. To date it has run under Windows 95, Linux, SunOS, Solaris and Irix without modification.

182 The JavaBot system is being utilized in several ongoing research efforts at Georgia Tech, including RoboCup robot soccer, foraging robot teams and a "robotic pet" development effort. At present, control systems developed in JavaBots can run in simulation and on Nomad 150 robots. Hardware support will soon be provided for ISR Pebbles as well. In the future we hope to expand this capability to small soccer robots, so that behaviors tested in the JavaSoccer simulation will run directly on hardware. Another important soccer simulator, the SoccerServer developed by Noda is used in simulation competition at RoboCup events [6]. While JavaSoccer is focused on simulation and control of existing, physical robots, SoccerServer is targeted at simulation of more futuristic, human-like players. The SoccerServer is coded in C++ and runs in most Unix/X environments. JavaSoccer also runs in Unix/X environments, but it benefits from the high degree of portability afforded by Java, allowing it to run in Windows 95 and NT machines ms well. The remainder of this chapter will describe JavaSoccer in detail, including the simulation kernel, JavaSoccer rules, robot capabilities and directions for future work. Fig. 1. A JavaSoccer game in progress. 2 The Simulation System JavaSoccer runs in the JavaBotSim simulator distributed with JavaBots. At runtime, the simulator reads in a description file that describes which objects will be present in the simulation and where they should appear in the environment. Obstacles, small soccer robots, Nomad 150 robots, golf balls and "squiggle" balls have all been implemented to date. A description file appropriate to soccer simulation is included with JavaBots in the JavaSoccer directory (robocup.dsc). Simple modifications to the description file enable users to change the robot type and control systems used as well as adjust the color scheme of the robots.

183 Each object in the simulation includes two important components: a drawing method and a dynamics simulation method. The simulation kernel, or core, runs in a loop, calling the two methods for all the objects in turn at each step. The kernel also keeps track of time, and passes elapsed time to the dynamics methods so they know how far to move their associated simulated objects. The simulation can run in real-time or faster or slower than real-time according the time parameter set in the description file. In addition to the drawing and dynamics methods, each robot has an associated control system object that considers sensor inputs and makes actuator outputs for the robot. A soccer robot control system is coded in Java by extending the ControlSysteraSS class (SS stands for Small Soccer robot). Several example control systems are provided with the software. The intent is for these examples to be modified by researchers for the purpose of testing their own soccer strategies. Since the API between the control system and a simulated robot is the same as for actual hardware, the same control algorithm can be tested in simulation and in real robot runs. The capability for running soccer robot control systems on small robot hardware is not available yet, but users can develop and run systems for Nomad 150 robots. 3 RoboCup Rules in JavaSoccer Rules for JavaSoccer play are based on RoboCup's regulations for the small size robot league [4]. Some differences are necessary in JavaSoccer due to the simulation environment. Any differences are noted below: Field dimensions The field is 152.5cm by 274cm. Each goal is 50crn wide. The defen~ zone, centered on the goal, is 100cm wide by 22.5cm deep. Defense zone A defense zone surrounds the goal on each side. It is 22.5cm from the goal line and 100ca wide. Only one defense robot can enter this area. Note: this is not enforced by JavaSoccer, but it will be eventually. Coordinate system The center of the field is (0, 0) with +x to the right (east) and +y up (north). The team that starts on the left side is called the "west" team and the team on the right is called tile "east" team. At the beginning of play, the ball is placed at (0, 0). Robots Robots are circular and 12cm in diameter. Ill RoboCup rules 15ca is the maximum size. The simulated robots can move at 0.3 meters/sec and turn at 360 degrees/sec. Team A team consists of no more than 5 robots.

184 Ball The simulated ball represents an orange golf ball. It is 40mm in diameter and it can move at a maximum of 0.5 meters/sec when kicked. It decelerates at 0.1 meters/sec/sec. Ball collisions with walls and robots are perfectly elastic. Field Coloring Coloring of the field doesn't really matter in the simulation, but the image drawn on the screen matches the RoboCup regulations. Robot marking Robots are marked with a two-color checkerboard pattern. In RoboCup rules they are marked with two colored ping-pong balls. Length of the game At present, once the game starts, it runs forever. This will be changed to conform with the 10 minute halves of RoboCup. Wall A wall is placed around all the field, except the goals. Ball collisions with walls are perfectly elastic. Robots may slide along walls if they aren't headed directly into them. Communication There is presently no facility for robot to robot communication, but this may be added if researchers are interested in the capability. Goal keepers At present, the goal keeper has no means for grasping the ball. This feature may be added later. Kick-off/Restart~Stop Kick-off, restart and stop of the game are managed automatically. The west team gets to kick-off fist, with subsequent kick-offs made by the scored-against team. Robot positions at kick-off The robots are automatically positioned as shown in Figure 2 at kick-off. The numbers next to the players indicate values returned by the getplayerntmber() method. Specific positions are not specified in the RoboCup rules, except that only the kick-off team can be within 15cm of the ball. Fouls/Charging Currently no fouls are enforced by JavaSoccer. There is however a "shot clock." At the beginning of a point, the clock is set to count down from 60 seconds. If no score occurs in that time, the ball is returned to the center of the field. The ball is also returned to the center if it gets stuck for a period of time. Those types of fouls that can be evaluated objectively by the running program will eventually be added. RoboCup rules include several fouls and charging violations.

185 west east goal Fig. 2. Starting positions for a JavaSoccer kickoff. The west team is kicking off. 4 Capabilities of a JavaSoccer Robot The interface between the robot's control system or "brain," and its sensors and actuators is provided by an API defined in the SocSmai1 Java class. The most complete description of the interface is in the javadoc-generated documentation for SocSmall, and SocSmall's parent class, Simple, but a synopsis is provided here: --- Sensors Detect whether the robot is in a position to kick the ball. Get a vector pointing to tile ball. Get a vector pointing to the team's goal. Get a vector pointing to the opponents' goal. Get an array of vectors pointing to all the other players. Get an array of vectors pointing just to the robot's teammates. Get an array' of vectors pointing just to the robot's opponents. Get the player's nmnber on tile team (0-4), 0 is the goalie. Get the player's position on the field. Get the player's heading. Get the time in milliseconds since the game started. Actuators Kick the ball at 0.5 meters/sec. Push the ball by driving over it. Set desired heading. The robot can turn at 360 degrees/see. Set desired speed, up to 0.3 n~mters/sec. Each of these capabilities is implemented as a method, or function call, in the SocSmall class.

186 5 Developing New Team Behaviors New team behaviors are implemented by extending the ontrolsystemss class. The easiest way for a developer to accomplish this is by revising of one of the existing teams provided with JavaSoccer in the JavaSoccer/teams directory. Some of the example teams were developed using Clay, a behavior-based configuration system [1]. While developers may find Clay helpful in designing their strategies, it is not required. Two methods must be implemented to complete a control system: Configure() and TakeStep(). Configure is called once at set-up time to provide for initialization and configuration of the control system. TakeStep() is called repeatedly by the simulation kernel to allow sensor polling and action selection. Sensors are read by calls to abstract_robot.get* methods, actuator commands are sent by calls to abstract_robot, set* methods. Sensor example: abstract_robot, getball ( curr time ) reads the ball sensor and returns a 2-dimensional vector towards it. The curr_tirae parameter is a timestamp that helps prevent redundant sensor accesses (this is more important for use on real robots than in simulation). All other sensor methods are similar in form. Actuator example: abstract_robot, s etsteerheading (curr_t ime, 0 ) In this call, the second argument is the direction for the robot to head, in radians. So the robot will steer in the east, or +z, direction. Readers are invited to look at the example teams for more detail on sensor and actuator methods. 6 Simulating New Hardware One of the advantages of the JavaBot system is the ease with which new objects and robot types may be added to the simulation system. It is a fairly simple matter to revise an existing class to emulate new robot hardware. For instance, to create a new, larger simulated robot with the same capabilities as a Socsman, one need only extend the SocSraall class and revise the RADIUS variable. Other more complex changes are still straightforward, the developer need only ensure that all the methods defined by the Simulated0bj ect interface are implemented. 7 Installing and Running The entire JavaBots distribution, including JavaSoccer is available as a "zip" file on the world-wide-web. Installation entails downloading the distribution and un-zipping it. Instructions are available at http:/lwww.cc.gatech.edu/'tucker/javabots

187 8 Future Directions Our goal in building JavaBots and JavaSoccer is to accelerate the development of behaviors for physically-embodied robots by supporting identical control system code in simulation and on robot hardware. At present, for small soccer robots, the control systems are only supported in simulation. An important next step will be to implement the API for small mobile robot hardware. This has already been demonstrated in JavaBots for Nomad 150 robots. Other potential improvements include: closer conformance to RoboCup regulations, simulation of several robot types actually used in RoboCup competition, and new simulation features such as robot position traces and player number display. 9 Acknowledgments The author is indebted to Ron Arkin, director of the Mobile Robot Laboratory for access to computer and robot hardware used in the development of JavaBots. Itsuki Noda's SoccerServer provided an excellent example soccer simulation system [6]. I also wish to thank Peter Stone, Manueta Veloso, Hiroaki Kitano and Maria Hybinette for their advice in this endeavor. References 1. T. Balch. Clay: Integrating motor schemas and reinforcement learning. College of Computing Technical Report GIT-CC-97-11, Georgia Institute of Technology, Atlanta, Georgia, March 1997. 2. T. Balch. Social entropy: a new metric for learning multi-robot teams. In Proc. loth International FLAIRS Con]erence (FLAIRS-97), May 1997. 3. Tucker Balch. Learning roles: BehaviorM diversity in robot teams. In AAAI-O7 Workshop on Multiagent Learning, Palo Alto, CA, 19.97. AAAI. 4. RoboCup Cormnittee. Robocup real robot league regulations. http://www.csl.sony.co.jp/person/kitano/robocup/rule.htral, 1997. 5. H. Kitano, M. Asada, Y. Kuniyoshi, I. Noda, and E. Osawa. Robocup: The robot world cup initiative. In Proc. Autonomous Agents 9Z ACM, 1997. Marina Del Rey, California. 6. Itsuki Noda. Soccer server: a simulator for robocup. In JSAI AI-Symposium 95: Special Session on RoboCup, 1995.