Skip to content

Gloassary

Acronyms

ENU
East–North–Up: \(+x\)=East, \(+y\)=North, \(+z\)=Up. We use ENU as the convention for the global-frame, \(G\).
FLU
Forward-Left-Up: \(+x\)=Forward, \(+y\)=Left, \(+z\)=Up. We use FLU as the convention for the body frame, \(B\).

Reference Frames

body frame, \(B\)
The body frame, with origin \(O_B\) and basis vectors \((\mathbf{e}_{B,1}, \mathbf{e}_{B,2}, \mathbf{e}_{B,3})\), is the right-handed orthonormal coordinate frame rigidly attached to the body. We collocate this frame with the IMU.
IMU frame, \(I\)
The IMU frame is identical to the body frame. For simplicity, we will use the body frame throughout our document wherever the IMU frame is applicable (i.e., for math involving IMU-reported vectors).
global frame, \(G\)
The global frame, with origin \(O_G\) and basis vectors \((\mathbf{e}_{G,1}, \mathbf{e}_{G,2}, \mathbf{e}_{G,3})\), is the right-handed orthonormal coordinate frame (which we will treat as inertial) in which we express the pose of the body frame. This frame, which will be an ENU frame, serves as the project's global reference frame.
gravity-aligned frame, \(A\)
The gravity-aligned frame, with origin \(O_A\) and basis vectors \((\mathbf{e}_{A,1}, \mathbf{e}_{A,2}, \mathbf{e}_{A,3})\), is the right-handed orthonormal coordinate frame whose \(+z\) axis points up; its yaw is arbitrary and not map-aligned.

Points

\(O_B\)
The origin of the body frame.
\(O_G\)
The origin of the global frame.

Vectors, displacement

Vectors made from the difference between two points. Exception: When the point corresponding to the tail is the origin, we will call the vector a position vector.

Under coordinate transformation, only rotations are allowed on (make sense for) these vectors.

All vectors from this section that might be considered displacement vectors belong under position vectors under our definitions.

Vectors, position

Vectors made from the difference of two points where the point corresponding to the tail is the origin.

Under coordinate transformation, translations and rotations are allowed on (make sense for) these vectors. I.e., a translation term will appear when we a coordinate transformation changes the origin we are measuring from.

\(p_{GB}\)
The vector \( p_{GB} \in \mathbb{R}^3 \) is the position of \(O_B\) expressed in global-frame coordinates.

Vectors, Newtonian vectors that only rotate under coordinate transformations

Newtonian force vectors and kinematics vectors, but not vectors that involve moments (where in general both rotation and translation would apply under coordinate transformations).

Under coordinate transformations, only rotations are allowed on (make sense for) these vectors.

\(\omega_B\)
gyroscope angular velocity, expressed in \(B\).
\(f_B\)
accelerometer specific force, expressed in \(B\).
\(g_G\)
gravity vector, expressed in \(G\).
\(v_G\)
body velocity (state), expressed in \(G\).
\(a_G\)
Kinematic acceleration (linear acceleration) of the IMU frame (body frame) origin, expressed in the global frame.

Quaternions

Quaternion Multiplication

To define quaternion multiplication we will use \(w_1,w_2,w_3,x_1,y_1,z_1, x_2,y_2,z_2 \in \mathbb{R}^1\) and \(\mathbf{v}_1,\mathbf{v}_2,\mathbf{v}_3 \in \mathbb{R}^3\).

Let quaternion \(q_1=(w_1,x_1,y_1,z_1)=(w_1,\mathbf{v}_1)\) and quaternion \(q_2=(w_2,x_2,y_2,z_2)=(w_2,\mathbf{v}_2)\).

And let \(\mathbf{v}_1\cdot\mathbf{v}_2\) and \(\mathbf{v}_1\times\mathbf{v}_2\) represent the standard dot product and cross product, respectively, on \(\mathbb{R}^3\).

