Transcript PowerPoint

Animation
CS 551 / 651
Kinematics
Lecture 09
Sarcos Humanoid
Kinematics
The study of object movements irrespective
of their speed or style of movement
Degrees of Freedom
(DOFs)
The variables that affect an object’s
orientation
How many degrees of
freedom when flying?
• So the kinematics • Six
of this airplane
• x, y, and z positions
permit movement
• roll, pitch, and yaw
anywhere in three
dimensions
Degrees of Freedom
How about this robot arm?
• Six again
• 2-base, 1-shoulder, 1-elbow, 2-wrist
Configuration Space
• The set of all possible positions (defined
by kinematics) an object can attain
Work Space vs. Configuration
Space
Work space
• The space in which the object exists
• Dimensionality
– R3 for most things, R2 for planar arms
Configuration space
• The space that defines the possible object configurations
• Degrees of Freedom
– The number of parameters that necessary and sufficient
to define position in configuration
More examples
A point on a plane
A point in space
A point moving on a
line in space
A matter of control
If your animation adds energy at a particular
DOF, that is a controlled DOF
Low DOF, high control
High DOF, no control
Hierarchical Kinematic
Modeling
A family of parent-child spatial relationships
are functionally defined
• Moon/Earth/Sun movements
• Articulations of a humanoid
• Limb connectivity is built
into model (joints) and
animation is easier
Robot Parts/Terms
Links
End effector
Frame
Revolute Joint
Prismatic Joint
More Complex Joints
3 DOF joints
• Gimbal
• Spherical
(doesn’t possess
singularity)
2 DOF joints
• Universal
Hierarchy Representation
Model bodies (links) as nodes of a tree
All body frames are local (relative to parent)
• Transformations affecting root affect all children
• Transformations affecting any node affect all its
children
ROOT
Forward vs. Inverse Kinematics
Forward Kinematics
• Compute configuration (pose) given individual DOF
values
– Good for simulation
Inverse Kinematics
• Compute individual DOF values that result in
specified end effector position
– Good for control
Forward Kinematics
Traverse kinematic tree and
propagate transformations
downward
• Use stack
• Compose parent transformation with
child’s
• Pop stack when leaf is reached
Denavit-Hartenberg (DH)
Notation
A kinematic representation (convention)
inherited from robotics
Z-axis aligned with joint
X-axis aligned with outgoing limb
Y-axis is orthogonal
Joints are numbered to represent hierarchy
Ui-1 is parent of Ui
Parameter ai-1 is outgoing
limb length of joint Ui-1
Joint angle, qi, is rotation of xi-1
about zi-1 relative to xi
Link twist, ai-1, is the rotation of ith z-axis about
xi-1-axis relative to z-axis of i-1th frame
Link offset, di-1, specifies the distance along the
zi-1-axis (rotated by ai-1) of the ith frame from the
i-1th x-axis to the ith x-axis
Inverse Kinematics (IK)
Given end effector position, compute
required joint angles
In simple case, analytic solution exists
• Use trig, geometry, and algebra to solve
What is Inverse Kinematics?
Forward Kinematics
?
End Effector
Base
What is Inverse Kinematics?
Inverse Kinematics
End Effector
Base
What does
look like?
?
End Effector
Base
Solution to
Our example
Number of equation : 2
Unknown variables : 3
Infinite number of solutions !
Redundancy
 System DOF > End Effector DOF

Our example
System
DOF = 3
End Effector DOF = 2
• Analytic solution of 2-link inverse kinematics
x2
x 2  y 2  a12  a22  2a1a2 cos(  q 2 )
cos q 2 
x  y a a
2a1a2
2
2
2
1
y2
2
2
for greater accuracy
tan 2
q2
2


1  cos q 2a1a2  x  y  a  a

1  cos q 2a1a2  x 2  y 2  a  a
2
a
x
2
1
2
q 2  2 tan 1
2
  x  y 
 y   a  a 
a  a   x  y 
x  y   a  a 
a
2 2
2
2
2
2
1
2
1
2 2
2
2
2
2
1
2
1
2
2
2
2
y0
(x,y)
O2
q2
y1
a2
q2
2
2 2
2
2
2
1
a1

O1
2

2 2
2
O0
q1
x0
x1
Failures of simple IK
Multiple Solutions
Failures of simple IK
Infinite solutions
Failures of simple IK
Solutions may not exist
Iterative IK Solutions
Frequently analytic solution is infeasible
Use Jacobian
• Derivative of function output relative to each of its inputs
If y is function of three inputs and one output
y  f ( x1 , x2 , x3 )
y 
f
x1
 x1 
f
x2
 x2 
f
x3
 x3
• Represent Jacobian, J(X), as a 1x3 matrix of partial
derivatives
Jacobian
In another situation,
end effector has 6
DOFs and robotic
arm has 6 DOFs
f(x1, …, x6) = (x, y, z,
r, p, y)
Therefore J(X) = 6x6
matrix
 f x
 x
 1
 f y
 x1
 f
 z
 x1
 f r

 x1
 f p
 x
 1
 f y
 x
 1
f x
x 2
f x
x3
f x
x 4
f x
x5
f x 
x6 















Jacobian
Relates velocities in parameter space to
velocities of outputs
Y  J ( X )  X
If we know Ycurrent and Ydesired, then we
subtract to compute Ydot
Invert Jacobian and solve for Xdot
Turn to PDF slides
Slides from O’Brien and Forsyth
• CS 294-3: Computer Graphics
Stanford
Fall 2001
Differential Kinematics
Is J always invertible? No!
• Remedy : Pseudo Inverse
Null space
The null space of J is the set of vectors
which have no influence on the constraints
q  nullspace ( J )  Jq  0
The pseudoinverse provides an operator
which projects any vector to the null space of J
Jq  x
q  J  x  ( I  J  J ) z
Utility of Null Space
The null space can be used to reach
secondary goals


q  J x  ( I  J J ) z
min f (q )
z
Or to find comfortable positions
f (q )   (q comfort (i )  q (i))
i
2
Calculating Pseudo Inverse
Singular Value Decomposition
Redundancy
A redundant system has infinite number of
solutions
Human skeleton has 70 DOF
• Ultra-super redundant
How to solve highly redundant system?
Redundancy Is Bad
Multiple choices for one goal
• What happens if we pick any of them?
Redundancy Is Good
We can exploit redundancy
Additional objective
• Minimal Change
• Similarity to Given Example
• Naturalness
Naturalness
Based on observation of natural human
posture
Neurophysiological experiments
Conflict Between Goals
ee 2
ee 1
base
Conflict Between Goals
Goal 1
ee 2
ee 1
base
Conflict Between Goals
Goal 2
ee 2
ee 1
base
Conflict Between Goals
Goal 2
Goal 1
ee 2
ee 1
base
Conflict Between Goals
Goal 2
Goal 1
ee 2
ee 1
base