<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Integrating Mission, Logistics, and Task Planning for Skills-Based Robot Control in Industrial Kitting Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Matthew Crosby,</string-name>
          <email>{M.Crosby,R.Petrick}@hw.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>César Toscano,</string-name>
          <email>{ctoscano,rcdias}@inesctec.pt</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesco Rovida,</string-name>
          <email>francesco@m-tech.aau.dk</email>
          <email>{francesco,vok}@m-tech.aau.dk</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ronald P. A. Petrick, Department of Computer Science, Heriot-Watt University</institution>
          ,
          <addr-line>Edinburgh EH14 4AS, Scotland</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Rui Correia Dias, INESC TEC, Technology and Science</institution>
          ,
          <addr-line>4200 - 465 Porto</addr-line>
          ,
          <country country="PT">Portugal</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Volker Krüger</institution>
          ,
          <addr-line>Robotics, Vision</addr-line>
          ,
          <institution>and Machine Intelligence Lab, Aalborg University</institution>
          ,
          <addr-line>Copenhagen 2450</addr-line>
          ,
          <country country="DK">Denmark</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents an integrated cognitive robotics system for industrial kitting operations in a modern factory setting. The robot system combines low-level robot control and execution monitoring with automated mission and task planning, and a logistics planner which communicates with the factory's manufacturing execution system. The system has been implemented and tested on a series of automotive kitting problems, where collections of parts are picked from a warehouse and delivered to the production line. The system has been empirically evaluated and the complete framework shown to be successful at assembling kits in a small factory environment.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The kitting paradigm, where collections of parts are gathered
and delivered to a production line, is becoming increasingly
common in modern factories as it enables customised
products to be built one after the other. Currently, kitting is a task
that is usually reserved for human workers, leading to
longterm injuries from repetitive stress due to the sheer number
and weight of parts picked. However, automating this
process means addressing a number of challenging problems
including autonomous navigation in an open warehouse
environment, execution of bin picking and complex part
picking, planning of robot actions to complete kitting orders in
the required time, and logistics planning to interface with
factory systems. This paper presents an integrated cognitive
robotics system that has been developed to solve the kitting
problem and deal with the aforementioned problems.</p>
      <p>
        The system is split into three main parts: a high-level
logistics planner, a low-level robot control architecture, and
the automated planning subsystems. The logistics planner
provides an overview of the state of the entire system and
includes a comprehensive world model. It also provides
access for human workers to oversee operations and
interact with planned missions and the world model. The
lowlevel architecture, called SkiROS
        <xref ref-type="bibr" rid="ref23 ref25">(Rovida and Krüger 2015;
Pedersen et al. 2016)</xref>
        , maintains robot-level world
information for managing action execution. Finally, there are two
planning subsystems that use standard automated planning
techniques: a task planner that interfaces with SkiROS to
find plans for individual robots, and a mission planner which
communicates with the logistics planner to provide goal
assignments for robots in a robot fleet.
      </p>
      <p>The robot used for this work is shown in Figure 1. The robot
consists of a robotic arm mounted on an automated guided
vehicle (AGV) platform. The platform has enough space for
two kitting boxes to be filled concurrently. SkiROS, the task
planner, and the robot-level control modules are contained
on the robot itself. The logistics planner and mission planner
are hosted outside of the robot and communicate via Robot
Operating System (ROS) services1 using wifi.</p>
      <p>The rest of this paper is organised as follows. First, the
related work is discussed, followed by a brief overview of the
system architecture. The next three sections then introduce
the main components of the integrated system: the logistics
planner, the SkiROS system, and the two planning systems.
Finally, we describe the results of the in-factory testing of the
complete system, and conclude by discussing future work.</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Integrated robotics systems are becoming more and more
complex, with many new architectures being proposed. At
the robot-level, hybrid systems with a deliberative high level,
a reactive low level, and a synchronisation mechanism to
mediate between the other two levels
        <xref ref-type="bibr" rid="ref13">(Firby 1989)</xref>
        are
common
        <xref ref-type="bibr" rid="ref15 ref18 ref2 ref32">(Gat 1998; Volpe et al. 2001; Bensalem et al. 2009;
Magnenat 2010)</xref>
        , with researchers focused on finding
