高等机器人学(八):旋转算子

预备知识:引入一个关键概念 如何用矩阵乘法来优雅地表示向量叉积
核心思想:用矩阵表示叉积
1. 基本定义
幻灯片中的关键公式是:
对于任意三维向量 ω和 p,存在一个矩阵 [ω],使得:
ω × p = [ω] p
-
ω × p: 这是标准的向量叉乘运算,结果是一个新向量。 -
[ω] p: 这是矩阵与向量的乘法运算。 -
意义: 这个等式意味着,两个向量的叉积,可以等价于一个由第一个向量构造出的特定矩阵乘以第二个向量。
2. 矩阵 [ω] 的构造
幻灯片给出了这个特定矩阵 [ω]的具体形式。如果 ω = [ω₁, ω₂, ω₃]ᵀ,那么:
[ω]=0ω3−ω2−ω30ω1ω2−ω10
这个矩阵是由向量 ω的分量唯一确定的。它的构造规则非常直观:
-
主对角线 上的元素全是
0。 -
其他位置 是
ω的各分量,并按照叉积的规则添加正负号。例如,第一行第二列是-ω₃,对应于叉积结果中p向量的第一个分量是ω₂*p₃ - ω₃*p₂
3. 反对称矩阵
幻灯片特别强调了一个关键性质:[ω]是一个反对称矩阵。
-
定义: 一个矩阵
S如果满足Sᵀ = -S,那么它就是反对称的。 -
验证: 对上面给出的
[ω]矩阵进行转置,然后改变所有元素的符号,会发现结果等于原矩阵。这正是[ω]ᵀ = -[ω]。 -
记号: 所有
n×n的反对称矩阵构成的集合记作so(n)。幻灯片提到我们主要关心n=3(三维空间)和n=2的情况。
总结
|
概念 |
描述 |
意义 |
|---|---|---|
|
叉积 |
两个向量的向量积 |
原始的、几何的运算方式。 |
|
矩阵 |
由向量 |
叉积的代数化、线性化表示。 |
|
等式 |
连接两种表示的桥梁 |
允许我们使用强大的线性代数工具来处理叉积问题。 |
从一个全新的、动态的角度来回答“什么是旋转?”
它不再将旋转视为一个静态的变换,而是将其视为一个随时间演化的连续运动过程。

