Skip to content

Common Transformation Conventions

tkazik edited this page Sep 15, 2020 · 2 revisions

In this document we present common (and suggested) conventions for representing robot poses as transformations (adapted from aslam_cv2 wiki).

The diagrams below specify our notational conventions for vector quantities, rotations, transformations, and points. A coding example with coding standards is at the bottom of the page.

Vector quantities

Rotation matrices

Transformations and points

///
/// \brief A frame transformation example appending an odometric transform onto a robot pose
///
/// Coordinate frames:
///   - W : the world coordinate frame
///   - B : the robot body coordinate frame at time k
///
/// @param T_W_Bk  The robot pose at time k.
/// @param T_Bk_Bkp1 The odometric transform from odometry between time k and time k 1
/// @param out_T_W_Bkp1 The robot pose at time k 1
void frameTransformationExample(const Transformation& T_W_Bk, 
                                const Transformation& T_Bk_Bkp1, 
                                Transformation* out_T_W_Bkp1) {
//
}

Because we are using capital letters for the frame tags, we will reserve R and T as special values that should not be used as frame tags. R will represent rotation matrices (R_A_B) and T will represent transformation matrices (T_A_B).

Link to Paul Furgale's workshop at ICRA14 including great & funny presentation: Here

Clone this wiki locally