02-坐标系、旋转、齐次坐标与齐次变换
目录
坐标系、旋转、齐次坐标与齐次变换
1. 为什么必须有坐标系
机器人中任何位置和方向描述,都必须相对于某个参考系。
例如“杯子在左边”这种说法不完整,因为必须说明“相对于谁的左边”。
常见坐标系:
- 世界坐标系
- 机器人基座坐标系
- 末端坐标系
- 相机坐标系
同一个物体在不同坐标系下,数值会不同,但物体本身不变。
2. 位置、姿态、位姿
位置
二维位置:
$$ p = \begin{bmatrix} x \ y \end{bmatrix} $$
三维位置:
$$ p = \begin{bmatrix} x \ y \ z \end{bmatrix} $$
姿态
描述刚体的朝向。
二维中可由一个角度 $\theta$ 描述;三维中需要 3 个独立参数。
位姿
位置 + 姿态。
3. 二维旋转矩阵
点 $p$ 绕原点逆时针旋转 $\theta$ 后:
$$ p' = R(\theta) p $$
其中
$$ R(\theta)= \begin{bmatrix} \cos\theta & -\sin\theta \ \sin\theta & \cos\theta \end{bmatrix} $$
性质:
$$ R^T R = I, \qquad \det R = 1 $$
说明旋转保持长度和夹角不变。
4. 为什么需要齐次坐标
刚体变换通常写成:
$$ p' = Rp + t $$
其中:
- $R$ 是旋转
- $t$ 是平移
问题在于:平移不是普通欧氏空间中的线性变换,不能只靠一个低维矩阵写成 $p' = Ap$。
所以要把仿射变换嵌入更高一维空间,写成线性形式。
5. 齐次坐标
二维点:
$$ p = \begin{bmatrix} x \ y \end{bmatrix} \quad \Rightarrow \quad \tilde p = \begin{bmatrix} x \ y \ 1 \end{bmatrix} $$
三维点:
$$ p = \begin{bmatrix} x \ y \ z \end{bmatrix} \quad \Rightarrow \quad \tilde p = \begin{bmatrix} x \ y \ z \ 1 \end{bmatrix} $$
点的最后一维取 1。
向量的齐次表示
$$ \tilde v = \begin{bmatrix} v_x \ v_y \ v_z \ 0 \end{bmatrix} $$
这保证向量不受平移影响,只受旋转影响。
6. 齐次变换矩阵
二维:
$$ T = \begin{bmatrix} R & t \ 0 & 1 \end{bmatrix} $$
三维:
$$ T = \begin{bmatrix} R & t \ 0 & 1 \end{bmatrix} \in SE(3) $$
于是刚体变换统一写成:
$$ \tilde p' = T \tilde p $$
7. 齐次变换的核心价值
统一表示
把旋转和平移统一成一次矩阵乘法。
便于连乘
对于串联机械臂:
$$ {}^0T_n = {}^0T_1 \, {}^1T_2 \, \cdots \, {}^{n-1}T_n $$
这就是正运动学的基本骨架。
8. 逆变换
若
$$ T = \begin{bmatrix} R & t \ 0 & 1 \end{bmatrix} $$
则
$$ T^{-1} = \begin{bmatrix} R^T & -R^T t \ 0 & 1 \end{bmatrix} $$
这是坐标系变换、手眼标定、机器人感知中常用公式。
9. 关键理解
- 齐次坐标的目的不是“升维炫技”,而是把仿射变换写成线性形式
- 齐次变换矩阵本质上是位姿的矩阵表达
- 机器人学中的大量建模,本质都是在做坐标系之间的变换和连乘