
does not need to know the address or even the
number of robots taking a part in the action.
3.7.5 State Machine Service
In addition to user interface client services, some
control services have also been created. One of the
main services is State Machine Service. It provides a
resource that can execute RDF-formed state
machines, which can control complex conditional
sequences, being able to provide multiple property
services at the same time. This has been described
previously in (Mäenpää 2004). State Machine
Service can control a large set of services
simultaneously. Currently, State Machine Service
also has a visual user interface, where the user can
create and modify state machines graphically and
during operation. By using Storage Service,
introduced below, the state machine or part of it can
be stored into a database for further usage or
execution.
3.7.6 Storage Service
Another architectural service is Storage Service. It is
a combination of file transfer systems and databases.
The service can be started for a specified directory in
operating systems and all (or only selected) files are
shown as properties of the service. A remote client
can request a property, named according to the
filename, and receive the value of the property,
which is the content of the file. The same procedure
can be used to store new files and data into a service,
by setting a new property in the service. For
example, a robot can send captured images to a
storage service, which stores the images in the
memory (or on a hard disc) of the service. As in
Resource Property Service, Storage Service may
also contain several intelligent search methods, and
the client can request files according to specified
features. Storage Service has been used to store
captured data such as images, to upload and
download control sequences and state machines, and
to request GUI components remotely.
3.7.7 Environment Model as a Service
To be able to operate, a distributed system must
have knowledge of the environment where the
services, such as robots and sensors, are operating. If
the system is not designed to be fully reactive, it is
reasonable to collect information received by
services. The system can have one or several
environment model services. If only one model is
used, all the services send their measurements to this
service, and the model service performs data fusion
and updates the model. Each service might also have
its own model, which is a local representation of the
service’s way of receiving information from the
environment. For example, a ceiling camera might
have an environment model service that provides
information received using the camera. Markers are
used in most communication and data storing, but
other methods are also possible. For example, a
model can contain a grid of temperature values
gathered by a swarm of small robots or a sensor
network. In this case, the temperature map is
updated according to the locations of the
measurements.
4 COMPARISON
The overall performance of the system depends on
the computational power of the platform and the
speed of the communication channel used. However,
in a comparison of the development times of a new
service and cooperation between different
middleware, Property Service provides a great
advantage. The amount of required lines of code is
very small compared with, for example, CORBA-
based robot middleware that provides the same
features and functionalities of the resource. As the
capabilities of a robot or other service increase, it
becomes even more useful that the actual interface
does not need to be changed.
As the code is highly reused, new services are
fast to implement and all system services like state
machines, and storage services are available for use
immediately. For example, the “move to” behavior
is common to all robots; no matter if they are legged,
wheeled, or even a manipulator. System services
also provide great advantages in building
applications for distributed systems. This provides
even more advantages compared with other systems.
Passing messages as text strings is expensive
compared with other formats (like language-specific
byte arrays). The performance of communication has
been improved by sending only essential
information and by using refined data instead of
continuous control commands or raw sensor data.
Several applications and example systems have been
created using Property Services. Property Service
has been successfully used for remote control of
several mobile robots that provide audio and video
data, and receive several moving commands
(Tikanmäki 2003) using CORBA middleware and a
wireless LAN. It has also been used to create remote
operation for a swarm of simulated robots
(Tikanmäki 2004). Both are good examples of
applications where quick response between services
ICINCO 2007 - International Conference on Informatics in Control, Automation and Robotics
232