在三维空间中,刚体运动是指物体在保持其内部相对位置不变的情况下进行的运动,例如相机在三维空间中的运动。这种运动通常涉及到旋转和平移两种基本操作。在本章中,我们将探讨如何用数学工具来描述和理解这些运动,重点在于旋转的表示。
旋转在数学上可以用多种方式来表示,包括旋转矩阵、欧拉角和旋转向量。旋转矩阵是描述刚体旋转的一种常见方法,它是一个3x3的矩阵,能够通过坐标变换将一个点从一个坐标系转换到另一个坐标系。旋转矩阵的特性是它是一个正交矩阵,即其逆矩阵等于其转置,并且行列式为1。这种矩阵的集合构成了特殊正交群SO(3),表示所有可能的旋转。
然而,旋转矩阵存在冗余,因为一次旋转只需要三个自由度,但矩阵却有九个元素。这导致了在某些计算场景中效率较低。为了解决这个问题,可以使用欧拉角,将旋转分解为三个围绕不同轴的旋转。欧拉角直观易懂,但存在奇异性问题,比如在特定角度下会发生“万向锁”现象,导致系统丢失一个自由度。
旋转向量是另一种表示旋转的方式,它是一个向量,其方向对应于旋转轴,长度对应于旋转角。通过罗德里格斯公式可以从旋转向量求得旋转矩阵,反之亦然。旋转向量避免了旋转矩阵的冗余,但它也有奇异性,特别是在某些特定的旋转轴和角度组合下。
为了克服欧拉角和旋转向量的奇异性,人们引入了四元数。四元数是一种包含实部和三个虚部的复数扩展,可以紧凑地表示三维旋转,且没有奇异问题。在2D情况下,复数可以用来表示旋转,而四元数则扩展到3D空间,其虚部类似于叉乘操作,且具有良好的数学性质,使得它们非常适合于插值和迭代计算,因此在SLAM(Simultaneous Localization and Mapping)等高级计算机视觉算法中广泛应用。
刚体运动的描述涉及旋转和平移,其中旋转的表示方法包括旋转矩阵、欧拉角、旋转向量和四元数。每种方法都有其优缺点,选择哪种方法取决于具体的应用需求和计算环境。在实际工程中,为了高效和准确地描述相机等设备在三维空间中的运动,四元数通常被优先选用。