the main task, the secondary one becomes singular.
5 Outside of algorithmic singularities, the two tasks are
said to be compatible and the order
between them is irrelevant.
The projection process can be iterated for other tasks, resulting in a
so-called stack of tasks.
26 In doing so,
the dimension of the successive null
spaces decreases. The process stops
either when all tasks have been processed, or as soon as the dimension of
the null-space vanishes (see Figure 3).
In the latter, we can still select the min-imum-norm vector among those in the
remaining null space.
The null space was first used in
the frame of numerical analysis for
guiding the descent of sequential optimization.
33 It was used in robotics
to perform a positioning task with a
redundant robot while taking care of
the joint limits.
25 A generalization to
any number of tasks was proposed
30 and its recursive expression was proposed in Siciliano38
(see also Baerlocher1 in the context of
Here, we limit the presentation to inverse kinematics, that is, computing the
robot velocities from reference velocity
task constraints. The same approach
can be used in inverse dynamics, to
compute the system torques19 (
typically, joint torques, but also tendon forces
or other actuation parameters) from
homogeneous operational constraints
(typically, reference forces or accelerations). In that case, the Euclidean norm
is irrelevant, and weighted inverses are
generally preferred to enforce minimum energy along the motion.
Stack of tasks, quadratic program-
ming, and inequality constraints. A
stack of tasks can be compared to
quadratic programming: a quadratic
program is an optimization problem
that involves a set of linear constraints
and a quadratic cost (for example, a
linear function to be approximated
in the least-square sense). It is then
similar to a stack with two tasks: the
first (with higher priority) would be
the constraint; the secondary would
be the cost to minimize. However, the
similarity is not total: the constraint in
a quadratic program is supposed to be
admissible (at least one feasible solu-
tion exists), while it is not the case for
the main task. Also, a stack of tasks can
be extended to more than two tasks.
Up to now, we have considered a task
corresponds to equality in the configu-
ration tangent space, to be satisfied at
best in the least-square sense. Consider
a region defined by a set of inequalities:
the robot can move freely inside the
region but should stay inside it; when
the task becomes infeasible, it should
minimize its distance to the region in
the least-square sense. Such inequality
constraints cannot be solved directly
with the method described here.
Historically, the first solution has
been to set a zero velocity in the task
space when the inequality constraint is
satisfied. This is the artificial potential
field approach proposed by Khatib:
the target region is described with a
low or null cost, while the cost increases when approaching the limit of the
region, following the behavior of the
barrier functions used in the interior-point numerical algorithms. The gradient of the function then acts as a virtual
force that pushes the robot inside the
region when approaching the region
boundaries while it has zero or very
little influence inside the region.
For robot control, penalty func-
tions are generally preferred to bar-
rier functions to prevent bad numeri-
cal behavior when the robot is pushed
to the limits. For a single task or when
the inequality task has the lowest pri-
ority, the obtained behavior is always
satisfactory: the robot does not have
to move when the inequality is satis-
fied. However, it is difficult to enforce
a hierarchy using this approach. The
gradient-projection method27 can be
used if the inequality task has a sec-
ondary importance, in particular,
when enforcing the robot constraints
in a very redundant context (for in-
stance, a three-dimensional reaching
task performed by a six-joint robot
arm). When the inequality task has
the priority, the saturation of one
boundary of the task region will corre-
spond to the allocation of one degree
of freedom,b which is allocated to fix
the velocity orthogonal to the bound-
ary. This degree of freedom is thus not
available anymore for any secondary
task. Moreover, when freely moving
inside the region (far from the bound-
b A degree of freedom is a linear combination of
controls in the configuration tangent space.
aries), this degree of freedom can be
used by the secondary tasks. In order
to take advantage of the redundancy
offered inside the region defined by
the inequality constraints, the corre-
sponding degrees of freedom should
be dynamically allocated. If the in-
equality constraint is satisfied, the
degree of freedom is left unallocated
and can be used by a secondary task:
the constraint is said to be inactive.
If the constraint is violated, then the
corresponding degree of freedom is
used to satisfy the constraint at best:
the constraint is said to be active.
The set of all active constraints is
called the active set. Active-set-search
algorithms are iterative resolution
schemes searching over all possible
active constraints. A candidate solution is computed at each iteration that
fits the active constraints. Depending
on the status of the active and inactive
constraints with respect to the candidate solution, the active set is modified and the process is iterated. Active-set search algorithms are classical to
solve inequality-constrained quadratic
programs. The priority order between
multiple coning objectives can be introduced, leading to hierarchical quadratic programs.
Let us illustrate the stack-of-tasks
framework from the worked out example of HRP2 humanoid robot performing two simultaneous reaching
tasks, while respecting equilibrium
constraints. All elementary tasks are
embedded into a single global trajectory. We will see that the hierarchy introduced in quadratic programming
induces a structure in the task vector
space. Doing so, the global trajectory
appears as a composition of elementary movements, each of them characterizing a given task (or subtask).
Reverse engineering can then be used
to identify the “meaning” of the motion, that is, the various tasks the motion is embedding.
Motion as Action Signature
We review here two practical applications of the stack of tasks on the humanoid robot, HRP2.c The first one
shows how to express complex actions
while involving all body segments
and respecting physical constraints.
c A detailed presentation appeared in Hak et al.