第一部分:旋转的运动学方程
PPT从点的旋转运动入手:
-
初始条件: 在时间
t=0时,有一个点位于空间中的位置p₀。 -
运动描述: 让这个点绕着一根通过坐标原点、方向为单位向量
ˆω的轴,以单位角速度(即每秒1弧度)进行旋转。 -
微分方程的建立:
-
根据刚体运动学,点
p(t)的线速度ṗ(t)等于角速度ˆω与该点当前位置矢量p(t)的叉积。点 p(t) 的线速度 ṗ(t) 被定义为其位置矢量 p(t) 关于时间 t 的导数,这是基于物理学对“速度”这一基本概念的定义 -
这就得到了一个关于位置
p(t)的微分方程:ṗ(t) = ˆω × p(t) -
初始条件为:
p(0) = p₀。
-
这个方程描述了点在每一瞬间的运动趋势(速度方向垂直于旋转轴和该点当前位置构成的平面),所有瞬间的趋势连续起来,就形成了圆形的旋转轨迹。
第二部分:微分方程的求解与旋转算子
这是PPT最精彩的部分,它展示了如何求解这个方程并得到旋转的封闭形式。
-
线性常微分方程: 上述方程是一个线性常微分方程(ODE)。
-
利用叉积的矩阵形式: 回想之前的课程,叉积可以写成一个反对称矩阵乘法的形式:
ˆω × p(t) = [ˆω] p(t)。其中[ˆω]是由ˆω构成的反对称矩阵。 -
方程改写: 因此,微分方程变为:
ṗ(t) = [ˆω] p(t) -
求解: 这个方程的形式与标量方程
dx/dt = ax的解x(t) = e^(a t) x₀惊人地相似。其解为:p(t) = e^([ˆω] t) p₀-
这里的
e^([ˆω] t)是矩阵指数
-
第三部分:旋转算子的定义
PPT接着将上述解与旋转直接联系起来:
-
旋转特定角度: 如果我们希望点旋转
θ弧度,那么所需的“运动时间”就是t = θ(因为角速度为1)。
角速度(ω) 是指 单位时间内转过的角度。
其标准定义式为:
ω = Δθ / Δt其中:
ω: 角速度(单位:弧度/秒,rad/s)
Δθ: 在时间间隔Δt内转过的角度(单位:弧度,rad)
Δt: 时间间隔(单位:秒,s)1. 幻灯片中的特殊设定
幻灯片中设定了一个非常重要的前提条件:
“Rotate the point with unit angular velocity ˆω”(以单位角速度旋转该点)。
这里的 “单位角速度” 是理解问题的核心。它意味着:
角速度的大小
‖ˆω‖ = 1弧度/秒。我们可以这样理解:
ˆω是一个单位方向向量,它指明了旋转轴的方向。而“以单位角速度旋转”意味着这个向量的模长(大小)为 1。所以:
ω = ˆω 且‖ω‖ = 1 rad/s。2. 从定义式推导时间
根据角速度的定义:
ω = Δθ / Δt我们将已知条件代入:
ω = 1 rad/s我们希望转过的总角度
Δθ = θ弧度我们需要求解所需的时间
Δt = ?代入公式:
1 = θ / Δt解这个简单的方程,得到:
Δt = θ3. “运动时间”的物理意义
这里的
Δt就是从初始位置(p₀)旋转到目标位置(旋转θ弧度后)所需要的时间。因为角速度是恒定的(1 rad/s),所以:
想转
1弧度,就需要1秒。想转
π弧度(180度),就需要π秒。想转
θ弧度,自然就需要θ秒。因此,在这个特定的设定下,“转过的角度”和“所用的时间”在数值上完全相等。 这就是
t = θ的由来
-
最终位置: 将
t = θ代入解中,得到旋转后点的位置:p(θ) = e^([ˆω] θ) p₀ -
旋转算子的定义: 由此,我们可以定义一个旋转算子
Rot(ˆω, θ),它表示“绕轴ˆω旋转θ角度”这个操作:7Rot(ˆω, θ) ≜ e^([ˆω] θ)
这个定义的深刻之处在于,一个有限的旋转操作,可以通过计算一个矩阵指数来得到
知识扩展与总结
|
步骤 |
内容 |
意义 |
|---|---|---|
|
1. 建模 |
建立微分方程 |
从瞬时运动趋势描述旋转。 |
|
2. 求解 |
求解得 |
将连续运动积分,得到有限时间后的结果。揭示了旋转与矩阵指数的内在联系。 |
|
3. 定义 |
定义旋转算子 |
得到了旋转矩阵的指数表示法。 |


