glass-lio courseLesson 1 › Reference card

Reference card · Lesson 1

IMU measurement model

Two equations, one sign, and the bug it caused in glass-lio.

Key equations

The two equations

$$ {}_{B}\tilde{\boldsymbol{\omega}}_{WB}(t) = {}_{B}\boldsymbol{\omega}_{WB}(t) + \mathbf{b}^{g}(t) + \boldsymbol{\eta}^{g}(t) \tag{27} $$
$$ {}_{B}\tilde{\mathbf{a}}(t) = \mathbf{R}_{WB}^{\top}(t)\,\big({}_{W}\mathbf{a}(t) - {}_{W}\mathbf{g}\big) + \mathbf{b}^{a}(t) + \boldsymbol{\eta}^{a}(t) \tag{28} $$

The bug, explained

$$ \tilde{\mathbf{a}} = -\mathbf{R}_{WB}^{\top}\,\mathbf{g} + \mathbf{b}^{a} $$

Practice

$$ {}_{B}\tilde{\boldsymbol{\omega}}_{WB} = {}_{B}\boldsymbol{\omega}_{WB} + \mathbf{b}^{g} + \boldsymbol{\eta}^{g} $$
$$ {}_{B}\tilde{\mathbf{a}} = \mathbf{R}_{WB}^{\top}\big({}_{W}\mathbf{a} - {}_{W}\mathbf{g}\big) + \mathbf{b}^{a} + \boldsymbol{\eta}^{a} $$

Symbols

\(\tilde{x}\)
A tilde means measured: what the sensor reports, not the truth.
\({}_{B}x,\ {}_{W}x\)
The frame a vector is expressed in: \(B\) is the body (IMU) frame, \(W\) the world frame.
\(\mathbf{R}_{WB}\)
Rotates body-frame vectors into the world, so \(\mathbf{R}_{WB}^{\top}\) takes world vectors into the body frame.
\({}_{W}\mathbf{a}\)
The sensor's true acceleration, in the world.
\({}_{W}\mathbf{g}\)
The gravity vector in the world. It points down: with \(z\) up, \(\mathbf{g} \approx [0,\,0,\,-9.81]^{\top}\,\mathrm{m/s^2}\).
\(\mathbf{b}\)
Bias: a slowly drifting offset, added in the body frame.
\(\boldsymbol{\eta}\)
White noise.

Say it at a whiteboard

“An accelerometer measures specific force, \(\mathbf{a} - \mathbf{g}\), in the body frame. At rest you only ever see \(-\mathbf{R}^{\top}\mathbf{g} + \mathbf{b}^{a}\) as one sum, so a static initialisation can't separate gravity from the accelerometer bias. You constrain gravity's magnitude and use sufficiently varied motion and external motion measurements to separate bias from gravity and attitude.”