У меня есть объект, который находится в трехмерном пространстве. Маркер прикреплен к объекту. Маркер дает мне (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()
Это информация, которую я имею из значений кватерионов.