核心论点:旋转矩阵的第三种视角——算子
幻灯片开篇明义,指出了旋转矩阵(通常记为 R)除了之前两种常见作用(描述坐标系朝向、进行坐标变换)外的第三种重要角色:作为一个作用在向量上的旋转算子
1. 旋转算子的定义
幻灯片给出了最核心的定义公式:
Rot(ˆω, θ) ≜ e^([ˆω]θ)
-
Rot(ˆω, θ): 这是一个旋转算子。它的功能是:将一个点(或向量)绕通过原点的、方向为ˆω的轴旋转θ弧度。 -
e^([ˆω]θ): 这是该算子的具体数学实现,即矩阵指数。其中[ˆω]是由轴ˆω生成的反对称矩阵
结论: 任何一个旋转矩阵 R都可以写成这种形式,即 R = e^([ˆω]θ)。这意味着,任何旋转操作本质上都是一个绕某根轴的旋转
2. 数学性质:指数形式与旋转矩阵的等价性
幻灯片接着阐述了一个关键事实(Fact)并给出了证明思路:
-
事实: 任何形如
e^([ˆω]θ)的矩阵都属于 SO(3) 群(即特殊正交群)。 -
SO(3) 群的性质: 这正是旋转矩阵的定义:满足
R^T R = I(正交性)且det(R) = +1(特殊,保证是纯旋转无镜像反射)。 -
证明思路: 证明
(e^([ˆω]θ))^T e^([ˆω]θ) = I。证明过程利用了[ˆω]是反对称矩阵([ˆω]^T = -[ˆω])的性质,以及矩阵指数运算的特性。
这从数学上保证了用指数形式定义的算子 Rot(ˆω, θ)确实是一个合法的旋转矩阵
SO(3) 群是理解和描述三维空间中刚体旋转的数学基石。这个看似抽象的数学概念,是精确描述机器人 orientation(朝向)、卫星姿态、分子结构等的核心语言
1. SO(3) 的名称解析
S: 特殊。代表矩阵的行列式等于 +1。这确保了变换是“纯旋转”,排除了镜像反射(镜像反射的行列式为 -1)。
O: 正交。代表矩阵是正交矩阵,即满足 RTR=I(其中 RT是 R 的转置,I是单位矩阵)。这意味着矩阵的逆等于其转置:R−1=RT。
(3): 三维。代表我们处理的是三维实空间(R3)中的变换。
SO(3) 就是所有 3x3 的特殊正交实矩阵构成的集合
2. SO(3) 的严格数学定义
一个 3x3 的矩阵 R属于 SO(3) 群,当且仅当它同时满足以下两个条件:
正交性条件: RTR=RRT=I
几何意义: 正交变换保持向量长度和夹角不变。也就是说,旋转不会拉伸或压缩物体,也不会改变物体内部的角度。
特殊性条件: det(R)=+1
几何意义: 行列式为 +1 保证了变换是“手性保持”的。它将一个右手坐标系变换为另一个右手坐标系,而不是变成左手坐标系(镜像反射)
3. SO(3) 为什么构成一个“群”?
在数学中,“群”是一个集合,其上定义了一种运算(称为“群乘法”),并满足以下四条公理:
封闭性: 两个旋转矩阵 R1和 R2相乘,结果 R3=R1R2仍然是一个旋转矩阵(仍然满足正交性和特殊性)。(连续进行两次旋转,等价于一次新的旋转。)
结合律: 矩阵乘法满足结合律,即 (R1R2)R3=R1(R2R3)。
单位元: 存在一个单位矩阵 I,对于任何旋转矩阵 R,都有 RI=IR=R。(单位矩阵代表“不旋转”。)
逆元: 对于每个旋转矩阵 R,都存在一个逆矩阵 R−1=RT,使得 RRT=RTR=I。(逆矩阵代表“反向旋转”,可以回到初始姿态。)
因为所有满足定义的 3x3 旋转矩阵,在矩阵乘法下都满足这四条性质,所以它们构成一个群,称为特殊正交群
4. SO(3) 的几何与物理意义
a) 作为旋转操作符
这是 SO(3) 最直接的应用。一个旋转矩阵 R∈SO(3)可以作为一个操作符,作用在一个三维向量 v∈R3上,使其在空间中进行旋转:
v′=Rv
结果 v′是向量 v旋转后的新向量。
b) 作为坐标系变换描述符
在机器人学中,SO(3) 矩阵更常被用来描述一个坐标系相对于另一个坐标系的朝向。
矩阵 B^A_R∈SO(3)描述了坐标系 {B}相对于坐标系 {A}的旋转。
它的每一列,就是 {B}系的三个坐标轴单位向量在 {A}系中的坐标值。
c) 作为刚体姿态的一半
一个刚体在三维空间中的完整位姿(Pose)由其位置(3个自由度)和朝向(3个自由度)共同描述。
SO(3) 完美地描述了朝向(3个自由度)。
位置可以由一个平移向量 p∈R3描述。
将两者结合(旋转和平移),就得到了描述完整位姿的 SE(3) 群(特殊欧几里得群)
5. SO(3) 的参数化(如何表示一个旋转?)
虽然 SO(3) 本身是一个矩阵集合,但在计算中我们需要用更少的参数来表示一个旋转。常见的参数化方法有:
旋转矩阵: 9个参数(但有6个约束,实际自由度是3个)。最直接,但冗余。
欧拉角(例如:滚转-俯仰-偏航, Roll-Pitch-Yaw): 3个参数。直观,但存在“万向节死锁”问题。
轴-角表示 / 旋转向量: 一个单位向量(表示旋转轴,2个自由度)和一个角度(表示旋转量,1个自由度)。共3个参数。
四元数: 4个参数(有一个约束,实际自由度是3个)。计算高效,避免了奇异性,是计算机图形学和机器人学中最常用的表示方法之一。
3. 与前两种观点的对比
幻灯片特别强调了算子观点与之前两种观点的不同:
-
描述坐标系朝向: 旋转矩阵
ᴬR_B描述的是坐标系{B}相对于{A}的朝向。 -
坐标变换: 旋转矩阵
ᴬR_B用于将点或向量在{B}系下的坐标变换到{A}系下:ᴬp = ᴬR_B ᴮp。 -
旋转算子(本幻灯片观点): 旋转矩阵
R是直接作用在一个向量上,使其在同一个坐标系内发生旋转。公式为p' = R p。其中p和p'都是在同一个坐标系下表示的。
4. 重要注意事项:参考系的统一
幻灯片最后一点是关键提醒:当使用旋转算子时,所有向量和矩阵必须在同一个参考系下表示。
-
例如,在公式
p' = R p中,原始点p、旋转后的点p‘以及旋转矩阵R,它们的坐标值都必须是相对于同一个坐标系而言的。 -
如果参考系不统一,运算将没有意义

