M
M
muzhig2013-08-07 19:47:08
Do it yourself
muzhig, 2013-08-07 19:47:08

Compass and accelerometer data -> Quaternion

Friends!

Given:
B - 3-dimensional vector of magnetic induction (obtained from a magnetometer)
a - acceleration vector (at rest = gravitational acceleration vector)

Find:
quaternion of rotation relative to the Earth ( NED - X=North, Y=East, Z=Down )
(well, or a matrix - it doesn’t matter)

At the moment I know that there are 5-10 algorithms for solving this problem - QUEST (QUaternion ESTimator), FQA (Factored Quaternion Algorithm), ESOQ (EStimator of the Optimal Quaternion), ESOQ -2, FOAM (Fast Optimal Attitude Matrix), there is still a solution via SVD (singular value decomposition)

The problem is that I can't find any implementation of any of these algorithms. Moreover, apparently, all of them were implemented only in matlab, but I can’t even find the matlab code. I am sure that determining the orientation in space relative to the Earth is a typical task for any driving/flying/floating things that you, dear subscribers of the DIY hub, do/did. It's strange how hard it is to find information.

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question