appropriate interfaces between declarative high-level
reasoning and procedural low-level control. SkiROS (Skills-ROS)
        <xref ref-type="bibr" rid="ref25">(Rovida and Krüger 2015)</xref>
        , the skills architecture used in
this paper, is a hybrid framework following concepts from
model-driven software engineering
        <xref ref-type="bibr" rid="ref26">(Schlegel et al. 2015)</xref>
        .
      </p>
      <p>
        Other approaches that seek to bridge the gap between
highlevel and low-level robot actions include ROSco
        <xref ref-type="bibr" rid="ref20">(Nguyen et
al. 2013)</xref>
        and Smach
        <xref ref-type="bibr" rid="ref24 ref5">(Bohren and Cousins 2010)</xref>
        , which use
Hierarchical Finite State Machines. In contrast, approaches
like ROSPlan
        <xref ref-type="bibr" rid="ref7">(Cashmore et al. 2015)</xref>
        and the work of
        <xref ref-type="bibr" rid="ref30">(Vaquero et al. 2015)</xref>
        make use of planning. The former requires
manual definition of planning domains, while the latter uses
a translation approach specific to their application. In our
work, the user can define and modify skills on the fly and
planning domains are automatically generated.
      </p>
      <p>
        Knowledge representation also plays a key role in cognitive
robotic systems
        <xref ref-type="bibr" rid="ref24 ref31 ref5">(Vernon, von Hofsten, and Fadiga 2010)</xref>
        ,
especially when defining world models. A prominent example
in robotics is the KnowRob system
        <xref ref-type="bibr" rid="ref28">(Tenorth and Beetz 2012;
2013)</xref>
        , which combines knowledge representation and
reasoning methods for acquiring and grounding knowledge in
physical systems. KnowRob uses a semantic library which
facilitates loading and accessing ontologies represented in
the Web Ontology Language (OWL). Semantic
representations of the world scene are stored in order to reason about
object positions in space and time, along with models of the
robot hardware and the robot skills. A similar approach is
presented in
        <xref ref-type="bibr" rid="ref17 ref27 ref29 ref3">(Björkelund et al. 2012; Stenmark and Malec 2013;
Bjørkelund and Edstrom 2011)</xref>
        as part of the Rosetta project,
which focuses on how skills should be modelled for industrial
assembly tasks. Another study in
        <xref ref-type="bibr" rid="ref16">(Huckaby 2014)</xref>
        focused on
identifying a precise taxonomy of skills for assembly tasks.
      </p>
      <p>
        Automated planning has been used for robot control since
Shakey
        <xref ref-type="bibr" rid="ref22">(Nilsson 1984)</xref>
        . While early approaches separated
symbolic planning from other forms of planning like
geometric planning, it was recognised that solutions often
benefited from a hybrid approach
        <xref ref-type="bibr" rid="ref6">(Cambon, Alami, and Gravot
2009)</xref>
        . Recently, robot task planning has become an active
research area, with approaches taken from diverse areas such
as sampling-based motion planning
        <xref ref-type="bibr" rid="ref1 ref24 ref5">(Plaku and Hager 2010;
Barry 2013)</xref>
        , integration of symbolic planning with
robotlevel processes
        <xref ref-type="bibr" rid="ref11 ref12 ref14 ref9">(Eiter et al. 2006; Dornhege et al. 2009;
Erdem et al. 2011; Gaschler et al. 2013)</xref>
        , and probabilistic
back-chaining
        <xref ref-type="bibr" rid="ref14 ref17 ref27 ref29">(Kaelbling and Lozano-Pérez 2013)</xref>
        .
      </p>
    </sec>
    <sec id="sec-3">
      <title>System Architecture</title>
      <p>We begin by describing the system architecture used in this
work (Figure 2). The logistics planner interfaces directly
with the factory’s manufacturing execution systems (MES)
in order to retrieve information about the current state of the
factory environment and the kitting orders to be filled. This
includes details of the parts to be collected for the next set
of products, and also the expected locations of the parts in
the warehouse. The logistics planner also interfaces with the
mission planner: when kitting orders are received, they are
sent to the mission planner which returns an assignment of
the kitting orders (goals) to individual robots in a robot fleet.</p>
      <p>The logistics planner also communicates with the SkiROS
