MIT 6.4210 — Lecture 7

Statics and Grasping

§ Forces: Spatial Force

In this lecture, we'll answer the following question:

Question. Given an object I want to grasp, where do I put my fingers, and will the object stay in my hand?

This question involves not just geometry, but the relevant forces being applied, too.

Definition. We can represent spatial force via a vector in R6\mathbb{R}^6 given by:

FCBp=[τCBpfCBp]  where τCBp∈R3 is torque, and fCBp∈R3 is translational force.F^{B_p}_C = \begin{bmatrix} \tau_C^{B_p} \\ f_C^{B_p} \end{bmatrix} ~ \text{ where } \tau^{B_p}_C \in \mathbb{R}^3 \text{ is torque, and } f^{B_p}_C \in \mathbb{R}^3 \text{ is translational force.}

where BpB_p is the point on the body BB where the force is applied. (As with AVFB{}^AV^B_F, angular stuff goes above translational stuff.)

Theorem. (Spatial Force Properties) We can re-express spatial force in different frames like so:

FBBp=BRCFCBp:=[BRC00BRC]FCBp.F^{B_p}_B = {}^BR^C F^{B_p}_C := \begin{bmatrix} {}^BR^C & 0 \\ 0 & {}^BR^C \end{bmatrix} F^{B_p}_C.

Furthermore, if a force ii acts on body BB at position BciB_{c_i}, then we get:

fi,BB=fi,BBci    and    τi,BB=τi,BBci+BpBci×fi,BBci.f^B_{i, B} = f^{B_{c_i}}_{i, B} ~~~ \text{ and } ~~~ \tau^B_{i, B} = \tau^{B_{c_i}}_{i, B} + {}^Bp^{B_{c_i}} \times f^{B_{c_i}}_{i, B}.

There's nothing new or complicated here beyond AP Physics I, say.

Remark. It is sometimes convenient to express the cross-product d×fd \times f as a matrix multiplication S(d)fS(d) f, given by:

d×f=[0−dzdydz0−dx−dydx0]⏟S(d)f.d \times f = \underbrace{\begin{bmatrix} 0 & -d_z & d_y \\ d_z & 0 & -d_x \\ -d_y & d_x & 0 \end{bmatrix}}_{S(d)} f.

It then follows that a body is in static equilibrium if the sum of the spatial forces acted upon it is zero.

Remark. The reason why we formalize everything using spatial forces is it naturally gets us to express everything—particularly torques—in the same coordinate frame BB.

For example, we can model two hands grasping on opposite faces of a box like so.

To achieve static equilibrium, note that both the translational forces and torques about BB must sum to zero.

Remark. It suffices to only think about statics (i.e., no F=maF = ma) because at manipulation speeds, accelerations aa are far below gg.

§ Modeling Contacts

We only model contacts at a point on a plane (as opposed to, say, a point along an edge).

Remark. If our contact is not a point—for example, the contact between a box and the table it lies on—then we can approximate that contact as the sum of point contacts—for example, the sum of contacts at the four vertices of the bottom face of the box.

There are three kinds of point-on-plane contacts.

There are some obvious limitations to these models—friction is more complicated than just “μ\mu”, and the patch of contact is not just a single point, and so on…

§ Grasping: Is It Possible?

First, some notation that we use for mapping multiple applied forces with different contact frames into the same body frame.

Definition. Say the orientation of the ithi^{\text{th}} contact frame is given by Q(i):=BRCi∈R3×3Q^{(i)} := {}^BR^{C_i} \in \mathbb{R}^{3 \times 3}, meaning the ithi^{\text{th}} contact frame applies a force fi∈R3f_i \in \mathbb{R}^3 on body BB at position CiC_i. Then the force in the frame of BB can be expressed as:

