pyins.measurements

Measurement models for navigation Kalman filters.

In context of inertial navigation measurements are obtained from sensors other than IMU. In a Kalman filter a measurement is processed by forming a difference between the predicted and the measured vectors and linearly relating it to the error vector:

z = Z_ins - Z = H @ x + v

Where

  • Z - measured vector

  • Z_ins - predicted vector using the current INS state

  • z - innovation vector

  • x - error state vector

  • H - measurement Jacobian

  • v - noise vector, typically assumed to have zero mean and known variance

The module provides a base class Measurement which abstracts this concept and implementations for common measurements.

Refer to [1] and [2] for the discussion of measurements in navigation and in Kalman filtering in general.

Classes

Measurement(data)

Base class for measurement models.

Position(data, sd[, imu_to_antenna_b])

Measurement of latitude, longitude and altitude (from GNSS or any other source).

NedVelocity(data, sd[, imu_to_antenna_b])

Measurement of velocity resolved in NED frame (from GNSS or any other source).

BodyVelocity(data, sd)

Measurement of velocity resolved in body frame (from odometry, radar, etc.)

References

[1]

P. D. Groves, “Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems”, 2nd edition

[2]

P. S. Maybeck, “Stochastic Models, Estimation and Control”, volume 1