system on each robot. Communication is implemented via
generic ROS services, except for communication between
the logistics planner and MES, which must conform to the
factory’s system interfaces. Once a goal is sent to a specific
robot, SkiROS invokes the task planner to find a sequence
of skills whose execution should lead to the successful
completion of the goal. During skill execution, the internal world
model of the robot is constantly updated and replanning is
invoked in the case of execution failure.</p>
      <p>Both the logistics planner and SkiROS have GUIs
designed for easy access to the current system state, and for
factory workers to program and update the system. The
logistics planner’s user interface can be used to configure the
warehouse environment, send and receive missions and tasks,
and to monitor the system. The SkiROS user interface can be
used to add custom skill sequences, monitor and update the
robot’s world model, and initiate the execution of skills.</p>
      <p>The system components are described in detail below.</p>
    </sec>
    <sec id="sec-4">
      <title>Logistics Planner</title>
      <p>The logistics planner forms the bridge between the robots,
the mission planner, and the MES elements. It stores data
about the working environment, including identifiers for all
physical objects and their three dimensional models.
Information is initially compiled from the MES, manual input by
a kitting technician, and the states and capabilities of the
robots as defined in SkiROS (see below).</p>
      <p>The information communicated by the logistics planner
mainly concerns the physical objects that are located in the
environment. In our application, this equates to shelves, small
and large boxes, conveyors, kits, parts, and packaging
elements. For each object, its characteristics (e.g., internal
organisation, geometry, and spatial location) are modelled in
the logistics planner so as to provide this information to the
planning and execution components.</p>
      <p>The logistics planner’s world model specifies the position,
orientation, and geometry (in the form of a volume) of all
object instances. This is represented through an inverted
hierarchical graph, where a node represents a physical object
and the link between two nodes the containment relationship
between the two corresponding physical objects. The node
on the top of the hierarchy is the root node which models the
entire space. This region is further decomposed into
subregions for different categories of objects (e.g., shelves, large
boxes, and conveyors) or to achieve specific purposes (e.g.,
robot navigation). Below these specific regions are a set of
nodes used to model kits (boxes with compartments), large
boxes (containers on the ground organised into layers with
compartments in each layer), shelves (also structured into
layers that contain small boxes), and conveyors. Parts are
not normally represented as nodes in order to avoid
excessive information in the graph (e.g., a large box containing
four layers may have 80 parts) and also because there is no
need to identify each part instance. Common characteristics
of parts (e.g., the part’s 3D model) are represented in the
world model to support robot operations. The world model
is initially constructed in two phases. First, the
representation of these object categories is gathered from an external
information system. Second, object instances are created and
positioned in the 3D space occupied by the logistics
supermarket. This is achieved by a technician using the GUI.</p>
      <p>The logistics planner supports three methods for inputting
and storing information about the environment (Figure 3).
First, a 2D image is created by a CAD application to visually
specify the location and orientation of each object in the
logistics supermarket (Figure 3a). The red rectangle represents
the object being placed whilst the remaining rectangles
represent objects already in place. Second, a 2D image created
by the robot through its Simultaneous Localization and
Mapping (SLAM) functionality can be used to visually specify
an object’s location and orientation (Figure 3b). Finally, a 3D
image of the supermarket is also created to visually specify
object locations and orientations (Figure 3c).</p>
    </sec>
    <sec id="sec-5">
      <title>SkiROS</title>
      <p>A SkiROS component is located on each robot and controls
robot-level execution and ontology management. It also
communicates status updates and receives mission assignments
from the logistics planner. SkiROS is organised into four
layers, each of which is represented by a manager. The lowest
layer is the device manager, which loads proxies (drivers
which conform to a standard interface) and presents
standard interfaces for similar devices (e.g., gripper, arm,
camera, etc.). The second layer contains the primitive manager
which contains motion primitives, software blocks that
realise movement controlled with multi-sensor feedback, and
services, software blocks that perform a generic
computation. The modules are parameterised and contain a
parameters specification and execution part.</p>
      <p>The third layer, the skill manager, loads skills (see below)
and provides interfaces to the layer above. It also registers
the robot subsystem with the world model, specifying the
hardware, available modules, and available skills. A skill’s
execution is usually implemented as a finite state machine
which coordinates the execution of several parameterised
primitives. Finally, the fourth layer of the architecture is the
task manager which monitors the presence of subsystems via
the world model and acts as a general coordinator. The task
manager is the interface for external systems, designed to be
connected to a GUI or the MES of a factory.</p>
      <p>A central concept in SkiROS is the idea of robot skills,
