Attitude Estimator is a generic platform-independent C++ library that implements an IMU sensor fusion algorithm. Up to 3-axis gyroscope, accelerometer and magnetometer data can be processed into a full 3D quaternion orientation estimate, with the use of a nonlinear Passive Complementary Filter. The library is targeted at robotic applications, but is by no means limited to this. Features of the estimator include gyro bias estimation, transient quick learning, multiple estimation algorithms, tuneable estimator parameters, and near-global stability backed by theoretical analysis.

Great emphasis has been placed on having a very efficient, yet totally numerically and algorithmically robust implementation of the filter. The code size has also been kept to a minimum, and has been extremely well-commented. The programmatic interface has also been made as easy as possible. Please refer to the extensive documentation of the library for more information on its capabilities and usage caveats.

Features

  • Small and highly efficient performance-oriented cross-platform C++ library
  • Implements fusion of IMU sensor data (3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer), forming a reliable 3D attitude (orientation) estimate in the form of a quaternion
  • Able to dynamically deal with missing or non-present sensor data, even if there is theoretically no longer enough information to reconstruct a full 3D attitude
  • Gyro bias estimation, tuneable algorithm parameters, interface to provide state/system priors if desired
  • Multiple fallback estimation algorithms to choose from, including the ZYX yaw method, fused yaw method, and absolute fused yaw method
  • Transient quick learning phase for fast initial settling of the attitude estimate
  • Guaranteed numerical and algorithmic stability, with much effort having gone into ensuring the complete robustness of the implementation
  • Independent code with no external dependencies other than certain maths functions of the C++ Standard Library
  • Documented using the Doxygen documentation generation tool, including a code sample and a discussion of all usage caveats
  • Extremely well-commented library source code detailing and discussing the implementation details
  • Tried and tested by the author in simulation and on various robotic platforms

Project Samples

Project Activity

See All Activity >

License

BSD License

Follow Attitude Estimator

Attitude Estimator Web Site

You Might Also Like
Network Performance Monitoring | Statseeker Icon
Network Performance Monitoring | Statseeker

Statseeker is a powerful network performance monitoring solution for businesses

Using just a single server or virtual machine, Statseeker can be up and running within minutes, and discovering your entire network in less than an hour, without any significant effect on your bandwidth availability.
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Attitude Estimator!

Additional Project Details

Intended Audience

Information Technology, Science/Research, Developers, Other Audience, Engineering

Programming Language

C++

Related Categories

C++ Scientific Engineering, C++ Robotics Software, C++ Libraries

Registered

2014-05-15