一、基本概念
SO2 - 特殊正交群(仅旋转)
- 维度:2×2 矩阵
- 功能:仅旋转,绕原点
- 自由度:1个(旋转角度)
- 数学表示:
R = [ cosθ -sinθ ] [ sinθ cosθ ]
SE2 - 特殊欧氏群(旋转+平移)
- 维度:3×3 矩阵
- 功能:旋转 + 平移
- 自由度:3个(x平移, y平移, 旋转角度)
- 数学表示:
T = [ R t ] [ 0 1 ] 其中 R 是 SO2 矩阵,t = [x, y]ᵀ
二、直观对比
| 比较项 | SO2 | SE2 |
|---|---|---|
| 形状 | https://latex.codecogs.com/svg.latex?\begin{bmatrix}\cos\theta&-\sin\theta\sin\theta&\cos\theta\end{bmatrix} | https://latex.codecogs.com/svg.latex?\begin{bmatrix}\cos\theta&-\sin\theta&x\sin\theta&\cos\theta&y\0&0&1\end{bmatrix} |
| 维度 | 2×2 | 3×3 |
| 作用 | 只旋转,不移动 | 先旋转,再移动 |
| 应用 | 方向变换 | 位置+方向变换 |
| 例子 | 指南针旋转 | 机器人移动到某位置并转向 |
三、实际例子说明
场景:一个点在平面上的变换
假设点 P = (2, 3),旋转30°,平移(5, 4)
| |
四、几何可视化
SO2 变换:绕原点旋转
| |
SE2 变换:任意位置旋转+平移
| |
五、在芯片检测中的应用
情况1:计算芯片边缘方向(使用SO2)
| |
情况2:生成芯片包络框(使用SE2)
| |
六、数学关系
SE2 包含 SO2
| |
变换组合
| |
七、选择使用场景
什么时候用SO2?
- 只关心方向(如边缘方向、法线方向)
- 点在局部坐标系中(以某点为中心)
- 计算角度关系(向量夹角)
- 归一化方向向量
| |
什么时候用SE2?
- 需要同时处理位置和方向
- 坐标变换(局部↔全局)
- 生成检测区域
- 物体定位
| |
八、简单记忆法
| 记忆点 | SO2 | SE2 |
|---|---|---|
| 字母含义 | S=特殊,O=正交(旋转) | S=特殊,E=欧氏(欧几里得) |
| 维度 | 2维,2×2矩阵 | 3维,3×3矩阵 |
| 功能 | 只能转(原地旋转) | 能转能走(旋转+移动) |
| 类比 | 人原地转身 | 人走到某位置并转身 |
口诀:
- SO2:Special Orthogonal → 只转不动
- SE2:Special Euclidean → 又转又动
九、实际代码对比
| |
十、总结表格
| 特性 | SO2 | SE2 |
|---|---|---|
| 完整名称 | 2D特殊正交群 | 2D特殊欧氏群 |
| 矩阵大小 | 2×2 | 3×3 |
| 表示内容 | 纯旋转 | 旋转+平移 |
| 齐次坐标 | 不需要 | 需要 |
| 组合变换 | 矩阵乘法 | 矩阵乘法 |
| 逆变换 | R⁻¹ = Rᵀ | T⁻¹ = [Rᵀ -Rᵀt; 0 1] |
| 应用领域 | 方向计算、向量旋转 | 坐标变换、物体定位 |
关键理解:SE2 = SO2 + 平移。当平移为0时,SE2退化为SO2。