欧拉角转换旋转矩阵?如何计算欧拉角?( 二 )


例如下图一个锥体,一开始它自身坐标轴与惯性坐标轴是一致.
然后我把heading角设置为45°.根据左手法则(通常使用,但是决定每个旋转的正方向不一定要准守右手或者左手定则),它是会做顺时针旋转.
接着物体的坐标系就发生如下的改变了.锥体的自身坐标轴不再与惯性坐标轴一致,x,z轴都发生了对应的改变.当然了,物体的空间方位也发生了对应的改变.
然后接下来就是pitch、bank旋转,分别是绕x轴旋转和z轴旋转,跟heading旋转是类似的,最后得到锥体的最终的空间方位.这里需要注意的是 不管是 heading旋转、 pitch旋转还是bank旋转,旋转的坐标轴都是自身的坐标轴!不是惯性坐标轴!
上面,看完了"heading-pitch-bank"约定系统是如何做空间方位的旋转改变的,接下来,我们来瞅瞅关于欧拉角的其他约定.
上面我们对欧拉角的接下来,我们看一下欧拉角的优点和缺点.透露一点,其实欧拉角的缺点就是引起万向锁的原因.
其实是使用欧拉角会出现一个非常有趣的现象,那就是 万向锁 ,我们看一下"heading-pitch-bank"系统这个系统中,如果pitch角度为±90°,那么就出事了,会出现什么问题呢?heading角与bank角如果相同,那么你会发现物体最终的方位是一致的,这怎么可能,这就比较尴尬了,其实类似于这种旋转pitch角度为±90°中,物体是缺失一个旋转轴的.也就是说,当pitch角度为±90°,那么bank是0.只有heading一个旋转轴起作用,是不是懵圈了?没问题,下面我要分享一个视频,我觉得这个视频会比文字更加生动形象,请对照上面的文字自行研究.
看完使用矩阵和欧拉角表示方位.接下来,我们就看一下四元数, 四元数 一个新的概念出现在我的眼前的时候我在想,他否是因为有四个数才叫四元数,确实,四元数实际是一个标量分量和一个3D向量分量组成用来表示方位.四元数的两种记法如下所示:[ω, ν ],[ω,(x,y,z)].
复数,真心好久没用了.高中的时候我们就开始接触简单的复数了,现在简单说一下复数,其实我也顺道复习一下了.
首先,复数的形式为a+bi,其中i2=-1,a称作实部(实数部分),b称作虚部(虚数部分).对于复数的运算,我们主要说说 复数的模 , 复数的模 可以很好的表示2D中的旋转变换,我们先看看前面说到过的2D环境中的旋转矩阵.
【欧拉角转换旋转矩阵?如何计算欧拉角?】 然后,我们再看一下,一个示例,假设一个复数v = (x,y)旋转θ度得到v',如下图所示.
为了完成此次的旋转,我们需要引入第二个复数 q = (cosθ,sinθ),现在旋转之后的复数v'就可以使用复数的乘法计算出来了.计算过程如下所示.
v = x +yi
q = cosθ +isinθ
v' = vq = (x +yi)(cosθ +isinθ) = (xcosθ-ysinθ)+(xsinθ+ycosθ)i
跟上面的2D环境中旋转矩阵效果是一样的.只是形式不相同而已.
上面说了这么一大堆,那么到底四元数和复数有着怎样的关系呢?其实一个四元数[w,(x,y,z)]定义了复数 w +xi +yj +zk ,也就是说一个四元数是包含着一个实部和三个虚部.
其实四元数的出现也是有故事的,我直接把书上搬过来,当做在枯燥的学习中的一个轻松时刻吧(实际上,然并卵??????),爱尔兰的数学家哈密尔顿其实一直想把复数复数从2D扩展到3D,一开始他认为,3D中的复数应该有一个实部和两个虚部,然后他没有创造出这种一个实部两个虚部有意义的复数.1843年,在他去演讲的路上他突然意识到应该有三个虚部而不是两个虚部.他把这种新复数类型行者的等式刻在了Broome桥上.这样四元数就诞生了.等式如下所示.
i2 = j2 = k2 = -1
ij = k,ji = -k
jk = i,kj = -i
ki = j,ik = -j
我们已经知道了矩阵和欧拉角的情况,现在我们就看一下四元数是如何表示角位移的.在3D环境中任意的一个角位移都可以理解为绕某个轴旋转一定的角度,在 3D图形:矩阵与线性变换 这个里面曾经说过一个3D中绕任意轴旋转的公式(还记得当初那个验证过程吗,愣是搞了一天??,具体验证过程就不说了,请查看原来的文章).公式如下所示.其中,θ代表着旋转角度, n 代表着旋转轴.因此轴-角对( n ,θ)定义了一个角位移:绕 n 指定的轴旋转θ角.
四元数的解释其实就是角位移的轴-角对方式,但是呢, n 和θ并不是直接放入到四元数中的.它们的形式如下所示.
那么问题来了,为什么不直接放入四元数中呢?这是有原因的,这个原因,我将会在下一篇四元数的相关运算中来说明一下.现在只要知道四元数的解释其实就是角位移的轴-角对方式即可.
</b>
自己写完这篇文章总算是对矩阵、欧拉角、四元数、角位移、方位有了一个大体的了解了.整体下来发现真心枯燥的,但是还是坚持了下来了,希望小伙伴也能坚持看完,不懂的或者有疑问可以与骚栋一起探讨.3D图像下一篇我将接着研究本篇的四元数,不过是与四元数的运算相关的知识.希望大家持续关注.


推荐阅读