Robotics and Computer Integrated Manufacturing
Robotics and Computer Integrated Manufacturing
a r t i c l e in f o a b s t r a c t
Article history: Integration of equipment in industrial robot cells is to an increasing part involved with interfacing
Received 17 February 2008 modern Ethernet technologies and low-cost mass produced devices, such as vision systems, laser
Received in revised form cameras, force–torque sensors, soft-PLCs, digital pens, pocket-PCs, etc. This scenario enables integrators
18 July 2008
to offer powerful and smarter solutions, more adapted to small and medium enterprises (SMEs), capable
Accepted 16 September 2008
of integrating process knowledge and interface better with humans. Nevertheless, programming all
these devices efficiently requires too much specific knowledge about the devices, their hardware
Keywords: architectures and specific programming languages, details about system communication low-level
Industrial robotic cell programming protocols, and other tricky details at the system level. To address these issues, this paper describes and
Service-oriented architectures
analyses two of the most interesting service-oriented architectures (SOA) available, which exhibit
Robotic systems adapted to SMEs
characteristics that are well adapted to industrial robotics cells. To compare, discuss and evaluate their
programming features and applicability a test bed was specially designed, and the two SOA are fully
implemented to program the test bed. Special focus is given to the way services are specified and to the
orchestration tools used to manage system logic. The obtained results show clearly that using
integrations schemes based on SOA reduces system integration time and are more adapted to industrial
robotic cell system integrators.
& 2008 Elsevier Ltd. All rights reserved.
0736-5845/$ - see front matter & 2008 Elsevier Ltd. All rights reserved.
doi:10.1016/j.rcim.2008.09.001
ARTICLE IN PRESS
interoperable systems. The definition of a service is ruled by the real-time extensions appear to be possible, but are outside the
larger context; this means that all technological details are scope of this paper.
hidden, but also that, the concept that supports the service is
more business (or process) related and less technological related. 2.2. Safety and predictability
SOA gave software engineers time to think more on the business
logic and less on the interconnection details. At the device level Safety is getting increasingly important for robotic work-cells,
service-oriented architectures are emerging as the way to deal with the intense utilization of safety sensors and the trend of
with the increasing amount of embedded devices present in our removing the fences around the machines. This might look like a
homes and offices. contradiction to the use of PC-based software for cell control, but
In manufacturing, the required (but to be hidden for the user) two facts simplify the scenario: safety sensors and controllers are
complexity together with the presence of many high-performance configured separately, based on special hardware and certification
processing devices makes the concept of service-oriented archi- procedures; safe robot work-cells are not mission critical (as an
tectures particularly suitable to use. In fact, it leads to the idea airplane control system). Therefore, occasional failure can be
that each programming block (i.e., not only physical devices) acceptable if it can be detected and handled (by stopping or
should be considered as a potential device (SOA device style) that performing another task). Thereby, we can simplify the (hopefully
offers programming or setup services. Those programming fast) development of flexible manufacturing systems, avoiding
services should also be advertised, like with a normal device, some of the issues of X-by-wire and similar systems for vehicle
inside the SOA environment, and any device offering execution technologies [4].
services should signalize availability to the programming module
that activates and uses its functionality. All the activated 2.3. Architecture
programming modules could then be used to constitute a working
program. Existing programs, from user databases or from actually
The SIRENA project (Service Infrastructure for Real-time
connected robots/devices, will be ready for execution if all the
Embedded Networked Applications) [5] pointed out the advan-
contained programming modules are activated. It can still be
tages of using SOA in industrial automation (Table 1). Both Ahn
acceptable to have an activated program that can lead to a
et al. [6] and Nielsen et al. [7] proposed using a SOA for the device
blocking situation. In that case the user should provide the
level as robot middleware of an industrial mobile platform.
required event handling. These programming modules/services as
Industrial applicability also calls for support of dumb (wired IO
can be seen has the main foundations of a high level programming
for example) and legacy devices. This subject was addressed with
(HLP) framework for industrial robots.
success by James et al. [8,9] using specially designed gateway
In the following, to confront the general SOA idea with actual
devices, and is now featured by the Microsoft Robotics Studio
manufacturing needs, two of the most promising SOA platforms
(MSRS) [10].
are analyzed and experimentally evaluated. Special attention is
There are many SOA proposed for the device level and fairly
given to the definition of services and to the development/analysis
nice revisions have been written that resume their basic features
of high-level orchestration programs. The focus in this last point
[11,12]. For the actual implementation, a SOA is in practice based
is justified by the need to cope with the ease of use of the
on a middleware platform, which can be considered a lower level
programming languages/environments of the cell subsystems.
architecture. Such platform should include suitable mechanisms
By evaluating different architecture styles and analyzing the
to support the SOA main characteristics for the device level:
applicability of the resulting systems, the aim is to contribute to
addressing, discovery, description, control and event handling
the development of future plug-and-produce solutions for SME
(eventing).
manufacturing.
3. Approach
2. Preliminaries
In this work four of the most relevant and available approaches
Since industrial cell components are getting more and more
of SOA are considered: Jini [13], universal plug-n-play (UPnP) [14],
autonomous the automation technology should integrate modern
decentralized service structure protocol (DSSP) [7] and device
networking architectures with event-driven and publish–
profile for web services (DPWS) [15].
subscribe communication. In the following, a few alternatives
Jini is an architecture proposed by Sun Microsystems based on
will be analyzed and briefly discussed.
Java. Consequently, it is platform independent but language
dependent. It also carries a large memory footprint, due to the
2.1. Components and interconnectivity presence of a virtual machine and extensive libraries, making it
less appropriate for very small devices.
Considering a holonic cell structure [1,2], with holons composed UPnP and DPWS rely extensively on standard network
by automation devices, like an industrial robot or a vision system, protocols such as transport communication protocol (TCP/IP),
one can classify as uncommon the need to have real-time in the
communication framework. Although in some special but im- Table 1
portant cases, such as visual servoing and conveyor tracking Effects on the use of service oriented architectures in automation [1]
involving feedback loops via several interconnected devices,
systems need to be able to accomplish shop–floor deterministic Today Near future
UDP, hypertext transfer protocol (HTTP), simple object access Discovery takes place once devices are attached to the network
protocol (SOAP), extendable markup language (XML) and web and are properly addressed. Devices advertise its services to
technology. This makes them platform and language independent, control points and control points search for devices in the
which is a major advantage for their adoption. XML formats are network.
broadly used and accepted and provide modern data interchange The description step allows a control point to obtain the
mechanisms and communications. Their style is close to the one necessary information about a device. This is done using the URL
defined in the business world with generic the pair composed by provided by the device in the discovery message. At this stage, the
webservices description language (WSDL) and SOAP. control point has the necessary information about the actions and
Although similar in many aspects, the UPnP and DPWS state variables provided by a device. The control step consists on
architectures use different languages for device description and calls of actions present in a device made by a control point.
different protocols for discovery and event notification. A proposal When the state of a service (modeled in their state variables)
has been made to the UPnP foundation [15] for a convergence changes, the service publishes updates by sending messages over
between the two approaches in the next major UPnP review. the network. This is called Eventing. These messages are also
Nevertheless, the new Microsoft operating system, Microsoft expressed in XML and formatted using the general event
Vista, supports both technologies under the name plug-and-play notification architecture (GENA).
extensions for Windows [16]. Some devices may have presentation web pages. In this case a
DSSP is a simple SOAP-based protocol that defines a light- control point can retrieve a page from the specified URL, load the
weight, representational state transfer (REST)-style service model page into the browser and depending on the capabilities of the
[7] that also relies extensively on web technology. Paired with page allow a user to control the device and/or view the device
concurrency and coordination runtime (CCR) it constitutes the status.
major parts of the MSRS platform.
3.1.2. DSSP
3.1. Selection of platform The application model defined by DSSP results from the REST
model by exposing services through their state and a uniform set
From the above discussion it is clear that UPnP and DSSP of operations over that state.
should be implemented and evaluated. UPnP and DPWS are very DSSP services are fine-grained entities that can be created,
similar technologies, which mean that concepts and design styles manipulated and destroyed repeatedly with DSSP operations, and
can be easily ported between each other. On the other hand, for their orchestration forms a DSSP application. A DSSP service
the UPnP case there are more development tools available and consists of:
the past work with UPnP industrial test bed [17] is a valuable
head-start. Identity—global unique reference of the service.
Even considering that all these architectures are service- Behaviour—definition of the service functionality.
oriented, substantial differences between them may exist. This Service state—current state of the service.
is the case of DSSP in comparison with the UPnP/DPWS pair Service context—relationships the service has to other
referred above. The first is a RESTful architecture which means services.
that it relies on a limited amount of verbs (limited number of
actions) and unlimited number of nouns. The second follows the
XML–remote procedure calls (RPC) SOAP general guideline and The state of a service is a representation of the service at any
resembles many of the WS-* technology guidelines. Hence, the given point in time. Representing a motor can may consist of rpm,
DSSP and UPnP architectural styles are quite different. temperature and fuel consumption. The behaviour of a service
(the contract) is the combination of the content model describing
the state and the message exchanges that a service defines for
3.1.1. UPnP communicating with other services. The behaviour of a service is
The basic elements of an UPnP network are: devices, services identified by a globally unique URI known as the contract
and control points. A device is a container of services and other identifier.
devices. A service is a unit of functionality, that exposes actions DSSP provides a uniform model for creating, deleting, manip-
and has a state defined by a group of state variables. A control ulating, subscribing and orchestrating services independent of the
point is a service requester. It can call for an action or subscribe an semantics of those services. DSSP defines a set of state-oriented
evented variable (variable with events associated) (Table 2). message operations that provide support for structured data
Addressing occurs when a device or a control point obtains a retrieval, manipulation and event notification. DSSP operations
valid IP address. Normally the dynamic host configuration are an extension of the HTTP application model, which provides
protocol (DHCP) is used; otherwise the device or control point support for structured data manipulation, event notification and
uses de auto-IP mechanism. partner management.
An application is a composition of loosely coupled services that
Table 2
through orchestration can be harnessed to achieve a desired task.
Basic steps that compose UPnP networking DSSP achieves this by separating state from behaviour,
allowing services to expose their state and hide their behaviour.
Steps Today The behaviour of the services is described by contracts (that have
a specific URI), and determines how it can compose with other
Addressing Control point and device get an address
Discovery Control point finds device of interest services. Such composition is called partnering.
Description Control point obtains service descriptions from devices To overcome some limitations of the traditional web-based
Control Control point invokes actions on devices architecture (REST) when applied to the device level, the HTTP/1.1
Eventing Services announce changes in their state
application model was extended with structured data manipula-
Presentation Control point monitor and control device status using a
HTML user interface
tion, event notification and partner management between
services.
ARTICLE IN PRESS
to get additional information (access the presentation page, for The simple case depicted in Fig. 8 is a pick-and-place case.
example). Using the ‘‘arrow’’ button, actions or events are added The setup should wait for a speech recognition event that
to the stack. Furthermore, when running the resulting program commands the conveyor to start. When the event occurs
and the program counter is pointing to an event, it means that the an action is called commanding the conveyor to enter the
program is ‘‘waiting’’ for that event to occur. Inversely, if the automatic mode. The next action is to obtain information about
program counter is pointing to an action, it means that it is calling the number of pieces and respective position from the camera
that action and waiting for the return. There is also the possibility server.
of defining auxiliary variables to store values that can be used as The obtained information is used to pick-and-place the pieces
arguments in later stack steps. calling the robot pick service.
ARTICLE IN PRESS
4.3. DSSP
As already mentioned, the speech recognition logic is exposed thing is a message, and everything is driven by (or driving) state
here to promote the visibility of MVPL capabilities. This data/ changes. This is an immediate consequence of the RESTful flavor
message driven language is very powerful to orchestrate complex of the architecture. Of course that every RPC call can always be
services. As with the UPnP’s CellProgrammer application, the use replaced by a specific message and most of the times by a CRUD
of MVPL as orchestration language is motivated by the need to message (Create, Retrieve, Update and Delete) without the need of
facilitate integration of devices, rather than programming them. creating a specific message. The questions are if this model is the
best way to express what the programmer has in mind, and if the
4.4. UPnP/DSSP comparison actual procedural programming model of most of the industrial
robots will cope well with the REST style.
For example, consider the action ‘‘Pick’’ from the AbbIrc5 from
Experiments using UPnP and DSSP with the designed industrial
the UPnP setup. This method represents the operation of picking
test bed provided valuable information that can be used to select
pieces and has as arguments the position of the pieces and the
the most adequate SOA style for industrial robotic cell program-
number of pieces to pick. This operation does not fit in any of the
ming. The proposed comparison considers two main topics:
DSSP message operations and the update-message used seems an
architecture style and actual platform.
unnecessary workaround.
An important issue to consider regarding the industrial
4.4.1. Architecture style comparison automation integration is the way services will be specified. Most
The architecture styles are radically different between DSSP industrial robots still define their tasks using a procedural
and UPnP. This is particularly visible in MSRS since there are no language (object oriented in some cases). These languages seem
RPC-like methods in Microsoft’s DSSP. In this architecture every- very adequate to specify services to the network, using one
approach similar to the one used with Web Services (SOAP/WSDL)
and languages like Microsoft Visual C# or Microsoft Visual Basic.
considered very useful to have support for concurrent stack pro- useful to industrial cell programming. On the other hand UPnP
grams in the CellProgrammer application. This could be provided does not have similar tools available.
just by adding graphical support to some concurrent features
(semaphores p.e.) from an existing library (Lund Java-based real-
time library would be a suitable example [24]). DSSP and CCR 5. Conclusions
constitute the core of the MSRS Runtime. Both technologies are
tied up which means that DSS has an extensive and modern The main objective of this paper was to review some of the
concurrency support. recently proposed SOA technologies, and confront the most
promising approaches with experimental setups reflecting real
4.4.2.3. High level orchestration programs. MSRS default package applications, i.e., using the selected SOA to control a real
includes the MVPL, which is a very interesting solution for manufacturing cell and evaluating the results. Furthermore, some
the orchestration of services. In fact, this environment can be used novel concepts were introduced, like automatic UPnP generation
to perform the same function of the CellProgrammer used in from a speech XML grammar specification. This will be further
the UPnP setup, with several advantages, namely related to the developed in the near future. A test bed was designed to
coordination of features using a graphical interface. implement two of the most promising SOA technologies: UPnP
and DSSP, the SOA present in MSRS. The idea was to make a
4.4.2.4. Discovery. The UPnP discovery is processed on a peer-to- comprehensive comparison of both technologies and in the
peer basis. Every control point has the ability to discover devices. process discuss the utilization of SOA for system integration and
In the Microsoft Runtime, services can discover each other HLP of robotic manufacturing cells. These architectures represent
through a simple discovery service that acts as a rendezvous point in the device level two major architectural styles originating from
between services running on a runtime and between runtimes. the office/enterprise software world which means that advantages
This can be a problem since a failure with discovery service may and disadvantages pointed in this work can be of major
stop the discovery mechanism. importance for the definition of future domain-specific (industrial
robotics) SOA platforms.
4.4.2.5. Security. Although many industrial networks are divided Focusing on industrial automation and specifically on indus-
from the outside office network, it is always good to have security trial robotics cell programming, SOA can support automation
mechanisms in the SOA platform. UPnP does define a security engineers to focus on their expertise (machine vision, force
mechanism [14] but it is not mandatory and add arrived far control, etc.), allowing them to keep their favorite platform/
later than the first specification, which led to many proprietary language, to rely on the standard technologies, and to reduce their
security protocols, and to the absence of security in many pro- attention on the interconnection tricky tasks.
gramming stacks. The DSS runtime has a set of infrastructure Programming industrial robotic cells using SOA as framework
services to deal with security issues. This solution is better than and friendly graphical interfaces for specification of system logic
that presented in UPnP since once you have the runtime you have has proven to be less time consuming than traditional object
standard security. oriented techniques applied against similar setup [22,25].
Planned developments include the implementation of built-in
4.4.2.6. HLP support. One of the things that a SOA should be solutions for the most important cell components like robots,
cameras, PLCs, intelligent sensors, etc. This approach enables also
is a suitable platform for the development of HLP features. One
of the keys for HLP is environment sensibility (please see to extend the plug-and-play concept, based on SOA, to plug-and-
produce just by adding to the devices a set of services that
Section 4.4.2.8), which is easily reached with a ‘‘hot plug-
and-play’’ discovery as we found in UPnP. In this scenario UPnP correspond to particular cell functionalities. The manufacturing
system must then be prepared to use the new services, with the
discovery (peer-to-peer) takes advantage. On the other hand, the
mechanism that allows the composition of services provided by necessary adaptations done automatically, to start or keep
producing.
DSSP (called ‘‘partnering’’) seems a very powerful way of defining
dependencies between services. Considering the HLP perspective The comparison effort also showed that both technologies have
interesting features that suit well the industrial environment and
these dependencies require a service to run in an HLP perspective
that represent devices and services representing programming the request for HLP approaches. This means that a merging effort
is worthwhile, namely focusing on the good discovering features
modules.
of UPnP and the advantages of the graphical orchestration
interface of the MSRS. One way to this end could be the adoption
4.4.2.7. Maintenance services. Major advantages were pointed to of graphical state–machine definition schemes (like State Chart
the existence of maintenance services in the UPnP discussion. XML) for the orchestration of services [26].
[6] Ahn SC, Kim JH, Lim K, Ko H, Kwon Y, Kim H. UPnP approach for robot [16] PnP-X: plug and play extensions for windows specification. Available at:
middleware P. In: Proceedings of the 2005 IEEE international conference on /www.microsoft.com/whdc/Rally/pnpx-spec.mspxS, 2006.
robotics and automation, Barcelona, Spain, April 2005. [17] Veiga G, Pires JN, Nilsson K. On the use of SOA platforms for industrial robotic
[7] Nielsen H, Chrysanthakopoulos G. Decentralized software services proto- cells. Intelligent manufacturing systems proceedings IMS2007, Spain, 2007.
col—DSSP/1.0, July 2007. [18] Microsoft, speech application programming interface (API) and SDK, version
[8] James F, Smit H. Service oriented paradigms for industrial automation. IEEE 5.1, microsoft corporation, /http://www.microsoft.com/speechS, 2007.
Trans Ind Inf 2005;1(1). [19] Abb: ABB IRC5 documentation, ABB flexible automation, Merrit, 2005.
[9] James F, Smit H. Service oriented device communications using the devices [20] OpenCV. Available at: /http://sourceforge.net/projects/opencvlibrary/S, 2007.
profile for web services. ACM Int Conf Proc Ser 2005;115(1). [21] Pires JN. Experiments on commanding an industrial robot using human voice.
[10] Robotics Studio, Microsoft Robotics Studio /msdn.microsoft.com/robotics/ Ind Rob: Int J 2005;32(6) [Emerald].
2007S. [22] Pires JN, Godinho T, Araújo R. Controlo e Monitorizac- ão de Células
[11] Rekesh J. UPnP, Jini and Salutation—a look at some popular coordination Robotizadas Industriais: Revista Robótica. Abril. 2006.
frameworks for future networked devices, California Software Labs, 1999. [23] Siemens PLC S7-200 System Manual, 2000.
[12] Bettstetter C, Christoph R. A comparison of service discovery protocols and [24] Robertz SG, Henriksson R, Nilsson K, Blomdell A, Tarasov I. Using real-time
implementation of the service location protocol. In: Proceedings of EUNICE Java for industrial robot control. In: Proceedings of the fifth international
open European summer school, Twente, Netherlands, September 13–15, workshop on Java technologies for real-time and embedded systems. Vienna,
2000. Austria, September 26–28, 2007.
[13] Jini. The community resource for Jini technology: /http://www.jini.orgS, [25] Pires JN. Industrial robots programming building applications for the
2007. factories of the future. Berlin: Springer; 2007.
[14] UPnP forum, available at /http://www.upnp.orgS, 2006. [26] Veiga G, Pires JN. Plug-and-produce technologies: on the use of statecharts
[15] Schlimmer J, Chan S, Kaler C, Kuehnel T, Regnier R, Roe B, et al. Devices profile for the orchestration of service oriented industrial robotic cells. ICINCO 2008,
for web services: a proposal for UPnP 2.0 device architecture. Available at: International Conference on Informatics in Control, Automation & Robotics.
/http://xml.coverpages.org/ni2004-05-04-a.htmlS, 2004. Madeira, Portugal, 11–15 May 2008.