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.
![Opposing forces cancel a given external load [Hand holding a baseball subject to external loads]](baseball-opposing-500x311.jpg)
![Tightening forces squeeze the object [Hand squeezing a baseball]](baseball-tightening-500x271.jpg)
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 (se 3*(ℝ) to be exact), because the contact forces are constrained:
- They lie inside contact cones, because of friction laws.
- Their intensity is limited, because actuator power is limited.
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.
![GWS: set of all wrenches that the grasp can generate [Drawing of the grasp wrench space as an irregular potato shape]](gws-240x140.png)
![−GWS: set of all wrenches that the grasp can cancel [Drawing of the admissible disturbance wrench space as the opposite of the grasp wrench space (an irregular potato shape too)]](adws-240x140.png)
![Some disturbances are just too strong, or in the wrong direction of the wrench space [Drawing of a few disturbances as vectors pointing either inside or outside the set of admissible disturbances]](disturbances-250x126.png)
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.
![How to describe the maximal robustness of a grasp without calculating the whole boundary of the admissible disturbance wrench space (step 1) [Drawing of unit wrenches in the set of admissible disturbances]](adws-approx-step-1-240x133.png)
![How to describe the maximal robustness of a grasp without calculating the whole boundary of the admissible disturbance wrench space (step 2) [Drawing of a unit polytope in the set of admissible disturbances]](adws-approx-step-2-240x133.png)
![How to describe the maximal robustness of a grasp without calculating the whole boundary of the admissible disturbance wrench space (step 3) [Drawing of a scaled-by-lambda unit polytope in the set of admissible disturbances]](adws-approx-step-3-240x133.png)
![How to describe the maximal robustness of a grasp without calculating the whole boundary of the admissible disturbance wrench space (step 4) [Drawing of an inscribed polytope in the set of admissible disturbances]](adws-approx-step-4-240x133.png)
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 x cT x
Aeq x = beq
Aneq x ≤ bneq
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:
![How to describe a fraction of the maximal robustness of the grasp [Drawing of a scaled-by-lambda unit polytope in the set of admissible disturbances]](adws-approx-step-3-240x133.png)
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
A′eq f0 = b′eq
A′neq f0 ≤ b′neq
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.