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. 关键理解

  • 齐次坐标的目的不是“升维炫技”,而是把仿射变换写成线性形式
  • 齐次变换矩阵本质上是位姿的矩阵表达
  • 机器人学中的大量建模,本质都是在做坐标系之间的变换和连乘