Jafar
Quaternions in RTSLAM

We specify a quaternion with a unit, column 4-vector

with [a] the real part and [b c d]' the imaginary parts. This is equivalent to writing the true quaternion in quaternion space

with

NOTE: The products performed in quaternion space are indicated with a double asterisk as in (q1**q2). Matrix products are standard (A*v).

Quaternions are used for encoding rotations and orientations with the following convention:

1. Consider a world or global frame W and a local frame F.

2. q is used to encode the orientation of frame F wrt frame W. It may be written as q_wf.

3. Consider now a vector v = vx.i + vy.j + vz.k in quaternion space.

4. We name v_f and v_w the coordinates of v in frames W and F.

5. Then, if q_fw = (q_wf)' = a - bi - cj - dk is the conjugate of q_wf, we have

6. This is equivalent to the linear, rotation matrix forms

with

Some interesting functions involving quaternions are:

These functions are equipped with Jacobian computation for their use in algorithms requiring linearization, such as EKF.

See the documentation of quatTools.hpp for a full list of functions.

See the Function Jacobians page for information about Jacobian manipulation in RTSLAM.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:30 for Jafar by doxygen 1.7.6.1
LAAS-CNRS