Координатная коррекция объекта в трехмерном пространстве с помощью кватерниона - PullRequest
0 голосов
/ 26 июня 2019

У меня есть объект, который находится в трехмерном пространстве. Маркер прикреплен к объекту. Маркер дает мне (X, Y, Z) объекта относительно начала координат. Маркеры также дают кватернион этой точки (A, B, C, D). Маркер на объекте не размещается в центре объекта.

Я хочу исправить координату маркера, чтобы положение маркера переводилось в центр объекта вдоль оси X начала координат. Учитывая расстояние между позицией маркера и центром объекта, это число «K».

Как мне использовать кватернионы для корректировки координаты маркера? Я действительно застрял с этим какое-то время, любое решение мне очень помогло бы. Спасибо заранее.

Используя импорт scipy.spatial.transform Поворот Я могу получить матрицу поворота, угол Эйлера или вектор поворота для заданного (X, Y, Z) маркера. На рисунке ниже показан набор точек, снятых с датчика захвата движения.

Мой код:

from scipy.spatial.transform import Rotation as R
quat=[-0.018853,0.801030,0.022920,0.597888]  #A,B,C,D quaterion of a point (x,Y,Z)
r = R.from_quat([quat])
rot_matix=r.as_dcm() #rotation matrix 
rot_vector=r.as_rotvec()

Это информация, которую я имею из значений кватерионов. https://i.stack.imgur.com/G9VsR.png

...