which can be thought of as general and robust software
constructs that model self-contained, re-occurring operations
that a robot might perform. Skills are intended to be
designed such that they easily map to simple intuitive tasks. For
example, a system might include calibration skills,
manipulation skills for operations like picking and placing, as well
as driving skills for mobile robots. Skills are implemented
Robot skill</p>
      <p>Execution</p>
      <p>Continuous evaluation
by experts to contain the necessary sensing and action
operations for self-contained execution on the robot platform.
One benefit of a skills-based system is that non-experts can
typically programme a robot task in a straightforward
manner by selecting appropriate skill sequences that result in the
desired state changes to the robot’s environment. Skill
sequences can also be constructed in a completely automated
way using planning techniques, as discussed below.</p>
      <p>The conceptual model of a robot skill is shown in Figure 5.
A skill takes as input a set of parameters and a representation
of the world state; it outputs a set of state changes. A skill
contains both precondition and postcondition checks which
monitor the environment, either through sensing or based
on the world model. These checks allow the task layer to
infer the likely causes of execution failures. For example, a
precondition check for a pick skill might be that the item to
be picked must be visible to a camera, and a postcondition
check might be that the picked item must be in the gripper.</p>
      <p>In addition to skills, a key part of SkiROS is the world
model, which acts as a knowledge integration framework.
The world model is a vertical cross-layer component which
links all layers together by gathering information from every
subsystem at run time, allowing the modules to maintain
a shared working memory, and storing the environment and
skills information that are used to create the planning domain.
In terms of the architecture, the world model can be read and
modified by almost every part of the system.</p>
      <p>The world state is partially defined by a human
operator in the ontology, partially abstracted by the robot using
perception, and completed with the procedural knowledge
embedded in the skills and primitives. It is originally
populated with the robot skills knowledge, robot-specific
knowledge such as grasp poses or parameter settings, and with the
world model provided by the logistics planner. Each skill
manager in the system is responsible for keeping the world
model updated with its subsystem information (e.g.,
hardware, available primitives, skill state, etc.). Similarly, each
primitive and skill can extend the scene information with the
results of robot operation or sensing. In special cases, the
ontology can be extended automatically by the robot to learn
new concepts (e.g., a new grasping pose).</p>
      <p>Figure 6 shows an example of a world model. The tree
constructed by the spatial relations forms the scene graph, a
data structure commonly used by modern computer games to
arrange the logical and spatial representation of a graphical
scene. In this structure, an object’s pose is always defined
with respect to the parent frame. The skills are connected to
robot elements by the non-spatial relation hasSkill.</p>
    </sec>
    <sec id="sec-6">
      <title>Automated Planning</title>
      <p>Two different planning components are used in the system: a
task planner and a mission planner. The task planner forms
part of SkiROS and finds skill sequences for robots to
complete their missions. The mission planner distributes missions
to individual robots in the fleet based on input from the MES
and the world model, mediated by the logistics planner.</p>
      <p>
        The task planner automatically generates its domain from
the world model and skill definitions in SkiROS. The task
planner has three main functions: it creates a PDDL
        <xref ref-type="bibr" rid="ref19">(McDermott et al. 1998)</xref>
        model of the skills, current state, and goals;
it calls an external planner to attempt to find a plan to achieve
the current goals; and, if a plan is found, it returns the plan
as a sequence of skills to the task manager. The task planner
is fully integrated into SkiROS and is called whenever the
robot has a goal that must be achieved, either manually by an
operator or automatically on mission assignment, or when
skill execution fails and replanning is required.
      </p>
      <p>Figure 8 shows the parameters, preconditions, and
postconditions for two skills (Drive and Pick), as defined in
SkiROS, based on world model constraints and updates.
Relations or properties for which postcondition checks are</p>
      <p>add: RobotAt(Container, MobileBase)
Pick(Gripper, Object, Container) :
pre: empty(Gripper)
pre: robotAt(Container, Robot)
pre: objectAt(Container, Object)
del: empty(Gripper)
add: contains(Gripper, Manipulatable)
expected to be true (similarly, false) become add (similarly,
delete) effects. Action parameters are created from the inputs
defined for the skill’s execution block.</p>
      <p>An overview of the task planning process is shown in
