Professional Documents
Culture Documents
Lec14 Manipulation II PDF
Lec14 Manipulation II PDF
141:
Robotics systems and science
Lecture 14: Forward and Inverse
Kinematics
Lecture Notes Prepared by Daniela Rus
EECS/MIT
Spring 2011
http://courses.csail.mit.edu/6.141/!
Challenge: Build a Shelter on Mars!
What is coming up in RSS
Last time: grasping
Today in class: grasping, FK, IK
Today in lab: Lab 7, Lab 6
presentations
Monday: Arthur Licata on Robot Ethics
Point Contact with Friction
Consider a point contact exerting force at some
angle θ to the surface normal. What happens?
2 tan-1 µ
Ft θcrit = tan-1 µ
F θ
Fn
Surface
f2
Grasp Analysis With Friction
Consider forces f1, f2 at frictional contacts p1, p2
f1
f1
p1 p1
p2 p2
f2 f2
e2
e1 e1
e2
Small µ Large µ
Grasp Synthesis (regions)
f2 placement has error ε
f2 can point to any force in pink region
f1
f2
Grasp Synthesis (regions)
But if we put f1 in the pink region,
which points in the blue region can
point to it?
f1
f2
Grasp Synthesis (friction)
2 Finger Forces have to be within
friction cones to stick
2 Finger Forces have to point at each
other
So…
We need to find 2 edges with
overlapping friction cones
Grasp Synthesis With Friction
Choose target region for contact point p1
Determine feasible target region for contact p2
Orient and scale f1, f2 so as to cancel along p1p2
f1
p1 p1 p1
e1
e2 p2 p2
p2
f2
Example: 6.141 robot
Arm Control to Reach
Mechanism design
Forward kinematics
Inverse kinematics
Kinematic Mechanisms
Link: rigid body
Joint: constraint
on two links
Kinematic mechanism:
links and joints
The Planar 3-R manipulator
Planar kinematic chain
All joints are revolute
END-EFFECTOR
Link 3
R
R Link 2 Joint 3
Joint 2
Link 1 ACTUATORS
R
Joint 1
Kinematic modeling REFERENCE
POINT
(x ,y) φ
θ1
Link 1
Joint coordinates x
θ1, θ2, θ3
The image cannot be
displayed. Your computer
may not have enough
Forward
Kinematic Cartesia
Joint Equations nspace
space (x,y,z,Ο,
(J1,J2 ..) Inverse Α,Τ)
Kinematic
Equations
– Joint coordinates d, θ
– Link lengths (both 1)
1 θ
1
• End effector coordinates
– “Reference point” (x, y)
• Challenge: express as d
x = x (d, θ) = 1 + cos θ
y = y (d, θ) = d + sin θ
x
Inverse Kinematics
• Given end effector pose in Cartesian coordinates,
identify the joint values that yield specified pose
• Challenge: solve for joint values in terms of pose
θ = θ (x, y) REFERENCE
= cos-1 (x-1) y POSE (x, y)
d = d (x, y)
= y ∓ (1 – (x-1)2)1/2 1 θ
1
Hints:
x = 1 + cos θ
y = d + sin θ
cos2θ = (x-1)2 d
sin2θ = (y-d)2
1 = (x-1)2 + (y-d)2
(y-d)2 = (x-1)2 - 1 x
Why is IK difficult?
Nonlinear
Revolute joints →
inverse trigonometry θ
Multi-valued
Often multiple solutions for a single Cartesian pose
Dynamics
In reality, want to apply forces and torques (while
Transform joint
POINT
(x ,y) φ
l3 coordinates to end
θ3
effector coordinates
l2
y
θ2
l1
x = l1 cos θ1 + l2 cos(θ1 + θ 2 )+ l3 cos(θ1 + θ 2 + θ3 )
θ1 y = l1 sin θ1 + l2 sin (θ1 + θ 2 )+ l3 sin (θ1 + θ 2 + θ3 )
x
The image cannot be
displayed. Your computer may
φ = (θ1 + θ 2 + θ3 )
not have enough memory to
Inverse kinematics
REFERENCE
POINT
(x ,y) φ
Transform end
effector coordinates
l3 to joint coordinates
θ3
l2
y
θ2
l1
x = l1 cos θ1 + l2 cos(θ1 + θ 2 )+ l3 cos(θ1 + θ 2 + θ3 )
θ1
y = l1 sin θ1 + l2 sin (θ1 + θ 2 )+ l3 sin (θ1 + θ 2 + θ3 )
x
φ = (θ1 + θ 2 + θ3 )
Given x, y, φ, solve
The image cannot be
displayed. Your computer may
not have enough memory to
sin θ = ± 1− cos2 θ
But, this only gives solution in first and fourth quadrants. The
signs of x and y actually uniquely determine the quadrant, so
use:
θ ← atan2(y, x)
y y x
and then tan θ = , sinθ = , cosθ =
2 2
x x +y x2 + y2
Forward Kinematics
Traverse kinematic tree and
propagate transformations
downward
Use stack
Compose parent transformation with
child’s
Pop stack when leaf is reached
High DOF models are tedious to
control this way
Planar Example
x2
y2
O2
y0 a2
y1
θ2 x1
a1 O1
θ1
x0
O0
Example: 3DOF Revolute Arm
r= x 2 + y 2 = l2 c2 + l3 c3−2
h = z − l1 = l2 s2 − l3 s3−2
x 2 + y 2 + (z − l1 )2 = r 2 + h 2
2 2 2 2 2 2 2 2
= l2 c2 + l3 c3−2 + 2l2 l3c 2 [c3 c2 + s3s2 ] + l2 s2 + l3 s3−2 − 2l2 l3 s2 [s3c 2 − c3 s2 ]
= l22 + l32 + 2l2 l3[c22 c3 + s22 c3 ]
2 2
= l + l + 2l2 l3c3 x 2 + y 2 + (z − l1 )2 − l22 − l32
2 3 c3 =
2l2l3
Solving for the Elbow
2
Can choose an “up elbow” solution with s 3 = + 1 − c3
2
or a “down elbow” solution with s 3 = − 1 − c3
x 2 + y 2 + (z − l1 )2 − l22 − l32
where c3 =
2l2l3
θ 3 = atan2(s3 ,c3 )
Pushing On...
matches intuition
h r
θ 2 − γ = atan2( , ) = atan2(h,r ) since d > 0
d d
Final Inverse Kinematics
θ 1 ← atan2(y, x)
x 2 + y2 + (z − l1 )2 − l22 − l32
c3 ←
2l2 l3
2
s3 ← + 1− c3
θ 3 ← atan2(s3 , c3 )
θ 2 ← atan2(z − l1 , x 2 + y 2 ) − atan2(l3 s3 ,l2 + l3c3 )
Putting it All Together: Grasping
• Input workspace, obstacles, and manipuland:
– Determine a feasible grasp (set of contact points)
– Use IK to solve for target end-effector pose in c-space
– Plan a collision-free reach to the computed pose
– Control end-effector along desired trajectory
IK
y θ
Goal
θ
Start
d
x d
Cartesian space Configuration space
What have we swept under the rug?
Sensing
Shape, pose of target object, accessibility of surfaces
Classification of material type from sensor data
Freespace through which grasping action will occur
Prior knowledge
Estimate of µ, mass, moments given material type
Internal, articulated, even active degrees of freedom
Uncertainty & compliance
Tolerate noise inherent in sensing and actuation
Ensure that slight sensing, actuation errors won’t cause damage
Handle soft fingers making contact over a finite area (not a point)
Dynamics
All of the above factors may be changing in real time
Pushing
Straight-line motion
Pushing
Clockwise rotation
Pushing
Counter-clockwise rotation
Pushing
Robust translation