Mayitzin/ahrs
Attitude and Heading Reference Systems in Python
What it solves
It provides a collection of algorithms to estimate the orientation (attitude and heading) of mobile systems, such as aircraft, wearables, and automated transportation, using sensor data from gyroscopes, accelerometers, and magnetometers.
How it works
The library implements two primary approaches to orientation estimation:
- Wahba's Problem (WP): Finds a rotation matrix by comparing measurement vectors (like gravity and geomagnetic vectors) against reference vectors.
- Dead Reckoning (DR): Integrates measured local angular velocity to estimate the sensor's angular position over time.
It includes a wide variety of estimators, including the Madgwick, Mahony, Extended Kalman Filter (EKF), and Unscented Kalman Filter (UKF), which can be configured with specific sensor inputs and tuning parameters.
Who it’s for
It is designed for developers and students focusing on fast prototyping, education, and testing of orientation estimation algorithms in pure Python.
Highlights
- Extensive Algorithm Library: Supports a broad range of estimators (e.g., QUEST, TRIAD, UKF, FKF).
- Pure Python: Built with NumPy for minimal dependencies.
- Synthetic Data Generation: Includes a
sensorsclass to generate synthetic MARG sensor data for testing. - Geodetic Analysis: Provides tools for geodetic calculations and coordinate system transformations.
- Educational Focus: Code is refactored to align with original research articles, including in-code references to equations.
Related
- Project
- Project
- Project
- Project