Имеется кит с установленным на нем трехосевым магниторезистивным датчиком HMC5843 и также трехосевым акселерометром. Задача - определить положение устройства в пространстве. С одним датчикомзадача не решаема, хотя бы потому что невозможно определить вращение вокруг вектора ускорения (направления магнитного поля). На первый взгляд простейшая задача меня повергла в полное уныние

. Всю голову сломал. Задачу решу, если определю три угла вращения (в матрице поворота, например,
http://ru.wikipedia.org/wiki/Матрица_поворота). Только матрица поворота это прямая задача, а у меня обратная. Мои данные с датчиков можно представить как два вектора в трехмерном пространстве. Взяв за основу какое-то начальное положение нужно определить поворот плоскости (а не вектрора!), построенной на этих векторах, относительно начала координат. Но как это сделать? Определить сперва вращение одного вектора, а затем определить вращение второго относительно первого? И можно ли решить более сложную задачу - кроме положения определить направление и величину линейного ускорения устройства?