rotations.h File Reference
Header file declaring functions which convert between different representations of 3D rotation.
More...
#include <dlrNumeric/quaternion.h>
#include <dlrNumeric/transform3D.h>
#include <dlrNumeric/vector3D.h>
Go to the source code of this file.
Detailed Description
Header file declaring functions which convert between different representations of 3D rotation.
Copyright (C) 2005-2007 David LaRose, dlr@cs.cmu.edu See accompanying file, LICENSE.TXT, for details.
The functions in this file deal with several different ways of representing 3D rotation, which are described here:
- Angle-Axis representation is specified by a double and a Vector3D instance. The double specifies the size of the rotation in radians. Positive numbers mean clockwise rotation as you look from the origin along the axis of rotation. Negative numbers mean counter-clockwise rotation. The Vector3D instance specifies the axis of rotation.
- Unit Quaternion representation uses a single Quaternion instance. For a given rotation, alpha, around the unit axis [x, y, z], the corresponding unit quaternion representation is Quaternion(cos(alpha/2.0), sin(alpha/2.0) * x, sin(alpha/2.0) * y, sin(alpha/2.0) * z).
- Roll-Pitch-Yaw representation specifies a 3D rotation as consecutive rotations around the three axes. Roll, pitch, and yaw are all specified in radians. The 3D rotation is obtained by first rotating to the yaw angle around the Z axis, then rotating to the pitch angle around the new Y axis, and finally rotating to the Roll angle around the X axis.
- Transform3D representation specifies a 3D rotation using a coordinate transformation matrix. Only the upper-left 3x3 sub-matrix is considered. In order to be a valid rotation matrix, the rows (and therefore columns) of this 3x3 sub-matrix must be orthonormal. Note that no attempt is made to check for this condition, or to correct for non-orthonormal matrices. If you pass an invalid rotation matrix to any of these routines, the results are undefined.
- Euler angle representation is a generalization of Roll-Pitch-Yaw representation in which the three rotations need not be around the Z, Y, and X axes. Euler angle routines allow you to explicitly set the rotation axes.
- Revision
- 1234
- Date
- 2009-11-24 18:59:41 -0500 (Tue, 24 Nov 2009)
Definition in file rotations.h.