Document 11226744

advertisement
Collaboration Policy: CP-1
Due: Class period on 22 Oct.
Name:
Homework 4: Forward Kinematics
Assume you are given a task to render a disembodied skeletal arm in a 3D world. The rest pose for the arm
is given as a series of rotations (joint angles) and translations (bone lengths). The arm has a hierarchy that
specifies the parenting relationship. The ‘root’ node of a child is parented to the ‘end’ node of a parent.
Here is the arm in its rest position in ‘creature space’:
You may use any calculator, including online
matrix calculators
(e.g. http://www.bluebit.gr/matrixcalculator/matrix_multiplication.aspx)
but you may not get help from other students.
Determine the matrices to transform each bone from its own space to its parent’s space.
arm.upper space to creature space
‘A’ is the root node for the creature and for arm.upper
1 0
�0 1
0 0
arm.lower space to arm.upper space
�
arm.lower is parented to arm.upper
‘B’ is the root node for arm.lower
0
0�
1
�
finger space to arm.lower space
fingers is parented to arm.lower
‘C’ is the root node for fingers
�
�
�
�
thumb space to arm.lower space
thumb is parented to arm.lower
‘C’ is the root node for thumb
Calculate the complete transform for converting vertices from thumb space to creature space:
�
�∗�
�∗�
�= �
�
Collaboration Policy: CP-1
Due: Class period on 22 Oct.
Name:
Check your work: Use the matrix above to transform the thumb’s node positions [(0,0) & (1,0)] from thumb
space to creature space. Check your answers against the drawing at the top of the previous page.
0
� ∗ �0�=� �
1
�
1
� ∗ �0�=� �
1
�
STOP: If you get an answer that does not match the drawing on the previous page, go fix your transforms.
-------------------------------------------------------------------------------------------------------------------------------------Let’s position our armature now. We will need to work up a new chain of transforms for each frame.
The following transforms are added to the creature’s rest pose for frame 1:
1. creature root remains at rest position
2. arm.upper remains at rest position
3. arm.lower rotates 90 degrees clockwise at node B
4. fingers rotates 45 degrees counter-clockwise at node C
5. thumb remains at rest position
Draw the resulting figure in the graph below in creature space:
Calculate a transform matrix for fingers space:
�
�∗�
arm.upper sp ->
creature sp
�∗�
arm.lower sp ->
arm.upper sp
90 deg cw
rotate
�∗�
�∗�
finger sp ->
arm.lower sp
45 deg ccw
rotate
�=�
new fingers
space transform
Check your work: Use the matrix above to transform the fingers’ node positions [(0,0) & (2,0)] from the new
finger space to creature space. Check your answers against the drawing at the top of the previous page.
�
0
� ∗ �0�=� �
1
�
�
2
� ∗ �0�=� �
1
STOP: If you get an answer that does not match the drawing on the previous page, go fix your transforms.
Download