Title: 681 - Introduction to Computer Graphics
1Forward Kinematics
2Specifying a Pose
3Forward Kinematics
Hierarchical model - joints and links
Joints - rotational or prismatic
Joints - 1, 2, or 3 Degrees of Freedom
Links - displayable objects
Pose - setting parameters for all joint DoFs
Pose Vector - a complete set of joint parameters
4Forward Kinematics
End effector
Manipulator
Revolute joint, ball socket, hinge joint
Prismatic joint, planar joint
Articulation
Coordinate frame, or just frame
5Animate a Pose
Interpolate pose vectors
Given end effector position/orientation,
Analytically solve angles
Given end effector position/orientation,
Numerically and incrementally solve angles
6Joint Representation
Single Degree of Freedom
Revolute or prismatic joint
Local axis of rotation Need to trasform to global
coordinates
Enforce joint limits?
7Joint Representation
Multiple Degrees of Freedom (DoFs)
gimbal lock
Use Axis-Angle or Quaternion representation
8Joint Representation
Note
User interface representation may not be the
same used for internal representation and
operations
9Link and Node Representation
transformation
transformation
data
geometry
10How to Represent Articulators
Joint-Link Hierarchies
Define Link data so its point of rotation is at
the origin
Rotate the link
Position it relative to its parent link in the
hierarchy
Put it through all the transformations of its
parent link
11Tree Representation
Transformations
Joint
Arc
NodePtr
Transformations
Node
DataPtr
Link
LinkPtr
12Tree Traversal
M I
T0
M T0
T1.1
M T0T1.1
T 1.2
M T0T1.1T2.1
T2.2
T2.1
M T0T1.1
M T0
M T0T1.2
M T0T1.2T2.2
13Articulated Figure Representation
14Link and Node Representation
Transformation (fixed)
Transformation (changeable)
transformation
data
geometry
15Tree Traversal
M I
M T0
M T0T1.1R1.1
M T0T1.1R1.1T2.1R2.1
M T0T1.1R01.1
M T0
M T0T1.2R1.2
M T0T1.2 R1.2 T2.2R2.2
16Tree Traversal
How do you represent more than one degree of
freedom at a joint?
- Zero length segments Between 1 DoF joints
- Multiple DoF transformation at joint
17Joint Transformations
Rotation representation matrix? Euler angles?
Quaternions?
Impose joint limits on rotations? Need complex
functions to model human figure limits
Could have translational joints, e.g.,
telescoping legs
Pose vector vector of all joint angles q1 q2 q3
qn Interpolate between poses gimbal lock
possible if 3 DoF joints
18Forward Kinematics
Define Joint-Link Hierarchy
Define sequence of keyposes with corresponding
times
For given time t, use keyposes to interpolate
pose at time t
Traverse tree hierarchy using pose vector to
supply angles
19Forward Kinematics
20Use key-values
With key-poses - entire pose vector is specified
Better to allow independent keys for each
articulation variable (or avar)
Sometimes called track-based
frames