旋转由3D中的两个点定义的直线

时间:2017-04-10 12:16:05

标签: math vector geometry

我已经编辑了这个问题,以便进一步明确,并且由于下面的一些答案。

我有一个电磁运动跟踪器跟踪传感器并给我一个全球空间点(X,Y,Z)。它还跟踪传感器的旋转并给出欧拉角(Yaw,Pitch,Roll)。

传感器连接在棒球帽上的刚体上,棒球帽位于人的头上。但是,我希望跟踪特定面部特征(例如鼻子)的位置,我从运动跟踪器传感器的位置和方向推断出该特征。

我估计了运动跟踪器和我想要跟踪的面部特征之间的空间偏移。我通过简单地测量沿X,Y和Z轴的偏移来完成此操作。

根据之前对这个问题的回答,我根据运动追踪器给我的欧拉角创建了一个旋转矩阵。但是,我不知道应该如何使用这个旋转矩阵,传感器在全局空间中的位置以及传感器和鼻子之间的空间偏移,以便在全球空间中给出鼻子的位置。

1 个答案:

答案 0 :(得分:0)

传感器将为您提供一个旋转矩阵(通过欧拉角)和一个位置(应该是旋转中心的位置)。

无论哪个物品刚性地固定在传感器上,例如鼻子,都会经历相同的运动。然后知道鼻子和传感器的相对坐标,就可以得到关系

Q = R.q + P

其中R是旋转矩阵,P是传感器的位置矢量,q是鼻子的相对坐标。

请注意,旋转矩阵和角度之间的关系可以使用以下公式之一计算:https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix。 (您需要仔细阅读该文章,以确保您的案例属于12种可能性。)

原则上,您可以从传感器的读数中确定RP,但是您缺少坐标q。有几种方法:

  1. 通过测量位于旋转中心并正确对齐的虚轴上的距离,明确确定这些坐标。

  2. 您确定与已知QR对应的鼻子的绝对坐标P;然后qR'(Q - P)给出,其中R'表示R的转置(也是其反转)。要获得Q,您只需将传感器中心移至鼻子而不移动头部。