Disturbances

Contrary to industrial robots, humanoid robots are meant to be active in unstructured environments, where unforeseen and unexpected events happen frequently. Therefore, they need robustness in their manipulative abilities: keeping hold of objects in spite of disturbances is necessary.

It is common for human hands to provide this required robustness by squeezing the object more than necessary, in anticipation of the disturbances. Switching from a fingertip grasp to a more enveloping grasp is also possible, but the robustness brought by this change of grasp configuration comes at the expense of dexterity. So squeezing the object in a fingertip grasp seems a good way of keeping hold of it despite external disturbances, while manipulating it at the same time.

When trying to replicate this behavior in a robot hand, it is worth noting that we are not so much interested in the contact forces that would cancel such and such disturbance, but rather in those that the hand could apply in the absence of any disturbance, as a pre-strain. The former can be called opposing forces and the latter tightening forces, in accordance with their effects.

[Hand holding a baseball subject to external loads]
Opposing forces. They cancel the external load in red. Finding them for a given external load is called the force optimization problem. Methods to solve this problem have been proposed since the late 1980s.
[Hand squeezing a baseball]
Tightening forces. Their resultant is zero, but they can be added to other forces in order to move the object, in addition to squeezing it. The grasp on the right is more robust than the grasp on the left.

Having a robot hand squeeze an object to ensure its restraint leads to the question of quantifying the required squeezing. In other words: how much tightening is needed for a certain robustness? And how do we quantify the robustness of a grasp in the first place?

To answer these questions, it is useful to know about the grasp wrench space, the set of all possible resultant wrenches produced by the fingers on the object (a wrench is a force and a moment). Indeed, a grasp can only generate certain wrenches, not the whole wrench space ℝ6 (se3*(ℝ) to be exact), because the contact forces are constrained:

In other words, the contact forces lie inside bounded contact cones. The grasp wrench space is then the sum of these bounded contact cones. It is a convex subset of the wrench space, containing the zero wrench, and defining how good a grasp is: the bigger the space, the more wrenches the grasp is able to produce, so the better the grasp.

Since a grasp can only generate certain wrenches, it can also withstand only certain wrenches: those for which it can generate the opposite wrench. That makes it possible to define the space of admissible external wrenches as the opposite of the grasp wrench space. The external wrenches that aren't in this space can't be resisted by the grasp, whatever the contact forces. That is to say: if applied to the object, they can't be canceled by any contact forces, so they produce a non-zero resultant wrench, and an unwanted and uncontrolled motion of the object ensues: at best, some sliding, at worst, contacts can break and the object can escape the grip.

[Drawing of the grasp wrench space as an irregular potato shape]
Grasp wrench space
[Drawing of the admissible disturbance wrench space as the opposite of the grasp wrench space (an irregular potato shape too)]
Admissible disturbance wrench space
Warning: these drawings are two-dimensional depictions of six-dimensional spaces.
[Drawing of a few disturbances as vectors pointing either inside or outside the set of admissible disturbances]
Various disturbances: three are admissible, two cannot be withstood.

The boundary of the admissible disturbance wrench space is particularly important to the analysis of the grasp. Indeed, it is composed of the largest disturbances that the grasp can withstand, in every direction of the wrench space. Therefore, it defines the maximal robustness of the grasp.

Characterizing this maximal robustness means therefore describing the boundary of the admissible disturbance wrench space, something that can be difficult to do exactly. It is a lot less computationaly expensive to look for an approximation of it. We propose a method where the admissible disturbance wrench space is approximated by an inscribed polytope (see the drawings below). The approximation is coarse, but the method is fast: we get a quick quantification of the maximal robustness.

[Drawing of unit wrenches in the set of admissible disturbances]
We choose unit wrenches in the directions of the wrench space for which we want to investigate the grasp's maximal robustness. Let Fdist 1, …, Fdist p denote these wrenches (dist stands for disturbance).
[Drawing of a unit polytope in the set of admissible disturbances]
The chosen disturbances are the vertices of a unit polytope in the wrench space.
[Drawing of a scaled-by-lambda unit polytope in the set of admissible disturbances]
We can scale this polytope by any λ ≥ 0. The vertices of the resulting polytope are λ Fdist 1, …, λ Fdist p.
[Drawing of an inscribed polytope in the set of admissible disturbances]
We make the polytope grow until it touches the boundary of the admissible disturbance wrench space. The resulting polytope is an approximation of the admissible disturbance wrench space. Its vertices are λmax Fdist 1, …, λmax Fdist p. The scale factor λmax between the unit polytope and the maximal polytope is a quantitative measure of the maximal robustness.

The difficult part is to be able to detect when the polytope touches the boundary of the admissible disturbance wrench space. It happens when one of the disturbances at the vertices of the polytope can't be canceled by the grasp any more. In other words, λmax is the largest λ ≥ 0 such that each disturbance λ Fdist 1, …, λ Fdist p is canceled by contact forces. If we let n denote the number of contacts, f1, …, fn denote contact forces, f denote the column vector of these contact forces, C1, …, Cn denote the bounded contact cones, and G denote the grasp matrix, we have:

λmax = max { λ ≥ 0 | ∀ j ∈ {1, …, p}, ∃ (fj1, …, fjn) ∈ C1 × … × Cn | G fj = − λ Fdist j }

G fj is the resultant of the contact forces (see the section about control) so the equation G fj = − λ Fdist j means that the contact forces equilibrate the disturbance λ Fdist j. As a matter of fact, the contact forces must also counteract gravity and produce the desired motion of the object, so two terms are missing from this equation: the weight of the object and its acceleration. We leave them out of this presentation, for the sake of simplicity.

