pyins

pyins is a Python package which provides common basic algorithms used in Inertial Navigation Systems (INS) aided by external sensors like GNSS. The package has rather limited scope and purposes, it may serve as:

  • Reasonably well written and tested code of basic algorithms in aided INS for people studying the subject

  • Modelling toolkit to verify achievable performance depending on IMU specification, test observability properties, etc.

  • For basic processing of real sensor data in case there are no better alternatives

  • As a starting reference point for developing practical aided INS algorithms

The package is not meant to achieve robust state of the art performance on real sensor data. Also it is not planned to further extend its functionality besides what’s currently implemented.

The following core features are available:

  • Synthesis of incremental and rate IMU sensors for modelling purposes

  • Strapdown INS integration algorithm

  • INS error model

  • Feedforward and feedback INS Kalman filters with customizable IMU model and set of measurements

  • Trajectory interpolation, smoothing and comparison functions

Tutorial

There is no extensive dedicated tutorial for the package. The API Reference describes available modules with some additional context information. The examples of usage in jupyter notebooks are available in Examples.

The following books are recommended to understand pyins functionality and the field in general:

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

  • P. G. Savage, “Strapdown analytics”

  • P. S. Maybeck, “Stochastic Models, Estimation and Control”, volumes 1 and 2