IEEE Robotics & Automation Magazine - September 2013 - 83

Work Begins on Arena Simulator
"On Device Abstractions" Published
Proposals for a More UNIX-Like
RETF Discusses Player as a "Defacto Standard"
Approach to Robot Software
Socket Interface to Arena
ArenaServer Written to Run Arena
Controllers on Pioneer Robots
Basic Concepts of Golem Laid Out
Work Begins on What Will Become Player 2.0
Golem Created to Replace Ayullu
and ArenaServer
Dynamically-Sized Arrays Support
Golem/Arena Interface Created
ArenaServer Obseleted
Property Bag Support
Golem/Arena Renamed Player/Stage
Pluggable Interfaces Support
Player/Stage Announced to the World
"Player 2.0: Toward a
Blug Reports from Outside Start Arriving Practical Robot
Player Gains Windows Support
First Outside Contribution
Player 3.0 Released
Programming
Project Hosting Moved to SourceForge Framework"
"Most Valuable
Published
Player" published
Passthrough Driver Developed
Player Summer School on Cognitive
First Direct Funding for Player.Stage
Robots
Gazebo Started
Microsoft Robotics Studio (MSRS) 1.0
RADISH Established
Released
ORCA 2
Released
Japanese RT Middleware
Project Begins
Orocos Proposed
Orocos Development Begins
First Orocos Release
1998

1999

2000

2001

2002

2003

2004

2005

MSRS 2008
goes free
OpenRTM-Aist OpenRTM-Aist
0.4.2
1.0
Korean National OPRos
Project Begins
ROS Begins Development ROS 1.0
Released
2007
2008
2009
2010
2011

ORCA 2 Switches to ICE
OpenRTM-Aist
0.4.0

2006

Figure 1. Timeline showing major points in the development of Player, contrasted with other events in robot software.

An Evolving Design
The design of Player has evolved and changed considerably over the years. However, the core principles of the
architecture remain the same. It can still perform its original task, acting as a device server, but it can also compete,
featurewise, with the latest component-based architectures. In this section, we discuss the evolution of Player's
design from its humble origins as a side project to make
one lab's robots easier to use.
Origins of a Robot Architecture
In 1998, the Interaction Lab at the University of Southern
California (USC) used Pioneer robots from ActivMedia
(now known as MobileRobots). These robots ran on the
Ayllu middleware [1]. Ayllu is a behavior-based architecture
targeted at distributed multirobot systems. It builds on the
design of single-robot behavior-based control architectures,
in particular the Subsumption [2] style of controller. However, programming robots using it required following its controller design. This was quite limiting for researchers who
wanted to try different controller styles. It also required the
use of its own C-like custom language, adding another
hurdle for developers.
What became Player was developed both to replace
this somewhat restrictive control architecture and to
allow controllers written for the new simulator developed
in the lab, named "Arena," to be executed on real robots
without changes.

At first, controllers written for Arena were compiled indirectly, but it soon gained a socket interface. This allowed a
separation between the simulator and robot controllers. It also
led to Arena's developers writing large pieces of robot controller code for use in Arena, which they also wanted to try on
the lab's Pioneer robots. Rather than porting their controllers
to Ayllu, they developed ArenaServer.
ArenaServer ran on a Pioneer robot and presented the
same socket interface as the Arena simulator. It was tied to
both Ayllu and ActivMedia software but allowed robot
control code designed for Arena to run, unchanged, on the
lab's real robots.
This experience led the developers of Arena and Arena
Server to design the generic robot interface of their
dreams, based on some simple ideas and UNIX concepts of
abstraction:
● be as unprescriptive as possible
● present a socket interface to the robot
● hide all the details of dealing with the hardware
● be free and open
● work well with a simulator.
A new server for the Pioneer robots was developed on the
basis of these ideas. This time, however, a custom driver was
written for interacting with the robot's controller. The new
server was named "Golem." An interface between Golem and
Arena was created, allowing controllers written for one to
work with the other. Golem was soon renamed as Player and
Arena as Stage.
september 2013

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

83



Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - September 2013

