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