Figure 7. The central part shows the task planner’s planning
library, which contains all the structures needed to create
a PDDL planning problem from the world state, skills, and
goals. Specifically, it includes structures for types, predicates
(both ground and unground), actions, and (typed) objects.</p>
      <p>The process of creating the initial planning representation
is given in Algorithm 1, which represents the left hand side
of Figure 7 and involves three main steps. The first step is to
parse the skills that exist in the world model. This involves
adding all types and predicates that appear in the skills
definitions to the planning library and also creating an action for
each skill, which has a direct copy of the preconditions and
effects. All relations, properties, and types that do not appear
in a skill are therefore not included in the planning library.
The process of iterating through the skills and querying the
world model to find true predicates may result in a planning
library with less elements and types than in the world model.
The omitted data can be safely ignored (and an error given
for an incorrect goal) due to the following:
Lemma 1: Any object with a type that does not appear in a
skills definition can never appear in a solution plan.
Proof Sketch: It is impossible to change the truth value of a
predicate that does not appear in an action’s effects, and the
truth value of a predicate that does not appear in any action’s</p>
      <sec id="sec-6-1">
        <title>Algorithm 2: Planning Domain Refinement</title>
        <p>Input : Initial Planning Representation
Output Final Planning Representation
:
// Add Capabilities
1 foreach Action a : actions do
2 predicates.add(can_a ?robot)
3 a.pre.add(can_a ?robot)
4 foreach Robot r : hasSkill(a, r) do
5 initState.add(can_a r)</p>
        <p>// Spatial Relation Constraints
6 foreach Action a do
7 foreach Spatial Relation S(o; s) 2 a:add do
8 if 6 9S 2 a:pre AND 6 9S 2 a:del then
9 s:params:add(x; s:type)
10 s:pre:add(S(o; x))
11 s:del:add(S(o; x))
12 else if 6 9S 2 a:pre then
13 s:pre:add(S(o; s))
14 else if 6 9S 2 a:del then
15 s:del:add(S(o; s))
(:action drive
:param (?R - Agent ?T - Location</p>
        <p>* ?preT - Location)
:pre (and
* (can_drive ?R)
* (RobotAtLocation ?R ?preT))
:eff (and
* (not (RobotAtLocation ?R ?preT))</p>
        <p>(RobotAtLocation ?R ?T)))
preconditions can never be required for a change in state.</p>
        <p>The right hand side of Figure 7 encodes implicit properties
of the world model and system. The first part makes sure that
skills are only usable by the correct elements, by querying
the hasSkill relation from the world model. For each action,
a new predicate (can_a ?robot) is added to the planning
description. This predicate is added as true to the initial
state for each robot that can perform a particular skill, and
is invariant. An extra precondition (can_a ?robot) is also
added to each action so that it can only be instantiated by the
correct robots. If the Robot parameter is missing from the
skill definition then it is added to the action parameters.</p>
        <p>The second part adds any preconditions and delete effects
that are necessary to maintain the tree structure of the spatial
relations in the world model. SkiROS contains methods for
internally updating its world model so that it remains
consistent, and these methods need to be modelled explicitly in
the planning domain. For instance, with respect to the skills
in Figure 8, the Drive skill only contains a single predicate
which specifies the new location of the robot. This is because
the input for the execution block of the Drive skill is only
the goal location to which the robot has to move. The drive
action must then be modified so that robotAt is true of only
one grounding for the robot performing the Drive skill, so the</p>
      </sec>
      <sec id="sec-6-2">
        <title>Mission type</title>
        <p>old instantiation must be found (it becomes a precondition)
and added as a delete effect of the action.</p>
        <p>Figure 9 shows the skills from Figure 8 after translation
to PDDL. Note that in terms of implementation, the
parameter added to the Drive skill is removed when returning the
parameterised skill to the task manager. The translation adds
three new preconditions and two new delete effects over the
two actions. The following lemma shows that these additions
ensure the world model’s tree structure is maintained:
Lemma 2: Performing an action created by the task planner
on a problem whose spatial relations form a tree will result
in a state in which the spatial relations still form a tree.
Proof Sketch: All that needs to be shown is that any deletion
of a spatial relation property inserts it elsewhere with the
same object (and therefore moves the whole subtree), and
that every addition has a corresponding deletion. The former
is a constraint on the skill definition. For the latter, every
time a new spatial relation appears in the add effects then,
by construction of the algorithm, a spatial relation with the
same subject must appear in the delete effects. This spatial
relation must match the only occurrence of that object in a
spatial relation in the current state otherwise the action could
not be performed as this must exist (again by construction)
as a precondition to the action.</p>
        <p>Once the translation is complete, the planning problem is
