把 2.1 得到的 9 个方向余弦组织成一个矩阵,就得到机器人学最核心的工具——旋转矩阵。本节先给出它的定义与两条代数性质,再推导三个基本旋转(全章积木),最后用两个小例子兑现它的三重几何身份。本节内容对应第 1 周录播 2:05–2:18(幻灯片 07208 / 07715 / 08239);第 2 周开篇 0:02:47–0:05:21 另有一段复习(下方两处「第 2 周」时间点即出自该段)。
定义 2.2.1 · 旋转矩阵
把式 2.2 的 9 个方向余弦按列排成(3×3)矩阵
R=[x′y′z′]=xx′xy′xz′yx′yy′yz′zx′zy′zz′(原书式 2.3)
称为旋转矩阵:每一列就是固连系对应轴在参考系中的表示,故又称方向余弦阵(第 2 周录播 0:03:23:「它的每一个值实际上就是一个余弦值」)。
两条代数性质不必死记——从定义直接乘一遍就出来了(原书式 2.4–2.5)。注意 RT 的第 i 行正是 R 的第 i 列,于是 RTR 的 (i,j) 元恰是第 i 列与第 j 列的点积。记三列为 c1=x′,c2=y′,c3=z′,则
(RTR)ij=ciTcj=ci⋅cj={∥ci∥2=1,0,i=ji=j⟹RTR=I3,R−1=RT.
对照上式逐项读:单位模长给对角线的 1,两两垂直给非对角的 0——所谓正交性,就是「三列构成标准正交组」的矩阵说法。
行列式也一步到位:对 RTR=I3 取行列式,得 (detR)2=1,故 detR=±1。
两个符号各有归属。detR=−1 对应把某一根轴镜像翻转的「照镜子」坐标系(左手系);而右手系的固连坐标系总可以连续转回与参考系重合,det 是元素的连续函数、途中不可能从 +1 跳到 −1,故右手系必为 detR=+1。据此定义:
定义 2.2.2 · 特殊正交群 SO(3)
SO(3)={R∈R3×3: RTR=I3, det(R)=1}.
把维数推广一步:SO(m) 的列是标准正交向量(单位长且两两正交),行列式也取 1;空间旋转取 m=3,平面旋转取 m=2(原书 orthonormal)。
9 个量、6 个约束、3 个独立参数
R 表面上有 9 个元素,但三列模长为 1 给出 3 个约束,两两垂直再给出 3 个约束,一共 6 个约束压掉 6 个自由度,独立参数只剩 3 个(第 2 周录播 0:04:41「我们说它是九个量」→ 0:05:16「其实只有三个独立的元素」)。这本账是 2.4 欧拉角(3 参数)与 2.5 角和轴(4 参数)的出发点,也是 2.10 操作空间取最简表示的理由。
为什么叫「群」——顺便预定的两个词:李群与李代数
群(group)是带一种「乘法」的集合,满足四条公理:封闭性(任意两元之积仍在集合内)、结合律、存在单位元、每个元存在逆元。
SO(3) 逐条兑现:两个旋转之积仍满足 RTR=I、det=+1(封闭);矩阵乘法天然结合;I3 是单位元;R−1=RT 仍是旋转矩阵(有逆)。
像 SO(3) 这样元素还能连续光滑变化的群称为李群(Lie group,挪威数学家 Sophus Lie 的姓音译「李」)——直观图像:全体姿态构成一个 3 维的光滑「曲面」,机器人转动时 R(t) 就在这张曲面上滑动。
这张曲面在单位元 I3 处的切平面(无穷小旋转的世界)称为 SO(3) 的李代数,记作 so(3)(小写)。它是 2.5.3 的主角——角和轴、Rodrigues 公式,以及第 3 章的角速度,都会在那里统一成「指数映射 / 对数映射」一对操作。此处只需先把名词立住:读到 SO(3) 时,知道「它是一个元素可以连续变化的群」就够了。
参考系 O-xyz 绕某一根坐标轴转过一个角,就得到 O′-x′y′z′——这类单轴旋转是后面所有复合旋转的积木。约定逆时针方向为正(原书)。
先以绕 z 轴转 α 为例(图 2.2),按定义逐列写出新轴在参考系中的投影:
x′=cαsα0,y′=−sαcα0,z′=001⟹Rz(α)=cαsα0−sαcα0001(原书式 2.6)
录播 2:07–2:08 老师逐列带推:「前三列就是这个单位向量在三个轴上的投影——在 x 轴上投影是多少?就是 cosα;在 y 轴上呢?就是 sinα;在 z 轴上呢?是 0。」
看懂上图(本教程绘),Rz(α) 的每个元素就都有了出处:从 +z 端往下看,x′ 在 x 轴上的投影是 cosα,在 y 轴上的投影是 sinα——左图的三个彩色标注与右图矩阵里的彩色元素一一对应。
绕 z 基本旋转的几何 → 矩阵(本教程绘):逐列投影给出 Rz(α) 的全部元素;蓝 / 绿 / 金三色把左图的 cα,sα,−sα 与右图矩阵元素对应起来,第三行第三列的「钉住」结构对应「绕谁转谁不动」。
同样方法可得绕 y 轴转 β、绕 x 轴转 γ 的矩阵(原书式 2.7–2.8):
Ry(β)=cβ0−sβ010sβ0cβ,Rx(γ)=1000cγsγ0−sγcγ
另有一条常用关系——负角旋转等于转置(原书式 2.9):
Rk(−ϑ)=RkT(ϑ),k=x,y,z.
几何意义与记忆法
Rk(ϑ) 描述「把参考系的三根轴调到与刚体坐标系一致,需要绕哪个单轴转多少」——这就是它作为姿态描述的含义(原书)。记忆:绕谁转,谁那一行/列就是 [0 0 1] 型的「钉住」结构,其余 2×2 是平面内的 c,s 旋转块(符号按右手准则)。
为什么从基本旋转出发
任意复杂姿态都可由这三次基本旋转复合得到——这是 2.4 欧拉角表示的出发点(录播 2:09:「让这三个基本旋转转三次,就可以得到一个任意的指向」)。而「三次怎么乘」正是 2.3 要回答的合成规则。
有了三个基本旋转,接着看旋转矩阵如何作用于向量。先从两系原点重合的最简情形说起(图 2.3):空间中同一点 P 在两个系中的坐标分别为 p 与 p′。由式 2.3 可得(原书式 2.10):
p=Rp′.
原理 2.2.A · 坐标变换与逆变换
R 是「把同一点在动系中的坐标换算到参考系」的变换矩阵。由正交性,逆变换白送(原书式 2.11):
p′=RTp.
例 2.1(原书)· 绕 z 轴转动后的坐标关系
两系只相差一个绕 z 轴的转角 α。令 p=(ρx,ρy,ρz)、p′=(ρx′,ρy′,ρz′),由平面上的简单几何关系直接写出:
ρx=ρx′cosα−ρy′sinα,ρy=ρx′sinα+ρy′cosα,ρz=ρz′.
即 p=Rz(α)p′——同一个式 2.6 的矩阵既描述两系指向,又描述原点重合时的坐标换算(原书据此把「姿态描述」与「坐标变换」两种解释打通)。
同一个乘积 p=Rp′,还有第二种读法:把 R 当算子用,在同一坐标系内把向量「转过去」。因 R 正交,乘积 p=Rp′ 与 p′ 模长相等——证明只需一步(原书):
∥p∥2=p′TRTRp′=p′Tp′=∥p′∥2.
例 2.2(原书)· xy 平面内的向量旋转
xy 平面上的向量 p′ 绕 z 轴转 α 得 p,其分量仍为
px=px′cosα−py′sinα,py=px′sinα+py′cosα,pz=pz′⟹p=Rz(α)p′.
形式上与例 2.1 完全相同,但语义不同:这里是同一个系内把向量旋转,那里是两个系之间换算坐标(原书特别区分了这两种用法)。
定理 2.2.B · 旋转矩阵的三重几何身份
同一个 R 有三种等价解读:
- 姿态描述——两个坐标系之间的相对指向,列向量为动系轴在参考系中的方向余弦;
- 坐标变换——同一点在两系(原点重合)下坐标之间的变换,p=Rp′;
- 旋转算子——同一坐标系内把一个向量旋转到新方向的算子。
录播 2:16–2:18 老师收束这三点时强调:「它本质上就是固连坐标系的单位向量在参考坐标系里的三个投影,三个单位向量所以是九个投影」——定义简单,但后面要大量使用。
默写点 · 合上书再写(主动回忆)
不看正文与速查卡,先写出下面几条,再展开核对。写不出来就说明这一节还没「拿走」。
- 默写 Rx(ϑ)、Ry(ϑ)、Rz(ϑ)。
- 写出旋转矩阵的三条性质(正交性、行列式、独立参数)。
- 旋转矩阵的三重身份是什么?各举一例。
核对
见公式速查卡 A2 节——注意 Ry 的 sin 项符号与 Rx,Rz 相反。
RTR=I(即 R−1=RT)、detR=+1、独立参数 3 个。
姿态描述(说工具相对法兰的朝向)/ 坐标变换(把相机系坐标搬到基座系)/ 旋转算子(把刀尖向量绕刀轴转 30°)。
- 一条主线:9 个方向余弦 → 按列成阵 R(式 2.3)→ 正交性给 R−1=RT 与 3 个独立参数 → 基本旋转 Rx,Ry,Rz 是积木 → 同一矩阵三重身份(姿态 / 变换 / 算子)。
- 两个数字:9−6=3(独立参数,9 个量、6 个约束、3 个独立参数);detR=+1(右手系)。
- 一个打通:例 2.1(例 2.1,坐标变换)与例 2.2(例 2.2,旋转算子)形式同、语义异——读公式先问「同一点还是同一个系」。
常见错误清单 · 自查三条
- 把 R−1=RT 当废话——它来自正交性(原理 2.2.A),是「逆变换白送」的根源,务必能自己推;
- 混淆「姿态描述」与「坐标变换」:R10 的列是系 1 的轴在系 0 中的像(把系 1 坐标搬到系 0),上下标读反就全错;
- 认为 detR 取 ±1 无所谓——det=−1 是左手系(含镜像),不属于 SO(3),用它会得到「照镜子」的假姿态。