1. 什么是 RT 矩阵?
RT 矩阵的核心作用是描述一个刚体(比如机器人的手臂、末端执行器、自动驾驶车辆上的传感器)在三维空间中的位置和姿态,即位姿。
- R 代表旋转:一个 3x3 的矩阵,描述了物体是如何相对于参考坐标系旋转的。
- T 代表平移:一个 3x1 的向量,描述了物体相对于参考坐标系的位移。
为了将旋转和平移统一在一个矩阵运算中(便于连续变换和计算),我们使用一个4x4 的齐次坐标变换矩阵,这就是我们通常所说的RT 矩阵。
它的标准形式如下:
text
[ r11 r12 r13 tx ]
[ r21 r22 r23 ty ]
[ r31 r32 r33 tz ]
[ 0 0 0 1 ]
其中:
- 左上角的 3x3 子矩阵
[r11, r12, r13; r21, r22, r23; r31, r32, r33]就是旋转矩阵 R。 - 最右边的 3x1 列向量
[tx, ty, tz]^T就是平移向量 T。 - 最后一行
[0, 0, 0, 1]是为了满足齐次坐标计算而固定的。
2. RT 矩阵的数学原理:为什么要用 4x4 矩阵?
在三维空间中,一个点的坐标通常用 [x, y, z]^T 表示。如果我们只想进行旋转,用 3x3 矩阵乘法就够了:
P_rotated = R * P
如果我们只想进行平移,用向量加法就够了:
P_translated = P + T
但是,当我们既需要旋转又需要平移时,运算就变成了:
P_new = R * P + T
这虽然正确,但不是线性的,不便于将多个变换合并成一个。为了解决这个问题,我们引入了齐次坐标。
齐次坐标将三维点 [x, y, z] 扩展为四维 [x, y, z, 1]。这样,旋转和平移就可以通过一个单一的矩阵乘法来完成:
text
[ P_new ] [ R T ] [ P ]
[ ] = [ ] * [ ]
[ 1 ] [ 0 1 ] [ 1 ]
展开后就是:
P_new = R * P + T
看到了吗?我们用一次矩阵乘法,优雅地实现了 R * P + T 这个操作。这使得连续变换变得非常简单。