We will use the following (Hamilton) convention for quaternion multiplication:

\[ q_3 = q_1 \otimes q_2=\Big(w_1w_2-\mathbf{v}_1\cdot\mathbf{v}_2,\;\; w_1\mathbf{v}_2+w_2\mathbf{v}_1+\mathbf{v}_1\times\mathbf{v}_2\Big). \]

Equivalently,

\[ q_3 = q_1 \otimes q_2 = (w_3,\mathbf{v}_3) \]

with

\[ w_3 = w_1w_2-\mathbf{v}_1\cdot\mathbf{v}_2,\quad \mathbf{v}_3 = w_1\mathbf{v}_2+w_2\mathbf{v}_1+\mathbf{v}_1\times\mathbf{v}_2. \]

Note that we aren't using the Shuster/JPL quaternion multiplication convention where the last term in the sum making the vector component of the product would be subtracted from the first two terms as in: \(... - \mathbf{v}_1\times\mathbf{v}_2\) rather than added: \(... + \mathbf{v}_1\times\mathbf{v}_2\) as we have done here.

Quaternion Rotation

To demonstrate the two methods we will use to rotate a vector with a quaternion, we will use a unit quaternion \(q_{GB} = (w_{GB},x_{GB},y_{GB},z_{GB})\) --or, for simplicity, \(q_{GB} = (w_{GB},x,y,z)\)-- to do a passive rotation on \(v_B\in\mathbb{R}^3\) to transform it into \(v_G\in\mathbb{R}^3\). Note that for a unit quaternion, \(q_{GB}^{-1} = (w,-x,-y,-z)\).

Method One: Direct action via conjugation

Turn the vector into a pure quaternion \((0,v_B)\), then

\[ (0,v_G) \;=\; q_{GB}\ \otimes\ (0,v_B)\ \otimes\ q_{GB}^{-1}, \]

and take the vector part as \(v_G\).

Method Two: Convert the quaternion into a rotation matrix, then multiply

\[ v_G = R(q_{GB})\,v_B, \]

with

\[ R(q_{GB})= \begin{bmatrix} 1-2(y^2+z^2) & 2(xy-wz) & 2(xz+wy)\\ 2(xy+wz) & 1-2(x^2+z^2) & 2(yz-wx)\\ 2(xz-wy) & 2(yz+wx) & 1-2(x^2+y^2) \end{bmatrix}. \]
Quaternion composition order

An immediate consequence of our Quaternion Rotation and Quaternion Multiplication definitions is that if \(q_1\) represents rotation 1 and \(q_2\) represents rotation 2, then the combined rotation

\[ q = q_2 \otimes q_1 \]

is rotation 1 followed by rotation 2. I.e., the rightmost rotation applies first, matching the matrix composition \(R_2 \times R_1\).

Matrices

\(R_{GB}\)
The [passive] rotation matrix \(R_{GB}\in \mathrm{SO}(3)\) that turns a vector expressed in body-frame coordinates into a vector expressed in global-frame coordinates. In other words, \(R_{GB}\) is the change-of-basis matrix from the body frame to the global frame:
\[ v_G = R_{GB}\,v_B \]

Terms

body
The rigid vehicle/robot body whose state we estimate.
gravity

The magnitude of gravitational acceleration near the surface of the Earth is \(g \approx 9.81\ \text{m/s}^2\). In our global frame, “up” is \(+z\), so gravitational acceleration points down, bringing in the negative sign:

\[ g_G=\begin{bmatrix}0\\0\\-g\end{bmatrix}. \]

In the gravity-aligned frame \(A\), “up” is also \(+z\), so gravitational acceleration points downward along the negative \(z\)-axis:

\[ g_A=\begin{bmatrix}0\\0\\-g\end{bmatrix}. \]
pose
The position and orientation of the body frame relative to the global frame, notated as \(p_{GB}\) and \(R_{GB}\), respectively.