为什么这两个代表四元数和欧拉角的旋转矩阵不一样?

时间:2013-06-25 12:14:22

标签: rotation geometry rotational-matrices euler-angles quaternions

以下是关于单位四元数{q0,q1,q2,q3}以角度α旋转的表示:

q_0=cos(alpha/2)
q_1=sin(alpha/2)cos(beta_x)
q_2=sin(alpha/2)cos(beta_y)
q_3=sin(alpha/2)cos(beta_z)

这里,beta_x,beta_y和beta_z是单位四元数的方向余弦,即我正在旋转的轴。

与此对应的旋转矩阵如下:我们称之为 R1

 1- 2(q_2^2 + q_3^2)   2(q_1 q_2 - q_0 q_3)    2(q_0 q_2 + q_1 q_3) 
2(q_1 q_2 + q_0 q_3)   1 - 2(q_1^2 + q_3^2)    2(q_2 q_3 - q_0 q_1) 
2(q_1 q_3 - q_0 q_2)   2( q_0 q_1 + q_2 q_3)   1 - 2(q_1^2 + q_2^2)

现在,假设我的旋转矩阵是用欧拉角代替的:让我们称之为 R2

enter image description here

R2首先围绕x轴旋转矢量,然后围绕y轴旋转θ,最后围绕z轴旋转psi。现在,假设我的旋转轴在y-z平面上。这意味着围绕x轴没有旋转,只有y轴和z轴周围的旋转组合。 这意味着phi为零,这意味着 R2(3,2)为零。

或者,这也意味着cos(beta_x)为零,因为没有围绕x轴的旋转。这意味着q_1为零。但是,如果我们看一下R1(3,2),它不是零,不像R2(3,2)。为什么这两个表示不一样?我错过了什么?

1 个答案:

答案 0 :(得分:0)

这个说法是错误的。

现在,假设我的旋转轴在y-z平面上,这意味着 没有绕x轴旋转,只有 绕y和z轴旋转。这意味着phi为零,这 表示R2(3,2)为零。

对于(0,.6,.8)旋转,R2(3,2)将为
(1-cos)(.6)(.8)
参见here
我想对此进行可视化。

编辑:转到here,然后输入(0,.6,.8)的Axis-angle和45度的角度将得到R2(3,2) = .1406,如预期的那样,并且将给出Euler角。

编辑2:七年前?!这是怎么出现在我的计算机上的?