不同坐标系下旋转算子的转换
同一个物理的旋转操作,在不同参考系下观察或描述时,其数学表示(即旋转矩阵)是不同的。
好的,我们根据这张标题为 “Rotation Operator in Different Frames (1/2)” 的幻灯片,来详细解释其核心内容。这张幻灯片深入探讨了旋转算子在不同参考系下的表示及其关系,这是机器人学中一个非常关键且实用的概念。
核心问题:参考系的重要性
幻灯片的核心思想是:同一个物理的旋转操作,在不同参考系下观察或描述时,其数学表示(即旋转矩阵)是不同的。
这引出了一个关键问题:这些不同的表示之间有什么关系?以及如何在不同参考系之间进行转换?
1. 旋转算子的两种视角
幻灯片首先区分了在两种不同参考系下定义旋转算子的方法:
-
在固定参考系(例如世界系
{A})中:旋转算子
Rot(ˆω, θ)直接作用在一个向量上,表示为p' = Rot(ˆω, θ) p。这意味着在固定坐标系{A}下,将向量p绕一根在{A}系中方向为ˆω的轴旋转θ角度,得到新向量p‘。 -
在物体固连参考系(例如刚体系
{B})中:旋转算子
Rot(ˆβ, θ)表示绕一个在物体自身坐标系{B}中方向为ˆβ的轴旋转θ角度。
关键点: 即使 ˆω和 ˆβ在各自坐标系中的坐标值相同(例如都是 [0, 0, 1]^T),由于坐标系 {A}和 {B}的朝向不同,这两根轴在空间中的实际方向是完全不同的。因此,Rot(ˆω, θ)和 Rot(ˆβ, θ)是两个完全不同的旋转操作
2. 不同参考系下旋转算子之间的关系(核心公式)
幻灯片给出了连接不同参考系下旋转算子的核心公式。这是一个极其重要的结论:
如果一根旋转轴在 {B}系中的坐标为 ˆβ,而在 {A}系中的坐标为 ˆω,并且两个坐标系之间的旋转矩阵为 ᴬR_B,那么有如下关系:
Rot(ˆω, θ) = ᴬR_B Rot(ˆβ, θ) ᴬR_B^T
以及其逆关系:
Rot(ˆβ, θ) = ᴬR_B^T Rot(ˆω, θ) ᴬR_B
公式解读
这个公式的物理意义非常深刻:
-
Rot(ˆβ, θ): 这是在物体自身坐标系{B}中描述的旋转。可以理解为“命令”刚体绕其自身的ˆβ轴旋转θ。 -
ᴬR_B^T: 这是从{A}系到{B}系的旋转矩阵(ᴬR_B的逆)。它起到一个“视角转换”的作用。ᴬR_B^T将向量从固定系{A}转换到物体系{B},以便刚体能够“理解”这个在固定系中描述的旋转轴ˆω。 -
Rot(ˆω, θ): 这是在固定坐标系{A}中描述的旋转。 -
ᴬR_B: 这是从{B}系回到{A}系的旋转矩阵。它将旋转后的结果重新转换回固定系{A}中进行观察。
因此,整个公式 Rot(ˆω, θ) = ᴬR_B Rot(ˆβ, θ) ᴬR_B^T描述了一个“夹心饼干”式的变换过程:
-
步骤1(
ᴬR_B^T): 将固定系{A}中的指令(绕ˆω轴旋转)“翻译”成刚体坐标系{B}能理解的指令(相当于找出ˆω轴在{B}系中的方向ˆβ)。 -
步骤2(
Rot(ˆβ, θ)): 刚体在自身坐标系{B}下执行旋转操作。 -
步骤3(
ᴬR_B): 将旋转后的结果(在{B}系中表示)“翻译”回固定系{A}中。
这个过程保证了最终在固定系 {A}中观察到的刚体旋转效果,与直接命令刚体绕固定轴 ˆω旋转的效果是完全相同的。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)