We use a 6-axis inertial measurement unit (IMU) to propagate the inertial navigation system (INS), which provides measurements of the local rotational velocity (angular rate) and local translational acceleration :
where and are the true rotational velocity and translational acceleration in the IMU local frame , and are the gyroscope and accelerometer biases, and are white Gaussian noise, is the gravity expressed in the global frame (noting that the gravity is slightly different on different locations of the globe), and is the rotation matrix from global to IMU local frame.
A more complete and complex model which also takes into account the intrinsic properties of the IMU can be considered. MEMS IMU typically have non-perfect readings which would invalidate the above equations. We can define additional sensor frames and which can be related back to the "ideal" inertial frame that we wish to estimate. Thus we can define the following:
where and are invertible matrices which represent the scale imperfection and axis misalignment for and , respectively. and denote the rotation from the base "inertial" frame to the gyroscope and acceleration sensor frames. denotes the gravity sensitivity, which represents the effects of gravity to the gyroscope readings due to its inherent inertia. Note that this does not take into account the translation between the gyroscope and accelerometer frames, since it is negligible for most MEMS IMUs (see [29][38]).
where is the unit quaternion representing the rotation global to IMU frame, is the position of IMU in global frame, and is the velocity of IMU in global frame. We will often write time as a subscript of describing the state of IMU at the time for notation clarity (e.g., ). In order to define the IMU error state, the standard additive error definition is employed for the position, velocity, and biases, while we use the quaternion error state with a left quaternion multiplicative error :
where is the rotation axis and is the rotation angle. For small rotation, the error angle vector is approximated by as the error vector about the three orientation axes. The total IMU error state thus is defined as the following 15x1 (not 16x1) vector:
where we have modeled the gyroscope and accelerometer biases as random walk and thus their time derivatives are white Gaussian. Note that the above kinematics have been defined in terms of the true acceleration and angular velocities which can be computed as a function of the sensor measurements and state.
Given the continuous-time and , in the time interval , and their estimates, i.e. after taking the expectation, and , we can define the solutions to the above IMU kinematics differential equation.
where , , is the matrix exponential [8], and vectors are evaluated at their subscript timesteps (e.g. ). The biases are corrupted by random walk noises and that are zero-mean white Gaussians. We have the following integration components:
Having defined the general equations for state evolution, we can now look into how to actually perform these integrations. The following two documents detail two different ways to both evolve the state forward and its covariance. The first is a simple discrete state evolution model without any IMU intrinsics and can be helpful to understand the general flow of derivation. The second is the full continuous-time integration (with constant measurement assumption) of the mean and state covariance.
Discrete Propagation — Simplified discrete mean and covariance propagation derivations
Analytical Propagation — Analytical mean and covariance propagation with IMU intrinsics derivations
For general background on how to formulate the evolution of states over time we can make a few recommendations. For classical linear systems we can recommend Maybeck's [31] Volume 1 and Bar-Shalom et al. [2] discussion of estimator consistency. For background on Kalman filtering and propagation with similar notation to ours we can recommend Farrell's [14] aided navigation book. Finally, for the inertial problem formulation and equations Chatfield's [5] fundamental remains foundational.
Tab / T to search, Esc to close
…
Search for symbols, directories, files, pages or
modules. You can omit any prefix from the symbol or file path; adding a
: or / suffix lists all members of given symbol or
directory.
Use ↓
/ ↑ to navigate through the list,
Enter to go.
Tab autocompletes common prefix, you can
copy a link to the result using ⌘L while ⌘M produces a Markdown link.