written to domain and problem files in PDDL for use with an
external planner. The planner’s output (a sequence of
instantiated actions) is parsed and converted back to parameterised
skills to be sent to the task manager for robot execution.</p>
        <p>
          The mission planner takes goal and world state
information from the logistics planner and returns goal assignments
(missions) for each robot in the fleet. The mission planner
therefore needs to be able to perform planning for
multirobot domains with large numbers of agents. These types of
domains are generally hard to solve for traditional classical
planning approaches so a multiagent planner
          <xref ref-type="bibr" rid="ref8">(Crosby 2015)</xref>
          is used with a custom domain to find its plans.
        </p>
        <p>As the mission planner must find plans for the entire robot
fleet, creating the planning domain manually is necessary in
order to remain scalable as the system increases the number
of robots. Some of the more fine-grained information
available in the world model is abstracted away (e.g., information
used by the on-board robot task planners to find the exact skill
sequences), since the mission planner only needs to return a
viable assignment of goals. In particular, the mission planner
focuses on making sure that plans are achievable and assigned
to the most appropriate robots, not with skill orderings. For
specific implementations, depending on the domain sizes,
complexity, and (crucially) the number of robots, it might
be possible to use the task planner’s automatically generated
domain, or necessary to abstract even more. In either case,
the interfaces to the logistics planner remain the same.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Experiments</title>
      <p>The complete system was deployed in a real-world
environment (Figure 1) at a PSA Peugeot Citroën factory in Rennes,
France. The results of the experimental testing are presented
in Table 1. The tests were carried out using simulated kitting
orders as input. The system success rate shows the success of
the system, ignoring any errors that came from robot
execution modules. In all cases, the mission planner successfully
found mission assignments, and the task planner found
correct sequences of skills to complete the missions.</p>
      <p>The failure points in the system came from robot execution
code for individual skills, which (for this implementation) are
still undergoing design change. In some failure cases,
replanning was able to recover from a failure in execution, though
these cases are still marked as failures in the results. Overall,
the results show that the system architecture is sound, but the
execution code for the skills needs to be improved. Due to
the modular nature of the system design, the skill execution
code can be updated without affecting the logistics planner,
automated planning, or high-level SkiROS components.</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusions</title>
      <p>This paper described a fully implemented and integrated
system for autonomous robots in an industrial factory setting.
The system uses planning and a skills model called SkiROS to
bridge the gap between low-level robot control and high-level
planning. A logistics planner mediates between the factory
MES and the mission planning component. Skills are
explicitly defined, while a task planner automatically generates
the corresponding PDDL planning domain. The resulting
system has been shown to operate successfully in a factory
environment. From an end-user perspective, the robot is
programmed to perform new tasks by specifying goal conditions;
new skills are added by specifying constraints on the world
model with no explicit knowledge of planning required.</p>
      <p>Work is progressing to test more skill implementations and
further explore the relationship between skills and planning.
Failure handling will be improved to allow for replanning
in the case of unsatisfied pre/postconditions and execution
failures. To optimise cycle time, the assumption of sequential
skill execution will also be relaxed, allowing parallel skill
execution from temporal plans.</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgements</title>
      <p>The research leading to these results has received funding
