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.