F=∑i=1kGifi=G[f1⋮fk]      where      Gi:=[S(i)Q(i)Q(i)]∈R6×3  and  G:=[G1⋯Gk]  is the grasp map.F = \sum_{i = 1}^k G_i f_i = G \begin{bmatrix} f_1 \\ \vdots \\ f_k \end{bmatrix} ~~~~~ \text{ where } ~~~~~ G_i := \begin{bmatrix} S^{(i)}Q^{(i)} \\ Q^{(i)} \end{bmatrix} \in \mathbb{R}^{6 \times 3} ~ \text{ and } ~ G := \begin{bmatrix} G_1 & \cdots & G_k \end{bmatrix} ~ \text{ is the } \textbf{grasp map.}

The idea is that each matrix GiG_i is the appropriate map from forces fif_i expressed in the contact frame to forces expressed in the body's frame. Here S(i):=S(BpCi)∈R3×3S^{(i)} := S({}^Bp^{C_i}) \in \mathbb{R}^{3 \times 3} is the “cross-product matrix” mentioned in a remark earlier.

The goal of grasping is to answer the following question:

Question. Given external forces FextF^{\mathrm{ext}}, is there an admissible grasping force ff such that Gf+Fext=0Gf + F^{\mathrm{ext}} = 0 holds?

(A force ff is admissible if it lives within the friction cone.)

Remark. The grasp map can have a nontrivial null space; two grasping methods can both yield equilibrium.

In the diagram above, for example, the hard squeeze is just the light squeeze plus a “left-right” squeeze f0f_0 for which Gf0=0Gf_0 = 0.

Definition. The grasp wrench space is the set:

W:={F∣F=∑i=1kGifi for some fi∈Ki},\mathcal{W} := \left\{ F \mid F = \sum_{i = 1}^k G_i f_i \text{ for some } f_i \in \mathcal{K}_i \right\},

where Ki\mathcal{K}_i is the space of admissible grasping forces. (Note that this is the Minkowski sum of the sets GiKiG_i \mathcal{K}_i.)

To answer the question from before for every FextF^{\mathrm{ext}}, it suffices to simply compute W\mathcal{W} and determine whether 0∈W0 \in \mathcal{W} (not on its boundary!). Since each Ki\mathcal{K}_i is convex, we can estimate W\mathcal{W} easily by …

§ Closure

Definition. Preferably, we want grasps that can hold bodies in place. More specifically, a grasp can have…

Check with yourself that the following make sense; dimensionality arguments should suffice.

But there's more to a grasp than whether it has force closure or not.

Heuristic. Given a grasp with force closure and wrench space W\mathcal{W}, consider:

We prefer grasps with larger ϵ\epsilon, as the strength of the contact force required trends as O(1/ϵ)O(1/\epsilon). Similarly, we prefer grasps with larger VV. By this metric, we can justify why, among the two below grasps with force closure, the grasp on the right is preferred.

§ Heuristic Grasping

For general bodies, what are some easy ways we can design grasps that are guaranteed to have force closure?

Definition. Given a grasp with two contact forces, we say the grasp is antipodal if the line connecting the contact points lies within both contact forces' friction cones.

Theorem. (Antipodal) All antipodal grasps in R2\mathbb{R}^2 and all antipodal grasps in R3\mathbb{R}^3 with soft finger contacts have force closure.

This inspires the following heuristic for generating grasps with force closure.

  1. Using simple robotic vision, determine a point cloud of the surface of the object.

  2. Use PCA to determine normal vectors perpendicular to the surface at each point in the point cloud.

  3. Pick a point PP at random, and follow its normal toward the inside of the body until it meets a point P′P' on the surface.

  4. Check if a grasp at PP and P′P' is valid (i.e., is antipodal and does not have intersection between the body and the gripper).

This works pretty well in practice, too!

Remark. In practice, you probably want to do more than just randomly pick among antipodal grasps; more heuristics are used.

§ Learned Grasping

You can also train a CNN that proposes grasps and learns to score whether they are good (e.g., antipodal). More generally, there are many families of models for scoring grasps. We won't get into the technical details.