Skill-Based Bimanual Manipulation Planning: Wojciech Szynkiewicz
Skill-Based Bimanual Manipulation Planning: Wojciech Szynkiewicz
Skill-Based Bimanual Manipulation Planning: Wojciech Szynkiewicz
Skill-Based Bimanual
Manipulation Planning
Wojciech Szynkiewicz
Institute of Control and Computation Engineering, Warsaw University of Technology, Warsaw, Poland
1. Introduction
Robots employed in human-centered environments have to
be equipped with manipulative, perceptive and communicative capabilities necessary for real-time interaction with
the environment and humans. Up to now, robot systems
have been only able to deal with the high complexity and
the wide variability of everyday surroundings to a limited
extent. In this paper we are focused on planning dualarm/hand manipulation tasks for service robots working in
such environments.
In our everyday lives we perform many operations in which
our two hands cooperate to manipulate diverse objects. The
goal of our research is to understand the nature of twohanded cooperative manipulation and enhancing the manipulative skills of the dual-arm robot. Two cooperative
hands, if properly utilized, are capable of grasping and manipulating a much larger class of objects, including long,
exible, irregularly shaped, or complex objects (e.g., with
internal degrees of freedom).
Object manipulation tasks typically involve a series of
action stages in which objects are recognized, grasped,
moved, brought into contact with other objects and released.
These stages are usually bound by mechanical events that
are subgoals of the task. These events involve the making
and breaking of contact between either the hands and the
grasped object or the object held in hand and another object or surface. Importantly, these contact events usually
produce discrete and distinct sensory events. To simplify
a solution of the overall problem, we usually tend to divide
the task into a sequence of clearly separated subtasks, each
of which accomplishes a specic subgoal. In this case,
a task planning focuses on deciding what operations will
be needed to execute a particular manipulation task, and
54
2. Related Work
Manipulation planning is an extension to the classical robot
motion planning problem. The robot is able to interact with
its environment by manipulating movable objects, while it
has to avoid self-collisions or collisions with obstacles. Traditionally, manipulation planning concerns the automatic
generation of the sequence of robot motions allowing to
manipulate movable objects among obstacles. Existing research in manipulation planning has focused mainly on
the geometric aspects of the task, while greatly simplifying the issues of grasping, stability, friction, and uncertainty [4], [11]. Symbolic planning algorithms have typically assumed perfect models of both the environment and
the robot, not only at an abstract level but at every level
of control. This is a quite reasonable assumption in wellstructured and fully controlled environments. However, in
everyday environments this is not often the case, which
makes that most of the proposed theoretical solutions are
not directly applicable. The real world does not behave as
expected, and in fact it does not behave predictably.
Most of the research in manipulation planning deals with
the creation of the manipulation graph and extraction of
a manipulation path from this graph [12][15]. The concept of a manipulation graph was introduced by Alami et
al. [12] for the case of one robot and several movable objects manipulated with discrete grasps and placements. In
this case, the nodes of the graph represent discrete congurations and the edges correspond to robot motions moving
the grasped object (transfer path), or leaving it at rest to get
to another grasp position (transit path). A solution to the
manipulation planning problem is now given by a manipulation path in this graph. This path is solved using PRM
(Probabilistic Roadmap Method) planners [13], [14].
In most of the existing algorithms it is assumed that a nite set of stable placements and of possible grasps of the
movable object are given in the denition of the problem
(e.g., [12], [13]). Consequently, a part of the manipulation task decomposition is thus done by the user since the
initial knowledge provided with these nite sets has to contain the grasps, and the intermediate placements required
to solve the problem. In [14] the authors proposed a general manipulation planning approach capable of addressing
continuous sets for modeling, both the possible grasps and
the stable placements of the movable object. The nodes of
the manipulation graph (i.e., the places where the connections between the feasible transit and transfer paths have
to be searched) correspond to a set of sub-manifolds of
the composite conguration space, as opposed to discrete
congurations. Cambon et al. [15] proposed a specialized integration of a symbolic task planning and geometric
motion, and manipulation planning. They extended classical action planning formalism based on a STRIPS-like
description where manipulation planning problems in conguration space are introduced.
One of the most intuitive ways to acquire new task knowledge is to learn it from the human user via demonstration
and interaction. This approach to task learning is known
as Programming by Demonstration (PbD) [2]. It is one of
the most often used programming paradigms of two-arm
manipulation for humanoid robots [7]. PbD systems generally try to decompose the observed task execution of the
human demonstrator into a sequence of tasks that are performable by the robot. Typically, tasks are recorded from
human demonstrations, segmented, interpreted and stored
using some data representation. Several programming systems and approaches based on human demonstrations have
been proposed during the last years, e.g., [2], [3].
In [16] an architecture which uses primitive skills that combine to form a skill, which in turn form a complete task
is presented. Each primitive skill is selected by heuristic
selection out of many possible primitive skills, based on
the sensor signals. A neural network is used to detect the
change between the skills. Each primitive skill is executed
by a separate controller.
3. Manipulation Planning
Manipulation planning is a very challenging problem in
robotics research as it consists of a number of subproblems
that themselves are still open issues and subject to ongoing
research. Typical manipulation tasks accomplish relative
motions and/or dynamic interactions between various objects. Typically, manipulation planning involves motion and
grasp planning. The most eective robot motion planning
strategies today are built upon sampling-based techniques,
including the PRM [13] and Rapidly-exploring Randomized Trees [17], and their variants. Robot motion planning
can also be viewed as an optimization problem that aims
to minimize a given objective function [5], [11]. To solve
such a problem in ecient way appropriate tools have to be
used, e.g., [18]. Grasp planning is also an area of intensive
research [19].
Several basic components of manipulation task can be distinguished (Fig. 1).
Using intended subgoals as a criterion, three dierent
classes of manipulation tasks can be distinguished [20].
1. Transport operations: the simplest class of robot manipulation. This kind of task can be easily distinguishably by the change of the external state (pose)
of the manipulated object. Various types of transport
55
Wojciech Szynkiewicz
To model MS we use a hybrid automaton. A hybrid automaton is a dynamical system that describes the evolution
in time of the valuations of a set of discrete and continuous
variables. A hybrid automaton H [21], [22] is a collection
H = (Q, X, f , Init, D, E, G, R), where
Q is a set of discrete states;
X = Rn is a nite set of continuous states;
f (, ) : Q X Rn is a vector eld;
Init Q X is a set of initial states;
Dom() : Q 2X is a domain;
E Q Q is a set of edges (events);
G() : E 2X is a guard condition;
R(, ) : E X 2X is a reset map (relation).
Each state of the automaton has its own low-level controllers and transitions to other states. The proper selection
of the set of manipulation skills is a critical step in our
approach. The following manipulation skills have been dened to solve the Rubiks cube problem: Localize, Reach,
Turn, Grasp, Release.
Localize robotic manipulation of an object requires that
this object must be detected and located rst. If vision is
used as the robots primary source of information about
the environment, the object of interest must be identied
in the image and subsequently localized in 3D space. Generally, in cluttered environments, detecting a certain object is not an easy problem. Recognition and localization of a known object in the image is based on matching its certain previously dened features such as: shapes,
sizes, colors, texture, etc. The choice of features and the
matching algorithm is arbitrary and it depends primarily
on the specication of the object and it will not be discussed here. This task becomes much more dicult if we
want not only to localize the object in the scene (2D localization), but also to nd its 3D pose (6D localization) in
relation to the camera frame or to the world frame. Typical
method used for 6D object localization is to calculate the
pose based on the correspondence between 3D model and
image coordinates from camera image. Most of the works
on grasping and manipulation planning have assumed the
existence of a database with 3D models of objects encountered in the robot surroundings and a 3D model of the robot
itself [2], [9].
Reach for reaching an object the Reach skill uses motion
planning to compute a collision-free trajectory for moving
the robot arm from its current pose to one that allows grasping of a specied object with a hand. If both arms are free,
then Reach can employ each of the arm to move to the
vicinity of the object. If one arm is currently grasping an
object, Reach can be used for the other arm to prepare for
grasping. Reach skill requires closed-loop execution to permit interaction with the environment. We utilize a position
4. An Example of Two-Handed
Manipulation
As an example of the task for two-handed manipulation we
chose the manipulation of Rubiks cube puzzle. We used
a Rubiks cube as an object to be identied, localized and
manipulated. Rubiks cube combinatorial puzzle was invented by Erno Rubik of Hungary in 1974. The standard
3 3 3 version of the Rubiks cube consists of 27 subcubes, or cubies, with dierent colored stickers on each of
the exposed sides of the sub-cubes. In its goal state each of
the six faces has its own color. The total state space for solving a scrambled Rubiks cube is sized at (381 8!) (2121
12!)/2 = 43, 252, 003, 274, 489, 856, 000 4.3 1019. Obviously, this number of states is prohibitively large for any
sort of a brute force search technique, which is why specialized algorithms are needed to solve the Rubiks cube
puzzle. However, the presentation of the algorithms for
recognizing and solving Rubiks cube are not discussed in
this paper, some information about these algorithms can be
found in [9].
In this particular case we are interested in a coordinated manipulation in which both hands are manipulating the same
object, thus creating a closed kinematic chain [5]. This
task was chosen as it closely resembles the tasks that service robots have to execute. The process of manipulation
of the Rubiks cube involves all aspects of visual serving
to the vicinity of the cube, alignment of robot arms with
the cube, grasping it with the grippers, and nally rotating
the adequate face of the cube. The last three actions are
repeated as many times as the number of moves is required
to solve the scrambled cube. Here, we assume that from the
57
Wojciech Szynkiewicz
R(uu, ) = Rot(uu, ),
(1)
where u = x o , y o or z o , and = 2 , , 2 or .
The desired grasp congurations w.r.t. coordinate frame Fo
are described by the following matrices:
o T
f1
o
f2 T
f2 T
or equivalently
= b1 T be11 T (qq1 ) eo1 T of2 T,
(4)
where bi T, i = 1, 2 is the homogenous transformation matrix from the world frame Fw to the robot base coordinate
frame Fbi . Matrix beii T (qqi ), i = 1, 2 represents direct kinematics of the robot arm i, and q i is the vector of joint
coordinates of the arm i.
In this case grasp stability conditions are of a geometric
nature and grasp synthesis is reduced to the choice of four
contact regions on the cube (two for each gripper) from the
given set of contacts and computing desired poses of both
grippers, i.e., e1 T and e2 T which guarantee rm grasps. In
fact, grasp synthesis comes down to the proper positioning of the grippers. Therefore grasp congurations can be
described in the operational space as well as in the joint
space.
f1 T
Fig. 3.
system.
f2 T
When both grippers rmly hold the cube the closed kinematic chain is established. Now the motion planning problem is complicated by the need to maintain the closed loop
structure, described by the loop closure constraint.
b1
q1 ) eo1 T ( ) bb1 T be22 T (qq2 ) eo2 T
e1 T (q
2
=0
(5)
However, in our case, the motion of the closed chain linkage can be described in the Fo coordinate frame as a single rotation about its axes (i.e., the elementary turn of
the cubes face). For the frame Fo chosen as it is shown
in Fig. 3 these moves are rotations around its axes described in (1).
These moves can be easily transformed to the motions of
the grippers. However, due to kinematic calibration errors,
the two robot arms cannot be position controlled while executing the turns. This would cause excessive build-up of
force in a rigid closed kinematic chain due to small misalignments. Therefore at this stage the motions have to be
executed in position-force control mode.
4.2. Implementation of the Two-Handed Manipulation in
the MRROC++ Framework
The control system of the two-handed system equipped with
special end-eectors, each composed of an electric gripper and diverse sensors, was implemented by using the
MRROC++ 1 robot programming framework.
MRROC++ is a robot programming framework, thus it provides a library of software modules (i.e., classes, objects,
processes, threads and procedures) and design patterns according to which any multi-robot system controller can be
constructed. This set of ready made modules can be extended by the user by coding extra modules in C++ [9],
[23], [25]. MRROC++ based controllers have a hierarchic
structure composed of processes (Fig. 4) (some of them
consisting of threads) supervised by the QNX Neutrino real
time operating system. The underlying software is written
in C++.
From the point of view of the executed task MP is the
coordinator of all eectors present in the system. It is responsible for trajectory generation in multi-eector systems
where the eectors cooperate tightly as is the case in
the presented system. The manipulation planning system
contained in the MP transforms the solution obtained from
Rubiks cube solver into a proper sequence of manipulation skills. In the MRROC++ framework these skills are implemented as motion generators, which are used by the
Move instructions. Therefore the MP is responsible both
for producing the plan of the motions of the faces of the
cube and subsequently the trajectory generation for both
manipulators. This trajectory can be treated as a crude
reference trajectory for both arms. At a later stage this
trajectory is modied by taking into account the force
readings.
1 The name is derived from the fact that this programming framework
is the basis for the design of Multi-Robot Research-Oriented Controllers
and that the underlaying software is coded in C++.
59
Wojciech Szynkiewicz
Fig. 6. Measured force and torque components while manipulating the Rubiks cube.
Each jaw was instrumented with tactile sensors which detect the presence of contacts with the grasped object. Moreover, each hand was equipped with a wrist-mounted sixaxis force-torque sensor, and an eye-in-hand miniature CCD
color camera [9]. Additionally, a global vision system with
xed-mount color camera and Digital Video Processor for
fast image acquisition and realtime processing of the incoming data was used.
During the task execution either pure position control or
positionforce control is used, depending on the current
task execution stage. Typically, these execution stages are
position controlled in which there in no simultaneous con60
5. Conclusion
In this paper, a framework for the description of twoarm/hand manipulation task based on the denition of a priori specied manipulation skills was proposed. The whole
task was decomposed into a set of subtask each of which
is resolved by a set of manipulation skills. To manage
the task or environment variations the skills were parameterized. The parameters are generally related to the task
variations, such as: type of a motion, grasping rule, an
initial and nal points, etc. Rubiks cube solving problem
was used as a 3D manipulation task using two-arm robot
system with diverse sensors such as vision, force/torque,
tactile sensors. The manipulation task was implemented in
the MRROC++ framework.
References
[20] M. Pardowitz, S. Knoop, R. Dillmann, and R. D. Zoellner, Incremental learning of tasks from user demonstrations, past experiences,
and vocal comments, IEEE Trans. Sys. Man, Cybernet., Part B,
vol. 37, no. 2, pp. 418432, 2007.
[3] A. G. Billard, S. Calinon, and F. Guenter, Discriminative and adaptive imitation in uni-manual and bi-manual tasks, Robot. Autonom.
Sys., vol. 54, no. 5, pp. 370384, 2006.
[23] W. Szynkiewicz, C. Zieliski, W. Czajewski, and T. Winiarski, Control Architecture for Sensor-Based Two-Handed Manipulation, in
CISM Courses and Lectures 16th CISM-IFToMM Symposium on
Robot Design, Dynamics and Control, RoManSy06, T. Zieliska and
C. Zieliski, Eds., no. 487, pp. 237244. Wien, New York: Springer,
2006.
61
Wojciech Szynkiewicz
62