在计算机视觉、机器人学、图形学等领域,刚体变换(即不改变物体形状和大小的变换)是描述物体运动或坐标转换的核心工具。旋转矩阵与平移矩阵作为刚体变换的基础组件,分别负责描述"旋转"与"平移"这两种基本运动,其理论严谨性和工程实用性贯穿多个学科。
一、刚体变换的本质与分类
刚体变换的核心是保持物体上任意两点的距离和夹角不变,仅改变物体的位置(平移)和朝向(旋转)。数学上,刚体变换可分解为:
- 旋转(Rotation):物体绕某一轴(二维中为点)转动,不改变原点到物体上点的距离;
- 平移(Translation):物体沿直线移动,所有点的位移量相同。
旋转是线性变换 (可通过矩阵乘法实现),平移是非线性变换(通过向量加法实现)。二者的组合构成完整的刚体变换,需通过"齐次坐标"统一为矩阵运算。
二、旋转矩阵(Rotation Matrix)
旋转矩阵是描述旋转的正交矩阵,其核心性质决定了旋转的"刚体性"。
1. 定义与核心性质
旋转矩阵是一个n×n的正交矩阵(n=2时为二维旋转,n=3时为三维旋转),满足:
- 正交性 :旋转矩阵R\mathbf{R}R的逆矩阵等于其转置矩阵,即R−1=RT\mathbf{R}^{-1} = \mathbf{R}^TR−1=RT;
- 行列式为1 :det(R)=1\det(\mathbf{R}) = 1det(R)=1(保证旋转为"右手系",无镜像翻转;若行列式为-1,则包含镜像,不属于纯旋转);
- 保长度 :对任意向量v\mathbf{v}v,旋转后长度不变,即∥Rv∥=∥v∥\|\mathbf{R}\mathbf{v}\| = \|\mathbf{v}\|∥Rv∥=∥v∥;
- 保夹角 :对任意向量v1,v2\mathbf{v}_1, \mathbf{v}_2v1,v2,旋转后夹角不变,即v1Tv2=(Rv1)T(Rv2)\mathbf{v}_1^T\mathbf{v}_2 = (\mathbf{R}\mathbf{v}_1)^T(\mathbf{R}\mathbf{v}_2)v1Tv2=(Rv1)T(Rv2)。
2. 二维旋转矩阵
在二维平面中,点(x,y)(x,y)(x,y)绕原点逆时针旋转θ\thetaθ角的旋转矩阵为2×2矩阵 :
R(θ)=[cosθ−sinθsinθcosθ] \mathbf{R}(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} R(θ)=[cosθsinθ−sinθcosθ]
- 几何意义 :
旋转后点的坐标(x′,y′)(x', y')(x′,y′)满足:x′y′\]=R(θ)\[xy\]=\[xcosθ−ysinθxsinθ+ycosθ\] \\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = \\mathbf{R}(\\theta) \\begin{bmatrix} x \\\\ y \\end{bmatrix} = \\begin{bmatrix} x\\cos\\theta - y\\sin\\theta \\\\ x\\sin\\theta + y\\cos\\theta \\end{bmatrix} \[x′y′\]=R(θ)\[xy\]=\[xcosθ−ysinθxsinθ+ycosθ
若θ\thetaθ为负,则表示顺时针旋转。
3. 三维旋转矩阵
三维空间的旋转更复杂,需明确旋转轴(通常为x、y、z轴)。在右手坐标系中,绕坐标轴逆时针旋转θ\thetaθ角的矩阵如下:
-
绕x轴旋转 (y-z平面内转动):
Rx(θ)=[1000cosθ−sinθ0sinθcosθ] \mathbf{R}_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix} Rx(θ)= 1000cosθsinθ0−sinθcosθ -
绕y轴旋转 (x-z平面内转动):
Ry(θ)=[cosθ0sinθ010−sinθ0cosθ] \mathbf{R}_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} Ry(θ)= cosθ0−sinθ010sinθ0cosθ -
绕z轴旋转 (x-y平面内转动):
Rz(θ)=[cosθ−sinθ0sinθcosθ0001] \mathbf{R}_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz(θ)= cosθsinθ0−sinθcosθ0001
4. 旋转的复合与参数化
三维旋转有3个自由度(需3个参数描述),但3×3旋转矩阵有9个元素,冗余度高。实际中常用更简洁的参数化方式,且需掌握旋转的复合规则:
-
复合旋转 :旋转矩阵不满足交换律,若先绕x轴旋转θ1\theta_1θ1,再绕z轴旋转θ2\theta_2θ2,总旋转矩阵为R=Rz(θ2)⋅Rx(θ1)\mathbf{R} = \mathbf{R}_z(\theta_2) \cdot \mathbf{R}_x(\theta_1)R=Rz(θ2)⋅Rx(θ1)(先旋转变换在右侧)。
-
参数化表示:
- 欧拉角:将旋转分解为绕三个轴的三次转动(如"Z-Y-X"角),但存在"万向锁"问题(当中间轴旋转90°时,丢失一个自由度);
- 轴角 :用旋转轴u\mathbf{u}u(单位向量)和旋转角θ\thetaθ表示,通过罗德里格斯公式可转换为旋转矩阵;
- 四元数 :用4个参数表示旋转,无万向锁问题,插值平滑,是工程中(如无人机姿态)的常用形式,可通过归一化四元数q=(w,x,y,z)\mathbf{q} = (w, x, y, z)q=(w,x,y,z)转换为旋转矩阵:
R(q)=[1−2y2−2z22xy−2zw2xz+2yw2xy+2zw1−2x2−2z22yz−2xw2xz−2yw2yz+2xw1−2x2−2y2] \mathbf{R}(\mathbf{q}) = \begin{bmatrix} 1-2y^2-2z^2 & 2xy-2zw & 2xz+2yw \\ 2xy+2zw & 1-2x^2-2z^2 & 2yz-2xw \\ 2xz-2yw & 2yz+2xw & 1-2x^2-2y^2 \end{bmatrix} R(q)= 1−2y2−2z22xy+2zw2xz−2yw2xy−2zw1−2x2−2z22yz+2xw2xz+2yw2yz−2xw1−2x2−2y2
三、平移矩阵(Translation Vector)
平移是物体沿坐标轴的平行移动,数学上用向量表示(而非矩阵,因平移是加法运算)。
1. 定义与表示
-
二维平移 :用2×1向量t=[txty]\mathbf{t} = \begin{bmatrix} t_x \\ t_y \end{bmatrix}t=[txty]表示,txt_xtx、tyt_yty分别为x、y方向的位移量。点(x,y)(x,y)(x,y)平移后坐标为:
x′y′\]=\[xy\]+t=\[x+txy+ty\] \\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = \\begin{bmatrix} x \\\\ y \\end{bmatrix} + \\mathbf{t} = \\begin{bmatrix} x + t_x \\\\ y + t_y \\end{bmatrix} \[x′y′\]=\[xy\]+t=\[x+txy+ty
-
三维平移 :用3×1向量t=[txtytz]\mathbf{t} = \begin{bmatrix} t_x \\ t_y \\ t_z \end{bmatrix}t= txtytz 表示,点(x,y,z)(x,y,z)(x,y,z)平移后坐标为:
x′y′z′\]=\[xyz\]+t \\begin{bmatrix} x' \\\\ y' \\\\ z' \\end{bmatrix} = \\begin{bmatrix} x \\\\ y \\\\ z \\end{bmatrix} + \\mathbf{t} x′y′z′ = xyz +t
多次平移的复合是向量加法(满足交换律):若先平移t1\mathbf{t}_1t1,再平移t2\mathbf{t}_2t2,总平移向量为t=t1+t2\mathbf{t} = \mathbf{t}_1 + \mathbf{t}_2t=t1+t2。
四、齐次坐标与变换矩阵:统一旋转与平移
旋转是线性变换(矩阵乘法),平移是非线性变换(向量加法),无法直接用矩阵乘法统一。为解决这一问题,引入齐次坐标(增加一个维度),将平移"嵌入"矩阵,使刚体变换可表示为单一矩阵的乘法。
1. 二维齐次变换矩阵(3×3)
二维点的齐次坐标为(x,y,1)T(x, y, 1)^T(x,y,1)T(最后一维为"尺度因子",固定为1)。旋转+平移的复合变换矩阵为:
T=[Rt0T1]=[cosθ−sinθtxsinθcosθty001] \mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta & t_x \\ \sin\theta & \cos\theta & t_y \\ 0 & 0 & 1 \end{bmatrix} T=[R0Tt1]= cosθsinθ0−sinθcosθ0txty1
- 作用 :齐次点p=(x,y,1)T\mathbf{p} = (x, y, 1)^Tp=(x,y,1)T经变换后为:
p′=Tp=[xcosθ−ysinθ+txxsinθ+ycosθ+ty1] \mathbf{p}' = \mathbf{T} \mathbf{p} = \begin{bmatrix} x\cos\theta - y\sin\theta + t_x \\ x\sin\theta + y\cos\theta + t_y \\ 1 \end{bmatrix} p′=Tp= xcosθ−ysinθ+txxsinθ+ycosθ+ty1
忽略最后一维即得二维坐标。
2. 三维齐次变换矩阵(4×4)
三维点的齐次坐标为(x,y,z,1)T(x, y, z, 1)^T(x,y,z,1)T,复合变换矩阵为:
T=[Rt0T1]=[r11r12r13txr21r22r23tyr31r32r33tz0001] \mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} = \begin{bmatrix} r_{11} & r_{12} & r_{13} & t_x \\ r_{21} & r_{22} & r_{23} & t_y \\ r_{31} & r_{32} & r_{33} & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix} T=[R0Tt1]= r11r21r310r12r22r320r13r23r330txtytz1
- 作用 :齐次点p=(x,y,z,1)T\mathbf{p} = (x, y, z, 1)^Tp=(x,y,z,1)T变换后为:
p′=Tp=[R[xyz]+[txtytz]1] \mathbf{p}' = \mathbf{T} \mathbf{p} = \begin{bmatrix} \mathbf{R} \begin{bmatrix} x \\ y \\ z \end{bmatrix} + \begin{bmatrix} t_x \\ t_y \\ t_z \end{bmatrix} \\ 1 \end{bmatrix} p′=Tp= R xyz + txtytz 1
3. 齐次变换矩阵的复合
多个刚体变换的复合等价于齐次变换矩阵的乘法(不满足交换律)。例如,先执行变换T1\mathbf{T}_1T1(旋转R1\mathbf{R}_1R1+平移t1\mathbf{t}_1t1),再执行T2\mathbf{T}_2T2(旋转R2\mathbf{R}_2R2+平移t2\mathbf{t}2t2),总变换为:
T总=T2⋅T1=[R2R1R2t1+t20T1] \mathbf{T}{\text{总}} = \mathbf{T}_2 \cdot \mathbf{T}_1 = \begin{bmatrix} \mathbf{R}_2\mathbf{R}_1 & \mathbf{R}_2\mathbf{t}_1 + \mathbf{t}_2 \\ \mathbf{0}^T & 1 \end{bmatrix} T总=T2⋅T1=[R2R10TR2t1+t21]
五、工程应用与注意事项
旋转矩阵与平移矩阵的应用贯穿多个领域,其细节处理直接影响系统精度。
1. 相机位姿估计(外参矩阵)
在计算机视觉中,相机外参(Extrinsics)描述相机坐标系与世界坐标系的关系,即:
P相机=R⋅P世界+t \mathbf{P}{\text{相机}} = \mathbf{R} \cdot \mathbf{P}{\text{世界}} + \mathbf{t} P相机=R⋅P世界+t
其中R\mathbf{R}R为3×3旋转矩阵,t\mathbf{t}t为3×1平移向量。齐次形式为P相机,齐次=T⋅P世界,齐次\mathbf{P}{\text{相机,齐次}} = \mathbf{T} \cdot \mathbf{P}{\text{世界,齐次}}P相机,齐次=T⋅P世界,齐次,T\mathbf{T}T为4×4外参矩阵。
2. 机器人运动学
机器人末端执行器的位姿(位置+姿态)通过齐次变换矩阵描述。例如,机械臂各关节的变换矩阵相乘,可得到末端相对于基座的总变换,用于运动规划。
3. 关键注意事项
- 旋转方向与坐标系:需明确旋转是"右手系"还是"左手系",以及旋转角的正负定义(通常逆时针为正);
- 正交性验证 :数值计算中,旋转矩阵可能因误差偏离正交性,需通过SVD分解进行正交化(如R=UVT\mathbf{R} = \mathbf{U}\mathbf{V}^TR=UVT,其中U,V\mathbf{U},\mathbf{V}U,V为SVD分解结果);
- 变换顺序:旋转与平移的复合顺序不可交换,"先旋转后平移"与"先平移后旋转"结果不同(除非平移量为零);
- 参数化选择:欧拉角易实现但有万向锁,四元数适合插值,轴角适合直观理解,需根据场景选择。
旋转矩阵与平移矩阵是描述刚体变换的数学基础:旋转矩阵通过正交性保证"保距保角",平移向量通过加法描述位置偏移,二者通过齐次坐标统一为变换矩阵,实现高效的复合运算。从理论上的性质推导到工程中的位姿估计、机器人控制,其应用无处不在。掌握其定义、性质、参数化及复合规则,是理解和解决刚体运动问题的核心前提。