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
The All-in-One Commerce Platform for Businesses - Shopify Icon
The All-in-One Commerce Platform for Businesses - Shopify

Shopify offers plans for anyone that wants to sell products online and build an ecommerce store, small to mid-sized businesses as well as enterprise

Shopify is a leading all-in-one commerce platform that enables businesses to start, build, and grow their online and physical stores. It offers tools to create customized websites, manage inventory, process payments, and sell across multiple channels including online, in-person, wholesale, and global markets. The platform includes integrated marketing tools, analytics, and customer engagement features to help merchants reach and retain customers. Shopify supports thousands of third-party apps and offers developer-friendly APIs for custom solutions. With world-class checkout technology, Shopify powers over 150 million high-intent shoppers worldwide. Its reliable, scalable infrastructure ensures fast performance and seamless operations at any business size.
Learn More
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

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

Programming Language

C++

Related Categories

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

Registered

2014-05-15