
 
particular model of a certain device, and associates 
all of them to a same interface. In that way the 
control programs can interact with a device, using 
their interfaces, without having to know the 
particular characteristics of its driver. For instance: 
there is only one interface ‘position’ that allows to 
control the movement devices of any robot, and it is 
implemented by some drivers (one by each concrete 
device that allows to control) adjusted to this 
interface. 
Player provides already implemented a set of 
drivers that allows to control commercial devices of 
some robots (Pioneer 1, Pioneer 2, AmigoBot, RWI 
B-series robots...). But if you want to use it to 
control robots of own creation, or other ones that are 
not between the implemented ones, it is necessary to 
develop and implement a new specific driver for 
each device of the robot, as each robot has its own 
characteristics of hardware (microcontroller), system 
media, etc. 
Player can be executed in the most of the 
UNIX/LINUX systems. It allows controlling 
multiples devices and it offers the possibility of 
modifies its code to add news drivers and/or device 
interfaces. 
Control programs (clients) communicate with 
Player across a socket TCP, asking for data of the 
sensor devices, sending command to actuators and 
configuring devices. Player server admits multiples 
clients connected at the same time, one by socket, 
and these don’t have to be in the same machine, 
simply they should be executed on a computer 
located in the same network that the server. As well 
as client programs can be written in any language of 
programming that provides socket. 
A very interesting aspect is the control of 
multiple robots using TCP/IP wireless connections, 
because they offer a greater operational range and 
allow to control from an only PC (or robot), that is 
in the same network, all robots.  The problem is that 
to do this with Player, we would have to execute an 
instance of Player in each robot, something that in 
most of robots is not possible (because they need to 
have installed an operating system type 
UNIX/LINUX). The reason is that drivers of Player 
access, normally through serial connections, directly 
to the devices and that is not possible using TCP/IP 
connections. The software platform that we propose 
allows to control multiple robots using only an 
instance of Player, that can be executed in a PC of 
the network or in a robot, and it does not need that 
robots has a great capacity of processing: it can be 
minirobots like K-team robots (Khepera robots). 
In the following sections of this article the 
proposed software platform is described, its 
architecture, and conclusions. 
2 PROPOSED SOFTWARE 
PLATFORM 
The software platform that we propose uses Player 
as its intermediate layer and is thought to control 
multiple robots of any type, through wireless 
connections and without needing to modify its code  
to control each particular robot. 
It tries to facilitate complex aspects such as the 
necessity to create a new driver for each device that 
you want to control.  Also it allows to control the 
devices through TCP/IP connections. 
In order to avoid having to create a new driver in 
Player for each new device that we want to control, 
we have developed a generic driver for each generic 
type of device (one to sonar, other to IR, another one 
for position, another one for battery...). These 
generic drivers don’t have access directly to the 
devices, it is done through a server application, that 
is executed in the robot control module. The 
communication between generic drivers and the 
server application makes use of an own protocol and 
it is possible to be made through wireless 
connections. 
This way to work is going to allow us to control, 
without needing to add new exclusive drivers to 
Player, any type of robot that incorporates the server 
application model that we propose. In this way, it is 
the robot that has to adapt to the software platform 
and not this one to each particular robot. 
The platform allows to control multiple robots 
from an only PC (or robot), through a wireless 
network, being able to execute the control programs 
in any PC of the network. 
2.1 Platform Architecture 
It is an architecture in three layers (see figure 1). 
  The top layer is composed by the control 
applications elaborated in any high-level language. 
These applications communicate, making use of the 
interfaces and through TCP socket, with the 
intermediate layer (Player). 
The lowest layer is composed by a server 
application which is executed in the control module 
of the robot, and has access to the robot devices. The 
communication between the server application and 
Player is made by TCP socket, following an own 
protocol (see figure 3). 
Both Player and server application of the robot 
support multiple connections, so a control 
application can work on several robots 
simultaneously. 
ICINCO 2005 - ROBOTICS AND AUTOMATION
436