IEEE Robotics & Automation Magazine - September 2013 - Cover1
IEEE Robotics & Automation Magazine - September 2013 - Cover2
IEEE Robotics & Automation Magazine - September 2013 - 1
IEEE Robotics & Automation Magazine - September 2013 - 2
IEEE Robotics & Automation Magazine - September 2013 - 3
IEEE Robotics & Automation Magazine - September 2013 - 4
IEEE Robotics & Automation Magazine - September 2013 - 5
IEEE Robotics & Automation Magazine - September 2013 - 6
IEEE Robotics & Automation Magazine - September 2013 - 7
IEEE Robotics & Automation Magazine - September 2013 - 8
IEEE Robotics & Automation Magazine - September 2013 - 9
IEEE Robotics & Automation Magazine - September 2013 - 10
IEEE Robotics & Automation Magazine - September 2013 - 11
IEEE Robotics & Automation Magazine - September 2013 - 12
IEEE Robotics & Automation Magazine - September 2013 - 13
IEEE Robotics & Automation Magazine - September 2013 - 14
IEEE Robotics & Automation Magazine - September 2013 - 15
IEEE Robotics & Automation Magazine - September 2013 - 16
IEEE Robotics & Automation Magazine - September 2013 - 17
IEEE Robotics & Automation Magazine - September 2013 - 18
IEEE Robotics & Automation Magazine - September 2013 - 19
IEEE Robotics & Automation Magazine - September 2013 - 20
IEEE Robotics & Automation Magazine - September 2013 - 21
IEEE Robotics & Automation Magazine - September 2013 - 22
IEEE Robotics & Automation Magazine - September 2013 - 23
IEEE Robotics & Automation Magazine - September 2013 - 24
IEEE Robotics & Automation Magazine - September 2013 - 25
IEEE Robotics & Automation Magazine - September 2013 - 26
IEEE Robotics & Automation Magazine - September 2013 - 27
IEEE Robotics & Automation Magazine - September 2013 - 28
IEEE Robotics & Automation Magazine - September 2013 - 29
IEEE Robotics & Automation Magazine - September 2013 - 30
IEEE Robotics & Automation Magazine - September 2013 - 31
IEEE Robotics & Automation Magazine - September 2013 - 32
IEEE Robotics & Automation Magazine - September 2013 - 33
IEEE Robotics & Automation Magazine - September 2013 - 34
IEEE Robotics & Automation Magazine - September 2013 - 35
IEEE Robotics & Automation Magazine - September 2013 - 36
IEEE Robotics & Automation Magazine - September 2013 - 37
IEEE Robotics & Automation Magazine - September 2013 - 38
IEEE Robotics & Automation Magazine - September 2013 - 39
IEEE Robotics & Automation Magazine - September 2013 - 40
IEEE Robotics & Automation Magazine - September 2013 - 41
IEEE Robotics & Automation Magazine - September 2013 - 42
IEEE Robotics & Automation Magazine - September 2013 - 43
IEEE Robotics & Automation Magazine - September 2013 - 44
IEEE Robotics & Automation Magazine - September 2013 - 45
IEEE Robotics & Automation Magazine - September 2013 - 46
IEEE Robotics & Automation Magazine - September 2013 - 47
IEEE Robotics & Automation Magazine - September 2013 - 48
IEEE Robotics & Automation Magazine - September 2013 - 49
IEEE Robotics & Automation Magazine - September 2013 - 50
IEEE Robotics & Automation Magazine - September 2013 - 51
IEEE Robotics & Automation Magazine - September 2013 - 52
IEEE Robotics & Automation Magazine - September 2013 - 53
IEEE Robotics & Automation Magazine - September 2013 - 54
IEEE Robotics & Automation Magazine - September 2013 - 55
IEEE Robotics & Automation Magazine - September 2013 - 56
IEEE Robotics & Automation Magazine - September 2013 - 57
IEEE Robotics & Automation Magazine - September 2013 - 58
IEEE Robotics & Automation Magazine - September 2013 - 59
IEEE Robotics & Automation Magazine - September 2013 - 60
IEEE Robotics & Automation Magazine - September 2013 - 61
IEEE Robotics & Automation Magazine - September 2013 - 62
IEEE Robotics & Automation Magazine - September 2013 - 63
IEEE Robotics & Automation Magazine - September 2013 - 64
IEEE Robotics & Automation Magazine - September 2013 - 65
IEEE Robotics & Automation Magazine - September 2013 - 66
IEEE Robotics & Automation Magazine - September 2013 - 67
IEEE Robotics & Automation Magazine - September 2013 - 68
IEEE Robotics & Automation Magazine - September 2013 - 69
IEEE Robotics & Automation Magazine - September 2013 - 70
IEEE Robotics & Automation Magazine - September 2013 - 71
IEEE Robotics & Automation Magazine - September 2013 - 72
IEEE Robotics & Automation Magazine - September 2013 - 73
IEEE Robotics & Automation Magazine - September 2013 - 74
IEEE Robotics & Automation Magazine - September 2013 - 75
IEEE Robotics & Automation Magazine - September 2013 - 76
IEEE Robotics & Automation Magazine - September 2013 - 77
IEEE Robotics & Automation Magazine - September 2013 - 78
IEEE Robotics & Automation Magazine - September 2013 - 79
IEEE Robotics & Automation Magazine - September 2013 - 80
IEEE Robotics & Automation Magazine - September 2013 - 81
IEEE Robotics & Automation Magazine - September 2013 - 82
IEEE Robotics & Automation Magazine - September 2013 - 83
IEEE Robotics & Automation Magazine - September 2013 - 84
IEEE Robotics & Automation Magazine - September 2013 - 85
IEEE Robotics & Automation Magazine - September 2013 - 86
IEEE Robotics & Automation Magazine - September 2013 - 87
IEEE Robotics & Automation Magazine - September 2013 - 88
IEEE Robotics & Automation Magazine - September 2013 - 89
IEEE Robotics & Automation Magazine - September 2013 - 90
IEEE Robotics & Automation Magazine - September 2013 - 91
IEEE Robotics & Automation Magazine - September 2013 - 92
IEEE Robotics & Automation Magazine - September 2013 - 93
IEEE Robotics & Automation Magazine - September 2013 - 94
IEEE Robotics & Automation Magazine - September 2013 - 95
IEEE Robotics & Automation Magazine - September 2013 - 96
IEEE Robotics & Automation Magazine - September 2013 - 97
IEEE Robotics & Automation Magazine - September 2013 - 98
IEEE Robotics & Automation Magazine - September 2013 - 99
IEEE Robotics & Automation Magazine - September 2013 - 100
IEEE Robotics & Automation Magazine - September 2013 - 101
IEEE Robotics & Automation Magazine - September 2013 - 102
IEEE Robotics & Automation Magazine - September 2013 - 103
IEEE Robotics & Automation Magazine - September 2013 - 104
IEEE Robotics & Automation Magazine - September 2013 - Cover3
IEEE Robotics & Automation Magazine - September 2013 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com