Post on 21-Dec-2015
AnimationCS 551 / 651
KinematicsKinematics
Lecture 09Lecture 09
KinematicsKinematics
Lecture 09Lecture 09
Sarcos Humanoid
Kinematics
The study of object movements irrespective The study of object movements irrespective of their speed or style of movementof their speed or style of movement
The study of object movements irrespective The study of object movements irrespective of their speed or style of movementof their speed or style of movement
Degrees of Freedom(DOFs)
The variables that affect an object’s The variables that affect an object’s orientationorientation
How many degrees of How many degrees of freedom when flying?freedom when flying?
The variables that affect an object’s The variables that affect an object’s orientationorientation
How many degrees of How many degrees of freedom when flying?freedom when flying?
• Six• x, y, and z positions• roll, pitch, and yaw
• So the kinematics of this airplane permit movement anywhere in three dimensions
Degrees of Freedom
How about this robot arm?How about this robot arm?How about this robot arm?How about this robot arm?
• Six again
• 2-base, 1-shoulder, 1-elbow, 2-wrist
• The set of all possible positions (defined by kinematics) an object can attain
Configuration Space
Work Space vs. Configuration Space
Work spaceWork space• The space in which the object existsThe space in which the object exists
• DimensionalityDimensionality
– RR33 for most things, R for most things, R22 for planar arms for planar arms
Configuration spaceConfiguration space• The space that defines the possible object configurationsThe space that defines the possible object configurations
• Degrees of FreedomDegrees of Freedom
– The number of parameters that necessary and sufficient to The number of parameters that necessary and sufficient to define position in configurationdefine position in configuration
Work spaceWork space• The space in which the object existsThe space in which the object exists
• DimensionalityDimensionality
– RR33 for most things, R for most things, R22 for planar arms for planar arms
Configuration spaceConfiguration space• The space that defines the possible object configurationsThe space that defines the possible object configurations
• Degrees of FreedomDegrees of Freedom
– The number of parameters that necessary and sufficient to The number of parameters that necessary and sufficient to define position in configurationdefine position in configuration
More examples
A point on a planeA point on a plane
A point in spaceA point in space
A point moving on a A point moving on a line in spaceline in space
A point on a planeA point on a plane
A point in spaceA point in space
A point moving on a A point moving on a line in spaceline in space
A matter of control
If your animation adds energy at a particular If your animation adds energy at a particular DOF, that is a DOF, that is a controlled DOFcontrolled DOF
If your animation adds energy at a particular If your animation adds energy at a particular DOF, that is a DOF, that is a controlled DOFcontrolled DOF
High DOF, no controlLow DOF, high control
Hierarchical Kinematic Modeling
A family of parent-child spatial relationships A family of parent-child spatial relationships are functionally definedare functionally defined
• Moon/Earth/Sun movementsMoon/Earth/Sun movements
• Articulations of a humanoidArticulations of a humanoid
A family of parent-child spatial relationships A family of parent-child spatial relationships are functionally definedare functionally defined
• Moon/Earth/Sun movementsMoon/Earth/Sun movements
• Articulations of a humanoidArticulations of a humanoid
• Limb connectivity is built into model (joints) and animation is easier
Robot Parts/Terms
LinksLinks
End effectorEnd effector
FrameFrame
Revolute JointRevolute Joint
Prismatic JointPrismatic Joint
LinksLinks
End effectorEnd effector
FrameFrame
Revolute JointRevolute Joint
Prismatic JointPrismatic Joint
More Complex Joints
3 DOF joints3 DOF joints
• GimbalGimbal
• Spherical Spherical (doesn’t possess (doesn’t possess singularity)singularity)
2 DOF joints2 DOF joints
• UniversalUniversal
3 DOF joints3 DOF joints
• GimbalGimbal
• Spherical Spherical (doesn’t possess (doesn’t possess singularity)singularity)
2 DOF joints2 DOF joints
• UniversalUniversal
Hierarchy Representation
Model bodies (links) as nodes of a treeModel bodies (links) as nodes of a tree
All body frames are local (relative to parent) All body frames are local (relative to parent)
• Transformations affecting root affect all childrenTransformations affecting root affect all children
• Transformations affecting any node affect all its Transformations affecting any node affect all its childrenchildren
Model bodies (links) as nodes of a treeModel bodies (links) as nodes of a tree
All body frames are local (relative to parent) All body frames are local (relative to parent)
• Transformations affecting root affect all childrenTransformations affecting root affect all children
• Transformations affecting any node affect all its Transformations affecting any node affect all its childrenchildren
ROOT
Forward vs. Inverse Kinematics
Forward KinematicsForward Kinematics• Compute configuration (pose) given individual DOF Compute configuration (pose) given individual DOF
valuesvalues
– Good for simulationGood for simulation
Inverse KinematicsInverse Kinematics• Compute individual DOF values that result in Compute individual DOF values that result in
specified end effector positionspecified end effector position
– Good for controlGood for control
Forward KinematicsForward Kinematics• Compute configuration (pose) given individual DOF Compute configuration (pose) given individual DOF
valuesvalues
– Good for simulationGood for simulation
Inverse KinematicsInverse Kinematics• Compute individual DOF values that result in Compute individual DOF values that result in
specified end effector positionspecified end effector position
– Good for controlGood for control
Forward Kinematics
Traverse kinematic tree and Traverse kinematic tree and propagate transformations propagate transformations downwarddownward
• Use stackUse stack
• Compose parent transformation with Compose parent transformation with child’schild’s
• Pop stack when leaf is reachedPop stack when leaf is reached
Traverse kinematic tree and Traverse kinematic tree and propagate transformations propagate transformations downwarddownward
• Use stackUse stack
• Compose parent transformation with Compose parent transformation with child’schild’s
• Pop stack when leaf is reachedPop stack when leaf is reached
Denavit-Hartenberg (DH) Notation
A kinematic representation (convention) A kinematic representation (convention) inherited from roboticsinherited from robotics
A kinematic representation (convention) A kinematic representation (convention) inherited from roboticsinherited from robotics
Link offset, di-1, specifies the distance along the
zi-1-axis (rotated by i-1) of the ith frame from the
i-1th x-axis to the ith x-axis
Inverse Kinematics (IK)
Given end effector position, compute Given end effector position, compute required joint anglesrequired joint angles
In simple case, analytic solution existsIn simple case, analytic solution exists
• Use trig, geometry, and algebra to solveUse trig, geometry, and algebra to solve
Given end effector position, compute Given end effector position, compute required joint anglesrequired joint angles
In simple case, analytic solution existsIn simple case, analytic solution exists
• Use trig, geometry, and algebra to solveUse trig, geometry, and algebra to solve
What is Inverse Kinematics?
Forward KinematicsForward KinematicsForward KinematicsForward Kinematics
Base
End Effector
?
What is Inverse Kinematics?
Inverse KinematicsInverse KinematicsInverse KinematicsInverse Kinematics
Base
End Effector
Solution to
Our exampleOur exampleOur exampleOur example
Number of equation : 2
Unknown variables : 3
Infinite number of solutions !
• Analytic solution of 2-link inverse kinematics
2
1
a1
a2
O2
O1
O0
x1
x0
x2
y1
y2
y0
(x,y)
2
22
221
22
22222
211
2
222
21
22
22222
21
22
21
2221
22
21
222122
21
22
21
22
2
22122
21
22
tan2
2
2
cos1
cos1
2tan
accuracygreater for
2cos
)cos(2
aayx
yxaa
aayx
yxaa
aayxaa
aayxaa
aa
aayx
aaaayx
Failures of simple IK
Solutions may not existSolutions may not existSolutions may not existSolutions may not exist
Iterative IK Solutions
Frequently analytic solution is infeasibleFrequently analytic solution is infeasible
Use Use JacobianJacobian• Derivative of function output relative to each of its inputsDerivative of function output relative to each of its inputs
If y is function of three inputs and one outputIf y is function of three inputs and one output
Frequently analytic solution is infeasibleFrequently analytic solution is infeasible
Use Use JacobianJacobian• Derivative of function output relative to each of its inputsDerivative of function output relative to each of its inputs
If y is function of three inputs and one outputIf y is function of three inputs and one output
33
22
11
321 ),,(
xx
fx
x
fx
x
fy
xxxfy
• Represent Jacobian, J(X), as a 1x3 matrix of partial Represent Jacobian, J(X), as a 1x3 matrix of partial derivativesderivatives
• Represent Jacobian, J(X), as a 1x3 matrix of partial Represent Jacobian, J(X), as a 1x3 matrix of partial derivativesderivatives
Jacobian
In another situation, In another situation,
end effector has 6 end effector has 6 DOFs and robotic DOFs and robotic arm has 6 DOFsarm has 6 DOFs
f(xf(x11, …, x, …, x66) = (x, y, z, ) = (x, y, z, r, p, y)r, p, y)
Therefore J(X) = 6x6 Therefore J(X) = 6x6 matrixmatrix
In another situation, In another situation,
end effector has 6 end effector has 6 DOFs and robotic DOFs and robotic arm has 6 DOFsarm has 6 DOFs
f(xf(x11, …, x, …, x66) = (x, y, z, ) = (x, y, z, r, p, y)r, p, y)
Therefore J(X) = 6x6 Therefore J(X) = 6x6 matrixmatrix
1
1
1
1
1
654321
x
fx
fx
fx
fx
fx
f
x
f
x
f
x
f
x
f
x
f
y
p
r
z
y
xxxxxx
Jacobian
Relates velocities in parameter space to Relates velocities in parameter space to velocities of outputsvelocities of outputs
If we know YIf we know Ycurrentcurrent and Y and Ydesireddesired, then we , then we subtract to compute Ysubtract to compute Ydotdot
Invert Jacobian and solve for XInvert Jacobian and solve for Xdotdot
Relates velocities in parameter space to Relates velocities in parameter space to velocities of outputsvelocities of outputs
If we know YIf we know Ycurrentcurrent and Y and Ydesireddesired, then we , then we subtract to compute Ysubtract to compute Ydotdot
Invert Jacobian and solve for XInvert Jacobian and solve for Xdotdot
XXJY )(
Turn to PDF slides
Slides from O’Brien and ForsythSlides from O’Brien and Forsyth
• CS 294-3: Computer GraphicsCS 294-3: Computer GraphicsStanfordStanfordFall 2001Fall 2001
Slides from O’Brien and ForsythSlides from O’Brien and Forsyth
• CS 294-3: Computer GraphicsCS 294-3: Computer GraphicsStanfordStanfordFall 2001Fall 2001
Differential Kinematics
Is Is JJ always invertible? No! always invertible? No!
• Remedy : Pseudo InverseRemedy : Pseudo Inverse
Is Is JJ always invertible? No! always invertible? No!
• Remedy : Pseudo InverseRemedy : Pseudo Inverse
Null space
The null space of J is the set of vectors The null space of J is the set of vectors which have no influence on the constraintswhich have no influence on the constraints
The pseudoinverse provides an operator The pseudoinverse provides an operator which projects any vector to the null space of Jwhich projects any vector to the null space of J
The null space of J is the set of vectors The null space of J is the set of vectors which have no influence on the constraintswhich have no influence on the constraints
The pseudoinverse provides an operator The pseudoinverse provides an operator which projects any vector to the null space of Jwhich projects any vector to the null space of J
0)( JJnullspace
zJJIxJ
xJ
)(
Utility of Null Space
The null space can be used to reach The null space can be used to reach secondary goalssecondary goals
Or to find comfortable positionsOr to find comfortable positions
The null space can be used to reach The null space can be used to reach secondary goalssecondary goals
Or to find comfortable positionsOr to find comfortable positions
)(min
)(
f
zJJIxJ
z
i
comfort iif 2))()(()(
Calculating Pseudo Inverse
Singular Value DecompositionSingular Value DecompositionSingular Value DecompositionSingular Value Decomposition
Redundancy
A redundant system has infinite number of A redundant system has infinite number of solutionssolutions
Human skeleton has 70 DOFHuman skeleton has 70 DOF
• Ultra-super redundantUltra-super redundant
How to solve highly redundant system?How to solve highly redundant system?
A redundant system has infinite number of A redundant system has infinite number of solutionssolutions
Human skeleton has 70 DOFHuman skeleton has 70 DOF
• Ultra-super redundantUltra-super redundant
How to solve highly redundant system?How to solve highly redundant system?
Redundancy Is Bad
Multiple choices for one goalMultiple choices for one goal
• What happens if we pick any of them?What happens if we pick any of them?
Multiple choices for one goalMultiple choices for one goal
• What happens if we pick any of them?What happens if we pick any of them?
Redundancy Is Good
We can exploit redundancyWe can exploit redundancy
Additional objectiveAdditional objective
• Minimal ChangeMinimal Change
• Similarity to Given ExampleSimilarity to Given Example
• NaturalnessNaturalness
We can exploit redundancyWe can exploit redundancy
Additional objectiveAdditional objective
• Minimal ChangeMinimal Change
• Similarity to Given ExampleSimilarity to Given Example
• NaturalnessNaturalness
Naturalness
Based on observation of natural human Based on observation of natural human posture posture
Neurophysiological experimentsNeurophysiological experiments
Based on observation of natural human Based on observation of natural human posture posture
Neurophysiological experimentsNeurophysiological experiments