Grasping

There are many reasons to grasp an object. We may want to

  • Immobilize an object, so that some operation can be applied to it.
  • Grasp the object firmly so that it can be moved into some other position.
  • Remove sensing error during the grasping operation.
  • Grasp the object loosely (so that we do not have to worry tactile feedback) and drag it to a new configuration.

The obvious one is to immobilize the object, so that some operation can be applied to it.

Grasping vs. Fixturing

Form Closure, Force Closure, and Caging

We will focus in this lecture on form closure.

Reuleaux

Remember Reauleaux's method?

reuleaux.png

Reuleaux tests if there are any possible free motions (rotations about rotation centers): motions that do not cause a collision. If there are no motions possible, then the object is in form closure. There are two problems with the method.

  • It's hard to implement as an algorithm, since we will have to graphically intersect polygonal regions, and numerical errors and instability make the problem worse.
  • It doesn't work in three dimensions. Displacements in three dimensions are all screws, by Chasle's theorem.

Unilateral differential constraints

To find something more suitable for implementation, we will use differential kinematics. First, Reauleax's method is a first-order method — we only consider local properties of the surface, and specifically, the normal to the surface at each finger or grasp point.

grasp_pcc.png

The first observation is that if a point on the surface next to a finger has a velocity with a component towards a finger, then there will be a collision. If we let n_i be the outward pointing normal of the surface at finger i, then the velocity \dot x_i must make a negative dot product with the normal:

(1)
n_i^T \dot x_i \le 0.

We'd like to combine the effect of different fingers, and ask how this affects the motion of the object. Let the configuration of the object be q=(x, y, \theta), the position and orientation of some frame attached to the object with respect to the world frame. There is a Jacobian that relates the motion of the body and the motion of the points on the object boundary "near" the finger: \dot x_i = J_i\dot q. The values of the elements of the Jacobian depend on the distance of the finger from the center of the body frame, and the angle made with the horizontal. For example, for finger one, we have

(2)
\left(\begin{matrix} x \ y \end{matrix} \right) = \left(\begin{matrix} d_1 \cos (\theta + \alpha) \ d_1 \sin (\theta + \alpha) \end{matrix} \right)

The columns of the Jacobian are formed by taking the partials with respect to x y, and \theta:

(3)
J_1 = \left(\begin{matrix} 1 & 0 & - d_1 \sin (\theta + \alpha) \ 0 & 1 & d_1 \cos (\theta + \alpha) \end{matrix} \right)

Notice that since we chose the original orientation of the frame, at the current instant, \theta = 0, so

(4)
J_1 = \left(\begin{matrix} 1 & 0 & - d_1 \sin (\alpha) \ 0 & 1 & d_1 \cos (\alpha) \end{matrix} \right)

where \alpha_1 and d_1 are constants that depend on the geometry of the part and the finger placement.

The Jacobian allows us to determine how the finger constrains the motion of the body frame. Substituting the expression for \dot x_i into the normal constraint equation,

(5)
n_i^T J_i \dot q \le 0.

We have one such matrix equation for each finger. Stack all the n_i's and J_i's for the fingers into matrices, so that we have:

(6)
N J \dot q \le 0.

Polyhedral convex cones

If there exists a choice for \dot q that does not cause the object to collide with a finger, the fingers do not immobilize the object. We want to find out when the system of inequalities

(7)
N J \dot q \le 0.

does not have a solution.

It turns out that N and J (both constant matrices) restrict \dot q to lie in a polyhedral region in SE^2. In fact, it's not just a polyhedron, but a shape called a polyhedral convex cone. If the polyhedral convex cone is empty (has volume zero), then the object cannot move, and is immobilized by the fingers.

Face-normal representations

What do solutions to these types of vector inequalities look like? For simplicity, call the matrix B and the vector x, so we have

(8)
B x \le 0,

where 0 is a vector of zeros.

Let the first row of B be b_1. To compute the first element of the matrix multiplication, we compute the dot product b_1 \cdot x. We have the constraint b_1 \cdot x < 0. If x makes a negative dot product with b_1, that means x must fall in a half space with boundary that is a plane with the normal b_1. The bounding plane cuts through the origin.

Each row adds an additional half-space constraint; x must lie in the intersection of these half spaces. An intersection of half spaces is polyhedral and convex. Since the half spaces all contain the origin, the region is also either radially unbounded or empty: this is the definition of a mathematical cone.

Edge representations

Linear programming

Mishra, Schwartz, and Sharir

Testing grasps vs. Constructing grasps

Steinitz's theorem

The GRASP algorithm

Exceptional surfaces

page_revision: 13, last_edited: 1235424504|%e %b %Y, %H:%M %Z (%O ago)