Forward kinematics

Download Report

Transcript Forward kinematics

Forward Kinematics
Rick Parent - CIS682
Specifying a Pose
Q1
Q2
Q3
Rick Parent - CIS682
Forward 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
Rick Parent - CIS682
Forward Kinematics
End effector
Manipulator
Revolute joint, ball & socket, hinge joint
Prismatic joint, planar joint
Articulation
Coordinate frame, or just frame
Rick Parent - CIS682
Animate a Pose
Interpolate pose vectors
Given end effector position/orientation,
Analytically solve angles
Given end effector position/orientation,
Numerically and incrementally solve angles
Rick Parent - CIS682
Joint Representation
Single Degree of Freedom
Revolute or prismatic joint
q
Local axis of rotation
Need to trasform to global coordinates
Enforce joint limits?
Rick Parent - CIS682
Joint Representation
Multiple Degrees of Freedom (DoFs)
gimbal lock
q
y
Use
Axis-Angle
or
Quaternion
representation
w
Rick Parent - CIS682
Joint Representation
Note
q
y
User interface representation
may not be the same used for
internal representation and
operations
w
Rick Parent - CIS682
Link and Node Representation
transformation
data
transformation
geometry
Rick Parent - CIS682
How 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
Rick Parent - CIS682
Tree Representation
Arc
Transformations
NodePtr
Joint
Transformations
Node
DataPtr
Link
LinkPtr[ ]
Rick Parent - CIS682
Tree Traversal
M=I
T0
T1.1
M = T0
T 1.2
M = T0*T1.1
M = T0*T1.1*T2.1
T2.1
T2.2
M = T0*T1.1
M = T0
M = T0*T1.2
M = T0*T1.2*T2.2
Rick Parent - CIS682
Articulated Figure Representation
Rick Parent - CIS682
Link and Node Representation
Transformation
(fixed)
Transformation
(changeable)
data
transformation
geometry
Rick Parent - CIS682
Tree Traversal
M=I
T0
T1.1
R1.1
M = T0
T1.2
R1.2
M = T0*T1.1*R1.1
M = T0*T1.1*R1.1*T2.1*R2.1
M = T0*T1.1*R01.1
T2.1
R2.1
T2.2
R2.2
M = T0
M = T0*T1.2*R1.2
M = T0*T1.2 *R1.2 *T2.2*R2.2
Rick Parent - CIS682
Tree Traversal
T0
T1.1
R1.1
T1.2
R1.2
T2.1
R2.1
T2.2
R2.2
How do you
represent more than
one degree of
freedom at a joint?
a) Zero length segments
Between 1 DoF joints
b) Multiple DoF
transformation at joint
Rick Parent - CIS682
Joint 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
Rick Parent - CIS682
Forward 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
Rick Parent - CIS682
Forward Kinematics
Rick Parent - CIS682
Use 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
value
frames
Rick Parent - CIS682