Я использую гироскоп WiiM+ для расчета вращения.
Я интегрирую скорости поворота по осям рыскания, тангажа и крена и сохраняю их в векторе с именем angleSum.
Таким образом, для каждого показания angleSum(чтение) представляет повороты y, p и r от начальной ориентации.
Затем я использую кватернионы (с которыми я совершенно не знаком) для представления следующим образом:
q = Quaternion.createfromyawPitchRoll(angleSum.yaw, angleSum.pitch, angleSum.roll*(-1))
Но когда я поворачиваю свой wiimote на 90 градусов в каком-либо направлении и распечатываю q.x, q.y и q.z для поворота, поворот влияет на ВСЕ показания (все они показывают поворот на 90 градусов и обратно, хотя величина для двух из них меньше)
Мой вопрос очень прост: как именно я могу использовать эту структуру кватерниона для представления ориентации? Мне нужна абсолютная (или хотя бы относительная) ориентация по рысканию, тангажу и крену.
Спасибо!