cpsc 441: forward kinematics and inverse kinematics
DESCRIPTION
CPSC 441: Forward kinematics and inverse kinematics. Jinxiang Chai. Outline. Kinematics Forward kinematics Inverse kinematics. Kinematics. The study of movement without the consideration of the masses or forces that bring about the motion. Degrees of freedom (Dofs). - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/1.jpg)
CPSC 441: Forward kinematics and inverse
kinematicsJinxiang Chai
![Page 2: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/2.jpg)
Outline
Kinematics– Forward kinematics– Inverse kinematics
![Page 3: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/3.jpg)
Kinematics
The study of movement without the consideration of the masses or forces that bring about the motion
![Page 4: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/4.jpg)
Degrees of freedom (Dofs)
The set of independent displacements that specify an object’s pose
![Page 5: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/5.jpg)
Degrees of freedom (Dofs)
The set of independent displacements that specify an object’s pose
• How many degrees of freedom when flying?
![Page 6: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/6.jpg)
Degrees of freedom (Dofs)
The set of independent displacements that specify an object’s pose
• How many degrees of freedom when flying?
• So the kinematics of this airplane permit movement anywhere in three dimensions
• Six• x, y, and z positions• roll, pitch, and yaw
![Page 7: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/7.jpg)
Degrees of Freedom
• How about this robot arm?
• Six again
• 2-base, 1-shoulder, 1-elbow, 2-wrist
![Page 8: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/8.jpg)
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 are necessary and sufficient to define position in configuration
![Page 9: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/9.jpg)
Forward vs. Inverse Kinematics
• Forward Kinematics– Compute configuration (pose) given individual
DOF values
• Inverse Kinematics– Compute individual DOF values that result in
specified end effector position
![Page 10: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/10.jpg)
Example: Two-link Structure
• Two links connected by rotational joints
BaseEnd Effector
θ2
θ1 X=(x,y)
l2l1
![Page 11: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/11.jpg)
Example: Two-link Structure
• Animator specifies the joint angles: θ1θ2
• Computer finds the position of end-effector: x
BaseEnd Effector
θ2
θ1
x=f(θ1, θ2)
l2l1
(0,0)
X=(x,y)
![Page 12: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/12.jpg)
Example: Two-link Structure
• Animator specifies the joint angles: θ1θ2
• Computer finds the position of end-effector: x
BaseEnd Effector
θ2
θ1
x = (l1cosθ1+l2cos(θ2+ θ2)
y = l1sinθ1+l2sin(θ2+ θ2))
(0,0)
θ2 l2l1
X=(x,y)
![Page 13: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/13.jpg)
Forward kinematics
BaseEnd Effector
θ2
θ1
(0,0)
θ2 l2l1
• Create an animation by specifying the joint angle trajectories
θ1
θ2
X=(x,y)
![Page 14: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/14.jpg)
Inverse kinematics
• What if an animator specifies position of end-effector?
Base
End Effector
θ2
θ1
(0,0)
θ2 l2l1
X=(x,y)
![Page 15: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/15.jpg)
Inverse kinematics
• Animator specifies the position of end-effector: x
• Computer finds joint angles: θ1θ2
Base
End Effector
θ2
θ1
(0,0)
θ2 l2l1
(θ1, θ2)=f-1(x)
X=(x,y)
![Page 16: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/16.jpg)
Inverse kinematics
• Animator specifies the position of end-effector: x
• Computer finds joint angles: θ1θ2
Base
End Effector
θ2
θ1
(0,0)
θ2 l2l1
X=(x,y)
![Page 17: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/17.jpg)
Why Inverse Kinematics?
• Basic tools in character animation - key frame generation
- animation control - interactive manipulation
• Computer vision (vision based mocap)• Robotics• Bioninfomatics (Protein Inverse Kinematics)
![Page 18: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/18.jpg)
Inverse kinematics
• Given end effector position, compute required joint angles
• In simple case, analytic solution exists– Use trig, geometry, and algebra to solve
![Page 19: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/19.jpg)
Inverse kinematics
• Analytical solution only works for a fairly simple structure
• Iterative approach needed for a complex structure
![Page 20: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/20.jpg)
Iterative approach
• Inverse kinematics can be formulated as an optimization problem
![Page 21: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/21.jpg)
Iterative approaches
Find the joint angles θ that minimizes the distance between the character position and user specified position
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(Cx,Cy)
i
ii Cf 2)(minarg
![Page 22: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/22.jpg)
Iterative approaches
Find the joint angles θ that minimizes the distance between the character position and user specified position
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
![Page 23: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/23.jpg)
Iterative approach
Mathematically, we can formulate this as an optimization problem:
The above problem can be solved by many nonlinear optimization algorithms:
- Steepest descent
- Gauss-newton
- Levenberg-marquardt, etc
i
ii cf 2)(minarg
![Page 24: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/24.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
0
kkk 1
![Page 25: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/25.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
0
kkk 1
How can we decide the amount of update?
![Page 26: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/26.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
ii
kki cf
2)(minarg
0
kkk 1
![Page 27: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/27.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
ii
kki cf
2)(minarg
0
kkk 1
Known!
![Page 28: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/28.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
ii
kki cf
2)(minarg
0
kkk 1
Taylor series expansion
![Page 29: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/29.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
ii
kki cf
2)(minarg
2
)(minarg
ii
kkik
i cf
f
0
kkk 1
Taylor series expansion
rearrange
![Page 30: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/30.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
ii
kki cf
2)(minarg
2
)(minarg
ii
kkik
i cf
f
0
kkk 1
Taylor series expansion
rearrange
Can you solve this optimization problem?
![Page 31: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/31.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
ii
kki cf
2)(minarg
2
)(minarg
ii
kkik
i cf
f
2
))((minarg
i
kii
kki fcf
0
kkk 1
Taylor series expansion
rearrange
This is a quadratic function of
![Page 32: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/32.jpg)
Gauss-newton approach
• Optimizing an quadratic function is easy
• It has an optimal value when the gradient is zero
),...,(
),...,(
),...,(
...
...
1
122
11
2
1
2
2
2
2
1
2
1
2
1
1
1
NiN
N
Ni
N
N
MM
N
M
N
N
fc
fc
fc
fff
fff
fff
2
))((minarg
i
kii
kki fcf
![Page 33: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/33.jpg)
Gauss-newton approach
• Optimizing an quadratic function is easy
• It has an optimal value when the gradient is zero
),...,(
),...,(
),...,(
...
...
1
122
11
2
1
2
2
2
2
1
2
1
2
1
1
1
NiN
N
Ni
N
N
MM
N
M
N
N
fc
fc
fc
fff
fff
fff
2
))((minarg
i
kii
kki fcf
bJ Δθ
Linear equation!
![Page 34: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/34.jpg)
Gauss-newton approach
• Optimizing an quadratic function is easy
• It has an optimal value when the gradient is zero
),...,(
),...,(
),...,(
...
...
1
122
11
2
1
2
2
2
2
1
2
1
2
1
1
1
NiN
N
Ni
N
N
MM
N
M
N
N
fc
fc
fc
fff
fff
fff
2
))((minarg
i
kii
kki fcf
bJ Δθ
![Page 35: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/35.jpg)
Gauss-newton approach
• Optimizing an quadratic function is easy
• It has an optimal value when the gradient is zero
),...,(
),...,(
),...,(
...
...
1
122
11
2
1
2
2
2
2
1
2
1
2
1
1
1
NiN
N
Ni
N
N
MM
N
M
N
N
fc
fc
fc
fff
fff
fff
2
))((minarg
i
kii
kki fcf
bJ Δθ
bJJJ TT 1)(
![Page 36: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/36.jpg)
Jacobian matrix
• Jacobian is a M by N matrix that relates differential changes of θ to changes of C
• Jacobian maps the velocity in joint space to velocities in Cartesian space
• Jacobian depends on current state
N
MMM
N
N
fff
fff
fff
21
2
2
2
1
2
1
2
1
1
1
...
...
Dofs (N)
The
num
ber
of c
onst
rain
ts (
M)
![Page 37: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/37.jpg)
Jacobian matrix
• Jacobian maps the velocity in joint angle space to velocities in Cartesian space
(x,y)
θ1
θ2
![Page 38: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/38.jpg)
Jacobian matrix
• Jacobian maps the velocity in joint angle space to velocities in Cartesian space
(x,y)
θ1
θ2
A small change of θ1 and θ2 results in how much change of end-effector position (x,y)
![Page 39: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/39.jpg)
Jacobian matrix
• Jacobian maps the velocity in joint angle space to velocities in Cartesian space
2
1
2
1
1
2
2
1
1
1
ff
ff
y
x
(x,y)
θ1
θ2
A small change of θ1 and θ2 results in how much change of end-effector position (x,y)
![Page 40: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/40.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
![Page 41: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/41.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
f1f2
![Page 42: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/42.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
)sin(sin
)cos(cos
212112
212111
llf
llf
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
N
MMM
N
N
fff
fff
fff
21
2
2
2
1
2
1
2
1
1
1
...
...
![Page 43: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/43.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
)cos()cos(cos
)sin()sin(sin
21221211
21221211
lll
lllJ
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
![Page 44: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/44.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
)cos()cos(cos
)sin()sin(sin
21221211
21221211
lll
lllJ
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
![Page 45: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/45.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
)cos()cos(cos
)sin()sin(sin
21221211
21221211
lll
lllJ
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
1
21211
1
1 ))cos(cos(
llf
![Page 46: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/46.jpg)
Jacobian matrix: 2D-link structure
2221211
2121211
,))sin(sin())cos(cos(minarg
21
cllcll
)cos()cos(cos
)sin()sin(sin
21221211
21221211
lll
lllJ
Base
θ2
θ1
(0,0)
θ2 l2l1
C=(c1,c2)
2
21211
2
2 ))sin(sin(
llf
![Page 47: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/47.jpg)
Gauss-newton approach
Step 1: initialize the joint angles with
Step 2: update the joint angles:
0
kkk 1
Step size: specified by the user
![Page 48: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/48.jpg)
Another Example
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
),,( 0yx0c
base
Upper arm
lower arm
middle arm
How to compute forward kinematics?
![Page 49: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/49.jpg)
Another Example
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp ),,( 0yx0c
base
Upper arm
lower arm
middle arm
![Page 50: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/50.jpg)
Another Example
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp ),,( 0yx0c
base
![Page 51: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/51.jpg)
Another Example
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp ),,( 0yx0c
base
Upper arm
![Page 52: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/52.jpg)
Another Example
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp ),,( 0yx0c
base
Upper arm
middle arm
![Page 53: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/53.jpg)
Another Example
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp ),,( 0yx0c
base
Upper arm
lower arm
middle arm
![Page 54: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/54.jpg)
More Complex Characters?
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
032211003210 )()0,()()0,()(),0()(),(),,,,,( pRlTRlTRlTRyxTyxf ),,( 0yx0c
base
Upper arm
lower arm
middle arm
![Page 55: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/55.jpg)
More Complex Characters?
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
032211003210 )()0,()()0,()(),0()(),(),,,,,( pRlTRlTRlTRyxTyxf ),,( 0yx0c
base
Upper arm
lower arm
middle arm
If you do inverse kinematics with position of this point
What’s the size of Jacobian matrix?
![Page 56: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/56.jpg)
More Complex Characters?
• A 2D lamp with 6 degrees of freedom
1
2
3
3c
2c
1c
0p
032211003210 )()0,()()0,()(),0()(),(),,,,,( pRlTRlTRlTRyxTyxf ),,( 0yx0c
base
Upper arm
lower arm
middle arm
If you do inverse kinematics with position of this point
What’s the size of Jacobian matrix?
2-by-6 matrix
![Page 57: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/57.jpg)
Human Characters
xRRTRTRRRTRRRzyxTf )()()()()()()()()(),,( 332
321
21110
1000000 57
![Page 58: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/58.jpg)
Inverse kinematics
• Analytical solution only works for a fairly simple structure
• Iterative approach needed for a complex structure
![Page 59: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/59.jpg)
Inverse kinematics
• Is the solution unique?
• Is there always a good solution?
![Page 60: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/60.jpg)
Ambiguity of IK
• Multiple solutions
![Page 61: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/61.jpg)
Ambiguity of IK
• Infinite solutions
![Page 62: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/62.jpg)
Failures of IK
• Solution may not exist
![Page 63: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/63.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
![Page 64: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/64.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
• Additional objective– Minimal Change from a reference pose θ0
![Page 65: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/65.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
• Additional objective– Minimal Change from a reference pose θ0
2
0
2)(minarg
iii cf
![Page 66: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/66.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
• Additional objective– Minimal Change from a reference pose θ0
2
0
2)(minarg
iii cf
Satisfy the constraints Minimize the difference between the solution and a reference pose
![Page 67: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/67.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
• Additional objective– Minimal Change from a reference pose θ0
– Naturalness g(θ) (particularly for human characters)
![Page 68: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/68.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
• Additional objective– Minimal Change from a reference pose θ0
– Naturalness g(θ) (particularly for human characters)
)()(minarg2
gcf
iii
![Page 69: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/69.jpg)
Inverse kinematics
• Generally ill-posed problem when the Dofs is higher than the number of constraints
• Additional objective– Minimal Change from a reference pose θ0
– Naturalness g(θ) (particularly for human characters)
)()(minarg2
gcf
iii
Satisfy the constraints How natural is the solution pose?
![Page 70: CPSC 441: Forward kinematics and inverse kinematics](https://reader033.vdocuments.site/reader033/viewer/2022061600/56814846550346895db55b26/html5/thumbnails/70.jpg)
Interactive Human Character Posing
• video