我有一个3D空间中的对象。标记被附加到对象上。标记给出了对象相对于原点的(X,Y,Z)。标记还给出了该点的四元数(A,B,C,D)。对象上的标记未放置在对象的中心。
我想更正标记坐标,以使标记位置沿原点的X轴平移到对象的中心。给定标记位置与物体中心之间的距离为数字“ K”。
如何使用四元数来校正标记坐标?我确实坚持了一段时间,任何解决方案都对我有很大帮助。谢谢。
使用scipy.spatial.transform import旋转我可以得到给定标记(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()
这是我从四元数值中获得的信息。