It follows from the definition of λmax that a possible method of computing it is trying to maximize λ ≥ 0 with respect to the unknowns (f11, …, f1n), …, (fp1, …, fpn), λ and subject to the constraints:

(f11, …, f1n) ∈ C1 × … × Cn G f1 = − λ Fdist 1
and
(fp1, …, fpn) ∈ C1 × … × Cn G fp = − λ Fdist p

That is to say, we must solve the following constrained optimization problem:

max f1,…,fp,λ (λ)
G fj = − λ Fdist j  ∀ j ∈ {1, …, p}
(fj1, …, fjn) ∈ C1 × … × Cn  ∀ j ∈ {1, …, p}
λ ≥ 0

Solving this problem provides us with λmax, the measure of the maximal robustness that we were looking for, and contact forces f1sol, …, fpsol canceling each disturbance λmax Fdist 1, …, λmax Fdist p, that is to say, opposing forces to each of these disturbances.

Up to this point, the method we have presented is not different from a method proposed in the early 2000s to measure the quality of the grasp. In grasp analysis, a quality measure is a quantitative index making the comparison of grasps possible: for instance, a grasp can be considered better than an other if its contact points are better distributed on the surface of the object, or if its grasp matrix has a larger condition number, or if its grasp wrench space is bigger. Numerous grasps quality measures have been proposed since the early 1990s, and the λmax defined above as the scale factor between two particular polytopes is one of them.

The originality of the method we propose lies in looking for tightening forces rather than (or more precisely together with) opposing forces to each disturbance λmax Fdist 1, …, λmax Fdist p. To do so, we look for the contact forces f1, …, fp, in the optimization problem above, as sums of tightening forces f0 and force variations 𝛿f1, …, 𝛿fp:

f1 = f0 + 𝛿f1

fp = f0 + 𝛿fp

Or, more explicitly:

(f11, …, f1n) = (f01, …, f0n) + (𝛿f11, …, 𝛿f1n)

(fp1, …, fpn) = (f01, …, f0n) + (𝛿fp1, …, 𝛿fpn)

The tightening forces f0 are the same for all disturbances, contrary to the opposing forces f1, …, fp. They are applied on the object in the absence of any disturbance. For each disturbance j ∈ {1, …, p}, force variations 𝛿fj turn the common tightening forces f0 into adequate opposing forces fj.

The tightening forces must be, of course, in the bounded contact cones: (f01, …, f0n)C1 × … × Cn. Unlike the opposing forces, they don't have to equilibrate a disturbance, so their resultant is simply zero: G f0 = 0 (actually, they still have to counteract gravity and produce the desired motion of the object, but as we said before, we leave the weight of the object and its acceleration out of this presentation, for the sake of simplicity).

Following the decomposition of the contact forces into tightening forces and force variations, the constrained optimization problem formulated above becomes:

max f0,𝛿f1,…,𝛿fp,λ (λ)
G f0 = 0
(f01, …, f0n)C1 × … × Cn
G (f0 + 𝛿fj) = − λ Fdist j  ∀ j ∈ {1, …, p}
(f01, …, f0n) + (𝛿fj1, …, 𝛿fjn) ∈ C1 × … × Cn  ∀ j ∈ {1, …, p}
λ ≥ 0

Solving this problem provides us with the measure of the maximal robustness λmax, tightening forces f0sol, and opposing forces f0sol + 𝛿f1sol, …, f0sol + 𝛿fpsol to the disturbances λmax Fdist 1, …, λmax Fdist p (respectively).

Although it is possible to solve this constrained optimization problem directly, using generic gradient flow methods for instance, a few simplifications are possible that make it not only easier to solve, but also more meaningful physically. In particular, the inequality constraints relative to the bounded contact cones can be linearized, and the force variations between the tightening forces and the opposing forces can be pre-computed (as a function of the optimization variable λ) by assuming that they are minimal. This assumption is important because it makes the tightening forces a sort of middle value between the various opposing forces.

The optimization problem resulting from these simplifications is a linear programming problem (LP) whose unknowns are f0 and λ:

max xcT x
Aeq x = beq
Aneq xbneq

x = 

f0
λ


c = 

03n
1


λ = cT x

Solving this problem yields the measure of the maximal robustness λmax, and tightening forces f0sol associated with this maximal robustness since they are separated from opposing forces to the disturbances λmax Fdist p by minimal variations 𝛿fjsol.

However, sometimes, it may not be necessary or even desirable to hold the object with this tightening f0sol designed for maximal robustness. A lighter tightening of the object may be enough. To find it, we can consider a smaller scaling of the wrench disturbance polytope:

[Drawing of a scaled-by-lambda unit polytope in the set of admissible disturbances]
The scaled-by-λ polytope, for λ ∈ [0, λmax], describes a lesser robustness than the scaled-by-λmax polytope. Its vertices are λ Fdist 1, …, λ Fdist p. They are known and admissible.

The problem is now to find tightening forces and minimal force variations between them and the opposing forces to the disturbances λ Fdist 1, …, λ Fdist p. It is similar to the problem we have solved for the maximal robustness, except that the focus isn't on λ, which isn't an unknown variable anymore, so a different cost function must be used. We can settle for the minimization of the tightening forces for instance. Eventually, the problem of finding tightening forces associated to the robustness λ can be formulated as a quadratic programming problem (QP):

min f0 ½ f0T f0
Aeq f0 = beq
Aneq f0bneq

The final step of the approach of grasp robustness that we have presented here is to integrate the computed tightening forces into our optimization-based control scheme of multifingered dextrous manipulation (see the section about control), as desired values for the contact forces. This achieves robust manipulation.