如何使用矩阵相对于另一个向量旋转向量的参考系?

时间:2010-09-24 13:28:52

标签: language-agnostic 3d matrix rotation vector

真实案例(帮助理解问题)

我正在构建一个可以绕其所有轴(x,y,z)自由旋转的设备,并配备:

  • 一个加速度计(A),它给我一个指向地球中心的矢量(Va)
  • 3D 磁力计(M),它给出了地球磁场的方向(Vm)

这两个向量共享相同的参考系统(x,y,z),但我感兴趣的是指向相对于地球表面的北方的向量 [想象一下手持式罗盘:我想找到针应该指向的位置。

This video 显示的“球形指南针”与我的设备应以电子方式复制的行为几乎完全相同。

编码问题

我做了一些研究,在我看来,我应该使用 3D rotation matrices 执行以下两个步骤:

  1. 将Vm的参考系统从R旋转到R',这样y'将与Va平行,
  2. “展平”Vm向量将其y'组件设置为0
  3. 不幸的是,我仍然对如何以具体方式进行感到困惑(我以前没有使用矢量和矩阵的经验)。令我困惑的一件事是,我可以谷歌的大多数材料,在角度方面进行讨论,但我从两个传感器接收的数据的形式为V(Vx,Vy,Vz),其中Vz,Vy和Vz是参考系统中V的组成部分。

    所以我的问题归结为:我必须使用什么矩阵来执行第1步的转换?

    提前感谢您的时间和专业知识。

2 个答案:

答案 0 :(得分:1)

想到一个更简单的答案就是使用交叉产品。

你可以找到东方的V e = V a ⨉V m 然后北方与V n = V a ⨉V e

(这可能实际上是南方,没有通过灵活思考)

答案 1 :(得分:0)

我不完全确定你想要做什么,但我会假设:

从某个参考点开始,单位向量为i =(1,0,0)j =(0,1,0)k =(0,0,1)

我认为你只想让你与你正在获得的'a'平行

所以a会有一些值(x,y,z),你会想要找到角度theta和phi,其中θ给出角度a偏离xz平面,phi是偏离xy-然后平面使用旋转矩阵R_x(θ)和R_z(phi)

我很抱歉,如果这不太清楚,但我会用一两张照片做更好的解释