basic means of communication between cell
controller and devices includes discovery and
addressing of devices.
Configuration Plug’n’Produce: automatically
configures all the settings the users should not
need to care about, e.g. bandwidth
requirements, default values, …
Application Plug’n’Produce: automatically
offers services to the user corresponding to the
functionality of the robot cell.
The focus of this paper lies on the Application-
P’n’P-layer. Of course, this layer depends on the
Configuration- and the Communication-P’n’P-layers
in order to get to know which devices are available,
to communicate with these devices and to get to
know the descriptions of these devices 0. However,
the two lower layers will not be within the scope of
this paper as they are already realized in available
communication protocols like XIRP and UPnP that
will be used.
3 STATE OF THE ART
UPnP 0 and XIRP 0are both XML-based client-
server communication protocols that both support
eventing and in the case of XIRP also cyclic
communication. UPnP was mainly developed by
Microsoft® for the PC-world while XIRP (XML
Interface for Robots and Peripherals) was developed
by a consortium of companies within the German
public funded project ARIKT.
Both protocols support the definition of device
profiles as do also many other communication
protocols 0. These device profiles define
programming interfaces that have to be supported by
a device in order to belong to a certain device
category. The functionality of the device can partly
be inferred from the programming interface, but it is
not itself part of a device profile. Therefore, device
profiles do not contain enough information to allow
detailed assumptions about the functionalities of
devices.
In the domain of knowledge representation,
languages have been developed that can be used to
describe functionalities of devices in form of a
taxonomy plus additional attributes. The most
popular of these languages is OWL (Web Ontology
language). It was developed as a key technology of
the Semantic Web 0 with the goal to add meaning to
the information that is today merely displayed in the
internet. This additional information can be used to
enable knowledge based services that contain
several entities.
In the context of home entertainment systems, a
function planning module was developed within the
SmartKom project. This module tries to serve
complex user requests by first determining which
devices are necessary and then determining how to
control devices based on abstract descriptions of the
functionalities of devices 0, 0.
In this paper, the concept of device profiles
augmented by a detailed description of the device’s
functionality with a knowledge representation
language is used to infer the functionality of a robot
cell within the Plug’n’Produce-Module that adapts
concepts of the function planning module of the
SmartKom project to the robotic domain to generate
executable code for UPnP- and XIRP-devices thus
enabling Application-P’n’P.
4 APPLICATION-P’N’P
OVERVIEW
Application-P’n’P as the highest P’n’P-layer has the
goal to offer the user as easy as possible means of
using the functionality of a robot cell. In the context
of SMErobot
TM
this means offering the user as easy
as possible means of adapting robot cells to new
tasks.
State of the art of defining the sequence for robot
cells is to enter commands in the dialog of some sort
of a programming system. The entered commands
are then uniquely mapped to devices. This is an
appropriate way of programming as long as the user
has detailed knowledge about the control structure of
devices as well as about programming itself. In the
context of a SMErobot
TM
-application this cannot be
granted. Users of robot cells in SME environments
normally know a lot about the processes they have to
perform in order to achieve the desired result, but
have only minor knowledge about programming
devices (a robot is a special kind of device).
Therefore, the definition of sequences for robot cells
in SME environments should be possible without the
need of device programming. Instead, programming
should be focused on the processes the user wants to
execute. In this paper, this will be called “process-
oriented programming” and the corresponding
commands will be called “process commands” as
opposed to traditional “device commands”.
Process commands trigger whole processes like
drilling a hole or gripping a part, while device
commands trigger a state change in a single device
like setting a digital output or moving a robot from
AUTOMATIC GENERATION OF EXECUTABLE CODE FOR A ROBOT CELL USING UPNP AND XIRP
243