Final project reports (code and writeup) due Thursday June 12 at 8 PM.
Final project presentations Friday June 13, 12-2 PM, Tech L168 (15-20 mins each).
Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly.
Humans are quite adept at manipulating the world. We can push a sofa on the floor, pivot a refrigerator on its legs, throw and catch a baseball, jiggle a key into a lock, shuffle and deal cards, and carry a tray of food without spilling. On the other hand, robots usually only manipulate the world by grasping and carrying. We can build a very precise positioning robot, but if it can't grasp the object in some way, there's not much it can do.
What accounts for this difference between humans and robots? For one, humans understand contact and dynamics from a lifetime of experience. Robots usually only know what we tell them, and we don't tell them much. We need a way to teach robots what we know about manipulation (or let them learn it themselves) if they are ever to become as dexterous as humans.
In this course we focus on the mechanical interaction between the robot and the object it is manipulating, and between the object and the environment. We mostly ignore the problem of robot force or motion control, and concentrate on the interaction between the robot and the world. This interaction is governed by unilateral contact constraints, friction, rigid-body dynamics, and impact. The goal of this course is to understand the mechanics of the interaction between the robot and the world and to develop computer representations and algorithms to support simulation and motion planning.
Grading for the course will be based on problem sets, presentation of a research paper, participation in discussion, and a final project. There will be no exams. The final project, due during finals week, could take the form of simulation code (from scratch or modifying existing code) or a report (e.g., in the form of a conference paper) either analyzing a manipulation problem or building on a recent research paper.
Supplementary material will come from Principles of Robot Motion, H. Choset et al., MIT Press 2005; A Mathematical Introduction to Robotic Manipulation, R. M. Murray, Z. Li, and S. S. Sastry, CRC Press, 1994, ISBN 0-8493-7981-4; Chapter 27 "Contact Modeling and Manipulation," I. Kao, K. Lynch, and J. Burdick, from the upcoming Handbook of Robotics; and other sources.
Problem set 2, due in class Tues May 6: Mason exercises
2.9, 4.1, 5.2, plus the following questions:
4. A table is sitting on the floor. A world coordinate frame is
attached to the floor so that the x-y plane of the frame is in
the plane of the floor, and z points opposite gravity. One of
the table's legs contacts the floor at (x,y,z) = (4,7,0). Write
the contact wrench w due to a unit normal contact force
at this contact.
Write the constraint on the feasible (spatial) twists t of the table due
to this contact.
5. See the left figure in Figure 2.28 of the Mason book. The part
is an L-shape. Get rid of the top left "finger," so there are only
3 contacts.
(a) Use Reuleaux's method to find the first-order feasible instantaneous rotation
centers. Make sure this figure is legible, and shows which CORs are "+" and which
are "-."
(b) For each feasible COR, indicate the corresponding contact mode, consisting
of the contact label for each of the three contacts. You can use the labels
"f" for breaking free, "s" for sticking contact, "l" for the part sliding left
relative to the finger, or "r" for the part sliding right, as in the Mason book.
(Note the handbook chapter uses
"f" for fixed (or rolling) contact, "b" for breaking contact, "s_r" for the part
sliding right relative to the finger, and "s_l" for the part sliding left relative
to the finger; see Figure 27.2.)
6. Refer to Figure 27.2 of the handbook chapter. Imagine that the
bottom "wall" and top right "finger" are rigidly attached to each other, making
one rigid body, and that body begins to
rotate clockwise (e.g., angular velocity of -1 rad/s)
about a COR at the lower right contact between the wall and the
part (the point where the vector w_2 is drawn in Figure 27.2(a)). Draw the set of COR's
for the part that correspond to the s_r b s_r contact mode (which is written rfr in the
notation of the Mason book), where the
part slips right relative to the first contact, breaks free of the
second contact, and slips right relative to the third
contact. (Hint: The part's twist (velocity) must be a convex
combination of the wall-finger's twist and the twists that yield the s_r b
s_r contact mode when the wall-finger is stationary. Can you see why?
For a given
COR yielding s_r b s_r when the wall-finger is moving, the corresponding angular
velocity about the COR is not arbitrary, but determined by the
magnitude of the velocity of the wall-finger.)
7. The part is a square with coordinates (-1,-1), (1,-1), (1,1),
(-1,1). Now get rid of the right edge connecting (1,1) and (1,-1), and
replace it with a smooth concave curve connecting (1,1) to (0,0) to
(1,-1). Put a stationary point finger at each of (-1,0) and (0,0).
By a first-order analysis, the part can still move in the +/- y direction.
Choose a simple algebraic curve x=f(y) connecting (1,1) to (0,0) to (1,-1)
so that motion in the +/- y direction is impossible (the part is
immobilized), but which requires more than a second-order analysis
to prove immobilization. Give the equation for the curve and demonstrate
why a higher-order analysis is needed to prove immobilization.
Problem set 3, due in class Thurs May 29:
1. The fingers-under-the-ruler problem. Two fingers support a
ruler horizontally in gravity. Finger 1 is located at position 0 on a
horizontal line, and is stationary for all time. The center of mass
of the ruler
is at position L > 0, and finger 2 is located at D > L >
0. Finger 2 moves at constant slow speed toward finger 1, so dD/dt <
0. (The magnitude doesn't matter for our analysis.) The static
friction coefficient is u_s and the kinetic friction coefficient is
u_k. The only relevant contact modes are sr
(finger 1 sticks, ruler slips right relative to finger 2), ls (ruler
slips left relative to finger 1, and finger 2 sticks), and lr (ruler
slips left relative to finger 1, right relative to finger 2). Note
that ss and rl are not possible (fingers are moving together, so these
are impossible kinematically) and ll and rr are not possible (as the
contact forces with the fingers would be parallel but not vertical,
meaning that we can have no quasistatic balance with the vertical
gravitational force mg).
Question: For each contact mode sr, ls, and lr, give the range
of values of L and D for which the contact mode is quasistatically
consistent. Is there ever more than one possible solution (ambiguity)
or no solutions (inconsistency) when u_s > u_k? What if u_s
= u_k? What if u_s < u_k? For the case u_s = u_k, show that D > L at
all times as finger 2 moves toward
finger 1, meaning that both fingers end up directly under the ruler's
center of mass.
(Hint: Use moment balance to determine the normal force at
each finger, and keep in mind that tangential frictional forces must
balance in the quasistatic case.)
2. Use Lagrange's equations to find the dynamics of a two-joint
RR (two revolute joints) robotic arm moving in a vertical plane (with
gravity). The angle of joint 1, q1, is relative to the horizontal,
and the angle of joint 2, q2, is relative to link 1. The first link
is length L1, and the second link is length L2. The mass of link 1 is
m1 and is concentrated at the end of link 1 (at joint 2), and the mass
of link 2 is m2 and is concentrated at the end of link 2. Show your
work. Put the results in the standard form M(q) d2q/dt2 + h(q, dq/dt)
+ g(q) = u.
3. Body 1 and body 2 are in contact, where the center of mass
of each body, the contact location, and the contact normal and tangent
directions are shown in the figure. Body 1 has mass 1 and inertia 0.1,
and body 2 has mass 2 and inertia 0.2. The initial velocity of body
1 is (dx1/dt,dy1/dt,dtheta1/dt) = (1,0,-1)^T. The initial velocity of
body 2 is (dx2/dt,dy2/dt,dtheta2/dt) = (2,0,0)^T. There is no gravity.
The external wrench applied to body 1 is (0,5,0)^T, and no
external wrench is applied to body 2. The friction
coefficient at the contact is 0.5.
a. By evaluating the normal velocity v_n and tangential velocity v_t
at the contact, show that the contact is initially maintained (not
separating) and rolling (not sliding).
b. Write the composite dynamics of the system d2q/dt2 = M^{-1}(W_n c_n + W_t c_t + w_ext).
c. Derive the normal acceleration a_n at the contact in terms
of d2q/dt2. Then plug in the results of part b to eliminate the d2q/dt2
terms from your expression for a_n.
d. Derive the tangential acceleration a_t at the contact in
terms of d2q/dt2. Then plug in the results of part b to eliminate the d2q/dt2
terms from your expression for a_t.
e. Write the complementarity conditions for a_n and c_n.
f. Replace a_t from part d
with (a+)_t and (a-)_t, and instances of
c_t with (s+)_t and (s-)_t, as discussed in class and in the Berard,
Egan, Trinkle paper. Write the complementarity conditions for these
new variables.
g. How many variables do you have to solve for, and how many
equations?
h. Bonus: Transform your equations into the LCP form (16) and
(17) from the Berard, Egan, and Trinkle paper.
4. The two rods shown are leaning against each other and
supported by a horizontal table in a gravity field. Sample friction
cones are shown at the contacts, the contact normals between
the two rods are horizontal, and
the coordinates of each contact and the rods' CMs are given.
What is the minimum friction
coefficient u necessary to prevent the rods from falling if m1 = m2?
What if m1 = n m2, for any n>0?
[To solve this, write the static equilibrium equations for each of
the two rods. Write the contact wrenches for each rod in its CM-centered
frame. The contact wrench on rod 1, on the left,
due to contact with the floor is
c1 w1 + c2 w2, where c1, c2 must be >= 0. For example, we
can write w1 as (-u,1,-1-u)^T
(it's not necessary for this vector to be unit, or the force portion
to be unit). Write out the wrenches w2...w8, write the static equilibrium
conditions in terms of c1...c8 (note c3=c5 and c4=c6), and solve for
the c's in terms of m1, m2, and the friction coefficient u. Show your
work, and use
mathematica or maple to help you solve the linear equations.]
In most problems (unlike this example) there are more design variables (c's)
than equations, and there may be an infinite number of solutions to the
contact forces that yield static equilibrium. In these cases,
we can turn the problem into a linear programming
problem of trying to find any feasible solution.
5. Follow on to problem 4: Explain, in words, how we would check if the
rods stay stationary relative to each other and the table
if the table is moving with a specified velocity and acceleration.
How does the problem formulation change? While you don't need to
write equations, your description should make it clear how to do this.
Discussion in class Thursday, May 15:
"Contact Modes and Complementary Cones," S. Berard, K. Egan, and J.
C. Trinkle, 2004 IEEE International Conference on Robotics and Automation.
All students: bring a sheet of paper (to turn in) with one discussion
point (this can be a question or comment, but something for the class
discussion). This should not be a trivial question or observation,
but something more substantive. Also answer the following question:
for the three-contact situation in Figure 1, write the 4^3 enumeration
of potential contact modes, using the notation s, l, r, and f, as
given in the Mason book. (You do not need to actually write them all,
just show how to enumerate them.) Now write out the subset of contact
modes that is actually geometrically feasible, and show your work to
get this answer. (Just do your best to approximately draw the contact
locations and normals from the figure.) The contacts are numbered 1,
2, 3 from left to right.