Like any field with a big body of knowledge, robotics has its own jargon that is ever evolving and takes practice to get used to. Also, some concepts are close to each other, yet different, and they tend to be more easily confused. The goal of this page is to act like a cheat sheet, stressing the differences between concepts and giving you the pointers to dig deeper.
Lexicon
Let us first look at the most important concepts.
- Configuration:
- A vector q of the configuration space, that is, a
vector of generalized coordinates (a.k.a. joint coordinates) that
characterizes the positions of all points in the multi-body model of our
robot.
- Orientation:
- The angular coordinates of a rigid body in space. Not exactly the same
thing as a rotation, although there is an isomorphism between rotations and
orientations (similarly to the isomorphism between positions and
translations). Rotation matrices are one way to represent orientation,
others are listed below.
- Pose:
- Both position and orientation of a rigid body. Not exactly the same thing
as a transformation, although there is an isomorphism between poses and
their transformation group.
- Position:
- The linear coordinates p∈R3 of a body in space.
Not exactly the same thing as a translation, although there is an
isomorphism between the Euclidean space R3 and its
translation group.
- Rotation:
- A transformation R∈SO(3) that acts vectors e∈R3 and preserves their lengths and the angles between them. The
rotation matrix RAB represents equivalently the orientation
of frame B in frame A or the rotation R:Be↦Ae.
- Translation:
- A transformation t:R3→R3 that maps the
position p of a rigid body to a new position t(p).
- Transform:
- Shorthand for a Direct isometry T∈SE(3). Due to the bijection
between Poses and SE(3), it is common to read "the transform of a
rigid body", although more precise expressions are "the pose of a rigid
body" and "the transform from frame A to frame B".
Full package
Here comes a wider list of expressions you will find in the literature. Follow the links or scroll down for extra info on each:
- Affine transformation:
- A geometric transformation A:R3→R3 that
preserves lines and parallelism. Direct isometries SE(3) used to
represent the Pose of a rigid body are, in particular, affine
transformations. Affine transformations are conveniently represented by
4×4 matrices of Homogenous coordinates.
- Attitude:
- Synonym for orientation, this word is more common in aeronautics such as in
attitude and heading reference system.
- Body:
- Shorthand for Rigid body.
- Direct isometry:
- A geometric transformation T∈SE(3) that preserves distances and
handedness. Direct isometries form a mathematical group SE(3)
called the special Euclidean group. They are the most commonly used
representation for the Pose of rigid bodies.
- Displacement:
- Synonym for Direct isometry.
- Heading:
- A vector that hints at the direction of motion, especially for systems such
as cars or humands that have a preferred direction of motion (forward). For
these two, a heading vector can be any vector in the intersection between
the sagittal plane and
median plane.
- Homogeneous coordinates:
- Convenient way to represent
an Affine transformation as a 4×4 matrix.
- Joint:
- Connection between two rigid bodies that constrains their relative degree
of freedom. The most common in robotics is the revolute joint actuated by a servomotor.
- Joint coordinates:
- Synonym for Configuration. Sometimes used to distinguish actuated
coordinates (e.g. a robot's joints) from unactuated degrees of freedom
(e.g. the floating base of a legged robot).
- Link:
- Rigid body of a robot, connected to at least one Joint.
- Transformation:
- In general, this expression may refer to any geometric transformation, for example an
Affine transformation. In robotics, this expression is generally used as
a shorthand for a Direct isometry T∈SE(3).
Representing orientation
Because all points on a rigid body hold, by definition, the same relative positions between each other, we can describe them all with just six numbers: the position of any one of them, and the three degrees of freedom of the body's orientation. There are several ways to represent orientations. Three common ones are:
- Euler angles: only three angles, but tricky to work with because of the gimbal lock and the many different conventions (intrinsic or extrinsic rotations? upward or downward z-axis?)
- Unit quaternions: four numbers, better behaved than Euler angles with only one convention to figure out (are the coordinates ordered as [w x y z] or [x y z w]?).
- Rotation matrices: nine numbers, no confusion regarding conventions, applies to position coordinates by direct matrix product.
It is best practice to avoid using Euler angles in software (colorful experimental and bug-hunting stories abound). In legged robotics, the most common convention is roll-pitch-yaw convention with upward z-axis. It corresponds to intrinsic Z-Y-X angles, or equivalently extrinsic x-y-z angles: first roll around the fixed x-axis of the parent frame, then pitch around the fixed y-axis of the parent frame, finally yaw around the fixed z-axis of the parent frame.
To go further, check out e.g. Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors by James Diebel.
Discussion
Feel free to post a comment by e-mail using the form below. Your e-mail address will not be disclosed.