from the European Union’s Seventh Framework Programme
under grant no. 610917 (STAMINA, stamina-robot.eu).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Barry</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Manipulation with Diverse Actions</article-title>
          .
          <source>Ph.D.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Bensalem</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ; Gallien,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>Ingrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ;
            <surname>Kahloul</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.;</surname>
          </string-name>
          and Nguyen, T.-H.
          <year>2009</year>
          . Designing autonomous Robots:
          <article-title>Toward a more dependable software architecture</article-title>
          .
          <source>IEEE Robotics &amp; Automation Magazine</source>
          <volume>16</volume>
          (
          <issue>1</issue>
          ):
          <fpage>67</fpage>
          -
          <lpage>77</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Bjørkelund</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Edstrom</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <year>2011</year>
          .
          <article-title>On the integration of skilled robot motions for productivity in manufacturing</article-title>
          .
          <source>In IEEE International Symposium on Assembly in Manufacturing.</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Björkelund</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Malec</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Nilsson</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Nugues</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ; and Bruyninckx,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <year>2012</year>
          .
          <article-title>Knowledge for Intelligent Industrial Robots</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Bohren</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Cousins</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>The SMACH High-Level Executive</article-title>
          .
          <source>IEEE Robotics &amp; Automation Magazine</source>
          <volume>17</volume>
          (
          <issue>4</issue>
          ):
          <fpage>18</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Cambon</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ; Alami, R.; and
          <string-name>
            <surname>Gravot</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <year>2009</year>
          .
          <article-title>A hybrid approach to intricate motion, manipulation and task planning</article-title>
          .
          <source>International Journal of Robotics Research</source>
          <volume>28</volume>
          (
          <issue>1</issue>
          ):
          <fpage>104</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Cashmore</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Fox</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Long</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Magazzeni</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Ridder</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Carrera</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Palomeras</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Hurtos</surname>
            , N.; and Carreras,
            <given-names>M.</given-names>
          </string-name>
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Crosby</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2015</year>
          .
          <article-title>ADP: an Agent Decomposition Planner CoDMAP 2015</article-title>
          .
          <article-title>In Proceedings of the ICAPS Competition of Distributed and Multi-Agent Planners (CoDMAP).</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Dornhege</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Gissler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Teschner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ; and Nebel,
          <string-name>
            <surname>B.</surname>
          </string-name>
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <article-title>Integrating symbolic and geometric planning for mobile manipulation</article-title>
          .
          <source>In IEEE International Workshop on Safety, Security and Rescue Robotics (SSRR)</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Eiter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Ianni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ; Schindlauer, R.; and Tompits,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <year>2006</year>
          .
          <article-title>Effective integration of declarative rules with external evaluations for semantic-web reasoning</article-title>
          .
          <source>In The Semantic Web: Research and Applications</source>
          ,
          <volume>273</volume>
          -
          <fpage>287</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Erdem</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Haspalamutgil</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Palaz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Patoglu</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ; and Uras,
          <string-name>
            <surname>T.</surname>
          </string-name>
          <year>2011</year>
          .
          <article-title>Combining high-level causal reasoning with low-level geometric reasoning and motion planning for robotic manipulation</article-title>
          .
          <source>In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA).</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Firby</surname>
            ,
            <given-names>R. J.</given-names>
          </string-name>
          <year>1989</year>
          .
          <article-title>Adaptive Execution in Complex Dynamic Worlds</article-title>
          .
          <source>Ph.D. Dissertation</source>
          , Yale University, USA.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Gaschler</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Petrick</surname>
            ,
            <given-names>R. P. A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Giuliani</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Rickert</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ; and
          <string-name>
            <surname>Knoll</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>KVP: A knowledge of volumes approach to robot task planning</article-title>
          .
          <source>In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems IROS</source>
          ,
          <fpage>202</fpage>
          -
          <lpage>208</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <string-name>
            <surname>Gat</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <year>1998</year>
          .
          <article-title>On three-layer architectures</article-title>
          .
          <source>In Artificial Intelligence and Mobile Robots</source>
          . MIT Press.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <surname>Huckaby</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <year>2014</year>
          .
          <article-title>Knowledge Transfer in Robot Manipulation Tasks</article-title>
          .
          <source>PhD thesis</source>
          , Georgia Institute of Technology, USA.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <surname>Kaelbling</surname>
            ,
            <given-names>L. P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Lozano-Pérez</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Integrated task and motion planning in belief space</article-title>
          .
          <source>International Journal of Robotics Research</source>
          <volume>32</volume>
          (
          <issue>9</issue>
          -10):
          <fpage>1194</fpage>
          -
          <lpage>1227</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <surname>Magnenat</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>Software integration in mobile robotics, a science to scale up machine intelligence</article-title>
          .
          <source>PhD thesis</source>
          , École polytechnique fédérale de Lausanne, Switzerland.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <surname>McDermott</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ; Ghallab,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>Howe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ;
            <surname>Knoblock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ;
            <surname>Ram</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ;
            <surname>Veloso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>Weld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ; and
            <surname>Wilkins</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <year>1998</year>
          . PDDL - The
          <source>Planning Domain Definition Language (Version 1.2)</source>
          .
          <source>Technical Report</source>
          CVC TR-
          <volume>98</volume>
          -003/DCS TR-
          <volume>1165</volume>
          ,
          <article-title>Yale Center for Computational Vision</article-title>
          and Control.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ; Ciocarlie,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>Hsiao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ; and
            <surname>Kemp</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. C.</surname>
          </string-name>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <article-title>Ros commander (rosco): Behavior creation for home robots</article-title>
          .
          <source>In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)</source>
          ,
          <fpage>467</fpage>
          -
          <lpage>474</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <surname>Nilsson</surname>
            ,
            <given-names>N. J.</given-names>
          </string-name>
          <year>1984</year>
          .
          <article-title>Shakey the robot</article-title>
          .
          <source>Technical Report 323</source>
          , AI Center, SRI International.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <string-name>
            <surname>Pedersen</surname>
            ,
            <given-names>M. R.</given-names>
          </string-name>
          ; Nalpantidis,
          <string-name>
            <given-names>L.</given-names>
            ;
            <surname>Andersen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. S.</given-names>
            ;
            <surname>Schou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ;
            <surname>Bøgh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ;
            <surname>Krüger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ; and
            <surname>Madsen</surname>
          </string-name>
          ,
          <string-name>
            <surname>O.</surname>
          </string-name>
          <year>2016</year>
          .
          <article-title>Robot skills for manufacturing: From concept to industrial deployment</article-title>
          .
          <source>Robotics and Computer-Integrated Manufacturing</source>
          <volume>37</volume>
          :
          <fpage>282</fpage>
          -
          <lpage>291</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <string-name>
            <surname>Plaku</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Hager</surname>
            ,
            <given-names>G. D.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>Sampling-based motion planning with symbolic, geometric, and differential constraints</article-title>
          .
          <source>In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)</source>
          ,
          <fpage>5002</fpage>
          -
          <lpage>5008</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <string-name>
            <surname>Rovida</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Krüger</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <year>2015</year>
          .
          <article-title>Design and development of a software architecture for autonomous mobile manipulators in industrial environments</article-title>
          .
          <source>In IEEE International Conference on Industrial Technology (ICIT).</source>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          <string-name>
            <surname>Schlegel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Lotz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Stampfer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ; and VicenteChicote,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <year>2015</year>
          .
          <article-title>Model-Driven Software Systems Engineering in Robotics: Covering the Complete Life-Cycle of a Robot</article-title>
          . it - Information
          <source>Technology</source>
          <volume>57</volume>
          (
          <issue>2</issue>
          ):
          <fpage>85</fpage>
          -
          <lpage>98</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <surname>Stenmark</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Malec</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Knowledge-based industrial robotics</article-title>
          .
          <source>Scandinavian Conference on Artificial Intelligence.</source>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <string-name>
            <surname>Tenorth</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Beetz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2012</year>
          .
          <article-title>Knowledge Processing for Autonomous Robot Control</article-title>
          .
          <source>Proceedings of the AAAI Spring Symposium on Designing Intelligent Robots: Reintegrating AI</source>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <string-name>
            <surname>Tenorth</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Beetz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>KnowRob: A knowledge processing infrastructure for cognition-enabled robots</article-title>
          .
          <source>The International Journal of Robotics Research</source>
          <volume>32</volume>
          (
          <issue>5</issue>
          ):
          <fpage>566</fpage>
          -
          <lpage>590</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <string-name>
            <surname>Vaquero</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Mohamed</surname>
            ,
            <given-names>S. C.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Nejat</surname>
          </string-name>
          , G.; and
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>J. C.</given-names>
          </string-name>
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          <string-name>
            <surname>Vernon</surname>
          </string-name>
          , D.; von Hofsten, C.; and
          <string-name>
            <surname>Fadiga</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>A Roadmap for Cognitive Development in Humanoid Robots</article-title>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          <string-name>
            <surname>Volpe</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ; Nesnas,
          <string-name>
            <surname>I.</surname>
          </string-name>
          ; Estlin,
          <string-name>
            <given-names>T.</given-names>
            ;
            <surname>Mutz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ; Petras, R.; and
            <surname>Das</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <year>2001</year>
          .
          <article-title>The CLARAty architecture for robotic autonomy</article-title>
          .
          <source>In IEEE Aerospace Conference Proceedings.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>