Robotics Kinematics and Dynamics
Robotics Kinematics and Dynamics
Robotics Kinematics and Dynamics
Rotation Matrix
A rotation matrix describes the relative orientation of two such
frames. The columns of this 3 3 matrix consist of the unit vectors
along the axes of one frame, relative to the other, reference frame.
Thus, the relative orientation of a frame
with respect to a
reference frame
, of a point
Properties
Some of the properties of the rotation matrix that may be of practical value, are:
1. The column vectors of
are normal to each other.
2. The length of the column vectors of
equals 1.
3. A rotation matrix is a non-minimal description of a rigid body's orientation. That is, it uses nine numbers to
represent an orientation instead of just three. (The two above properties correspond to six relations between the
nine matrix elements. Hence, only three of them are independent.) Non-minimal representations often have some
numerical advantages, though, as they do not exhibit coordinate singularities.
4. Since
is orthonormal,
Rotation by an angle
Compound Rotations
Compound rotations are found by multiplication of the different elementary rotation matrices.
The matrix corresponding to a set of rotations about moving axes can be found by postmultiplying the rotation
matrices, thus multiplying them in the the same order in which the rotations take place. The rotation matrix formed
by a rotation by an angle about the z-axis followed by a rotation by an angle
about the moved y-axis, is then
given by:
The composition of rotations about fixed axes, on the other hand, is found by premultiplying the different
elementary rotation matrices.
Inverse Rotations
The inverse of a single rotation about a frame axis is a rotation by the negative of the rotation angle about the same
axis:
The inverse of a compound rotation follows from the inverse of the matrix product:
MATLAB Example
Note: These examples require the Robotics Toolbox to be properly installed.
theta = pi/2;
T_x = rotx(theta); % Returns a 4x4 pose matrix. The upper-left 3x3 submatrix is the
% rotation matrix representing a rotation by theta about the x-axis.
R_x = tr2rot(T_x); % Returns the 3x3 rotation matrix corresponding with T_x.
T_y = roty(theta); % A rotation about the y-axis.
T_z = rotz(theta); % A rotation about the z-axis.
Euler Angles
Contrary to the rotation matrix, Euler angles are a minimal representation (a set of just three numbers, that is) of
relative orientation. This set of three angles describes a sequence of rotations about the axes of a moving reference
frame. There are, however, many (12, to be exact) sets that describe the same orientation: different combinations of
axes (e.g. ZXZ, ZYZ, and so on) lead to different Euler angles. Euler angles are often used for the description of the
orientation of the wrist-like end-effectors of many serial manipulator robots.
Note: Identical axes should not be in consecutive places (e.g. ZZX). Also, the range of the Euler angles should be
limited in order to avoid different angles for the same orientation. E.g.: for the case of ZYZ Euler angles, the first
rotation about the z-axis should be within
. The second rotation, about the moved y-axis, has a range of
. The last rotation, about the moved z-axis, has a range of
Forward Mapping
Forward mapping, or finding the orientation of the end-effector with respect to the base frame, follows from the
composition of rotations about moving axes. For a rotation by an angle about the z-axis, followed by a rotation by
an angle about the moved x-axis, and a final rotation by an angle about the moved z-axis, the resulting rotation
matrix is:
After writing out:
stands for
stands for
, and so on.
Inverse Mapping
In order to drive the end-effector, the inverse problem must be solved: given a certain orientation matrix, which are
the Euler angles that accomplish this orientation?
For the above case, the Euler angles
and
Coordinate Singularities
In the above example, a coordinate singularity exists for
conditioned for small values of
: the first and last equaton become undefined. This corresponds with an alignment
of the first and last axes of the end-effector. The occurrence of a coordinate singularity involves the loss of a degree
of freedom: in the case of the above example, small rotations about the y-axis require impossibly large rotations
about the x- and z-axes.
No minimal representation of orientation can globally describe all orientations without coordinate singularities
occurring.
Roll-Pitch-Yaw Angles
The orientation of a rigid body can equally well be described by three consecutive rotations about fixed axes. This
leads to a notation with Roll-Pitch-Yaw (RPY) angles.
Forward Mapping
The forward mapping of RPY angles to a rotation matrix similar to that of Euler angles. Since the frame now rotates
about fixed axes instead of moving axes, the order in which the different rotation matrices are multiplied is inversed:
Inverse Mapping
The inverse relationships are found from inspection of the rotation matrix above:
Note: The above equations are badly numerically conditioned for values of
near
and
Unit Quaternions
Unit quaternions (quaternions of which the absolute value equals 1) are another representation of orientation. They
can be seen as a compromise between the advantages and disadvantages of rotation matrices and Euler angle sets.
Homogeneous Transform
The notations above describe only relative orientation. The coordinates of a point, relative to a frame
and translated with respect to a reference frame
, rotated
This can be compacted into the form of a homogeneous transformation matrix or pose (matrix). It is defined as
follows:
, is described by the
rotation matrix
.
is, thus, the representation of a frame in three-dimensional space. If the coordinates of a point
respect to a frame
Note that the above vectors are extended with a fourth coordinate equal to one: they're made homogeneous.
As was the case with rotation matrices, homogeneous transformation matrices can be interpreted in an active
("displacement"), and a passive ("pose") manner. It is also a non-minimal representation of a pose, that does not
suffer from coordinate singularities.
Compound Poses
If the pose of a frame
the resulting pose
is known, relative to
is found as follows:
MATLAB Example
x = 1;
y = 1.3;
z = 0.4;
T = transl(x,y,z); % Returns the pose matrix corresponding with a translation over
% the vector (x, y, z)'.
Here,
and
and
License
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/