Animation CS 551 / 651 Kinematics Lecture 09 Kinematics Sarcos Humanoid.

50
Animation CS 551 / 651 Kinematics Kinematics Lecture 09 Lecture 09 Sarcos Humanoid
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    2

Transcript of Animation CS 551 / 651 Kinematics Lecture 09 Kinematics Sarcos Humanoid.

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

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, i, is rotation of xi-1

about zi-1 relative to xi

Link twist, i-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 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

What does look like?

?

Base

End Effector

Solution to

Our exampleOur exampleOur exampleOur example

Number of equation : 2

Unknown variables : 3

Infinite number of solutions !

Redundancy

System DOF > End Effector DOF

Our example

System DOF = 3End Effector DOF = 2

• 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

Multiple SolutionsMultiple SolutionsMultiple SolutionsMultiple Solutions

Failures of simple IK

Infinite solutionsInfinite solutionsInfinite solutionsInfinite solutions

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

Conflict Between Goals

base

ee 2ee 1

Conflict Between Goals

base

ee 2ee 1

Goal 1

Conflict Between Goals

base

ee 2

Goal 2

ee 1

Conflict Between Goals

base

ee 2ee 1

Goal 1Goal 2

Conflict Between Goals

base

ee 2ee 1

Goal 1Goal 2