四元数是由一个实部和三个虚部构成的复数扩张,通常记作q = w + xi + yj + zk,其中w、x、y、z都是实数,i、j、k是虚数单位,满足以下关系:
i² = j² = k² = ijk = -1
四元数可以用来表示旋转和方向,也可以用于空间中的线性插值、变形、平移等计算。
四元数定义下的加法和乘法分别满足交换律、结合律以及分配律。具体而言,加法定义如下:
(w1+x1i+y1j+z1k)+(w2+x2i+y2j+z2k)=(w1+w2)+(x1+x2)i+(y1+y2)j+(z1+z2)k
乘法定义如下:
(w1+x1i+y1j+z1k)*(w2+x2i+y2j+z2k)=(w1w2-x1x2-y1y2-z1z2)+(w1x2+x1w2+y1z2-z1y2)i+ (w1y2-x1z2+y1w2+z1x2)j+(w1z2+x1y2-y1x2+z1w2)k
用这种方式定义的四元数构成了一个非交换环,即四元数环。
四元数广泛应用于计算机图形学、机器人学、空间姿态控制等领域。
在计算机图形学中,四元数可以用于表示物体在三维空间中的旋转。与欧拉角相比,四元数不存在万向节锁,并且旋转可以通过简单的线性插值进行平滑过渡。此外,四元数还可以用于计算空间中两个向量之间的夹角和旋转轴。
在机器人学中,四元数可以表示机器人的姿态,即位置和方向。四元数乘法可以用于计算机器人在进行旋转时所涉及的坐标变换。此外,四元数还可以用于解决机器人在三维空间中的轨迹规划。
在空间姿态控制中,四元数可以用于控制对象的角度和方向。控制器可以将一个四元数误差和一个四元数控制器结合起来,从而实现目标姿态的稳定控制。
四元数具有以下优点:
1、不存在万向节锁
2、旋转矩阵可以通过计算得到,而无需进行求逆运算
3、可以通过简单的插值技术实现平滑过渡
四元数与欧拉角相比,具有更广泛的适用范围和更高的精度。但是,四元数的缺点在于它更难以直观地理解和使用。此外,四元数的计算也更为复杂。