
 
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