前面的博客中介绍了最基本的空间描述与坐标变换,为了深入地研究机器人机构学,我们需要补充一些代数学的知识。
群与李群
群与李群的定义
群是指可以对它的元素进行一种二元运算的集合。将这种二元运算记为$\circ$,群记为$G$,则$G$满足:
- 封闭律:对于$\forall g_1 ,g_2 \in G, g_1 \circ g_2 \in G$;
- 结合律:对于$\forall g_1,g_2,g_3 \in G, (g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3)$;
- 幺元律:存在唯一的元素$e \in G$,使得$\forall g \in G, e \circ g = g$;
- 逆元律:对于$\forall g \in G, \exists g^{-1} \in G$,使得$g \circ g^{-1} = e$。
依据二元运算的类型,可以将群分为加法群和乘法群。
如果群G的运算还满足交换律,即:$\forall g_1,g_2 \in G, g_1 \circ g_2 = g_2 \circ g_1$,则称G为交换群,或阿贝尔群(Abel)
19世纪末,挪威数学家 Sophus Lie 为了将群的思想应用到微分方程的对称性中去,引入了连续群即李群(Lie group)的概念。
李群除了以上四个群的基本特征之外,还需要满足一些特殊条件:
5.元素 $ g $ 的集合 $G$ 必定构成一个可微分的流形(简称微分流形, differential manifold)。而微分流形是一个可积空间,因此李群同时具有可积可微性。
6.群的二元运算一定是一个可微分的映射。
7.元素 $ g $ 到其逆元 $g^{-1}$ 的映射 $inv (g) = g^{-1}$ 也是一个可微分的映射。
李群的维数就是其所对应的流形的维数,李群可以看作是同时具有群和微分流形特征元素所组成的集合。
机器人学:旋转矩阵集合与矩阵乘法构成群,变换矩阵的集合与矩阵乘法也构成群。
几种常见的群
-
n维欧几里得空间V上所有正交变换组成的集合对于映射的乘法构成群,记为$O(V)$
-
行列式为1的正交变换组成的集合对于映射的乘法构成群,记为$SO(V)$。
-
域F上所有n级可逆矩阵组成的集合对于矩阵乘法成为一个群,称之为域F上的n级一般线性群,记为$GL(n,F)$。有时简写为$GL(n)$。$GL(n)$ 同时也是李群。
-
在$GL(n)$ 中包含有多种子群,其中将行列式为1的一般线性群称为特殊线性群,记为$SL(n,F)$,或$SL(n)$。
-
实数域上所有n阶正交矩阵组成的集合对于矩阵乘法构成群,称为实数域上的n阶正交群,记为$O(n)$。而行列式为1的n阶正交矩阵组成的集合对于矩阵乘法构成群,称为实数域上的n阶特殊正交群,记为$SO(n)$。
对$\forall R \isin SO(n)$,都有:
$SO(2)$ 和 $SO(3)$ 是两种重要的特殊正交群,前者用于表示绕某一固定轴线的平面转动,后者用于表示绕某一固定轴线的空间转动。
二维特殊正交群$SO(2)$ 的矩阵形式为:
易知二维旋转矩阵的逆矩阵(旋转 $\theta$ 角度的逆为旋转 $-\theta$ 角度)为:
定义:三维特殊正交群$SO(3)$ 与向量空间 $\Reals^3$ 的半直积为特殊欧氏群:
可以记为$(R,t)$,其中$R \in SO(3)$ 为旋转矩阵,$t \in \Reals^3$ 为平移矩阵。
易知$SE(3)$ 的矩阵形式为:
它的二元运算满足:
写成矩阵的形式:
参考前面的机器人学中的空间描述与坐标变换,易知三维旋转矩阵构成了特殊正交群,变换矩阵构成了特殊欧氏群。
它们对加法是不封闭的,对乘法是封闭的。
同时我们也可以对任何一个旋转矩阵或变换矩阵求逆,两个旋转矩阵相乘表示做了两次旋转。
李群是指具有连续性质的群,特殊正交群 $SO(n)$ 和特殊欧氏群 $SE(n)$ 在实数空间上是连续的,(刚体在连续的空间中运动),它们都是李群。
李子群及其运算
子群的定义:对于给定的群$G$,它的子群$H$应满足:
- 对于$H$中的任意元素$h$,$h \in G$,但是 $G$ 中的元素$g$不一定属于$H$。
- $H$ 应具有群的代数结构,包括:封闭律、结合律、幺元律、逆元律。
- $H$ 与 $G$ 具有相同单位元素$e$。
李子群在上面特征的基础上,还要满足是对应李群流形上的子流形。
平凡子群:群本身和单位元。除了平凡子群外的子群称为本征子群。
在三维移动群$T(3)$ 中,有2个本征子群:一维移动群$T(1)$ 和 二维移动群$T(2)$。而三维转动群$SO(3)$ 中,只有一个本征子群:一维旋转群$SO(2)$。
李子群的运算模式有三种:组合、交运算、商运算。
组合运算:李子群的组合运算通常表现为乘积运算,两个群的组合不一定是群,而是一个流形,只有满足封闭性条件的才是群。
直积运算:$G_1 \otimes G_2$ 表示两个群的直积
半直积运算:$G_1 \times G_2$ 表示两个群的半直积
直积运算的定义:给定群$G$ 和它的两个子群$U$ 和$V$,其中$u \in U$,$v \in V$,则由$U$ 和$V$ 组成的子流形 $U \otimes V$ 称为$G$ 中的元素用$(u,v)$ 表示。
直积的结果不一定是群,若两个子群的直积具有可交换性,那么它们的直积满足群的条件。
两个或多个相同子群的直积仍然等于该子群。
两个一维移动子群的直积可以构成二维子群:
一维移动子群和同轴的一维旋转子群的直积可以构成二维圆柱子群:
半直积的定义:给定群$G$ 和它的两个子群$U$ 和$V$,其中$u \in U$,$v \in V$,则由$U$ 和$V$ 组成的子流形 $U \times V$ 称为$G$ 中的元素用$(u,v)$ 表示。$U$ 在 $V$ 上的运算满足线性关系。由 $U$ 和 $V$ 组合构成 $G$ 的子流形:
该子流形在半直积运算模式下是群。
这种运算模式提供了一种构建群的新方法,用 $\times$ 来描述这种群。
三维特殊正交群 $SO(3)$ 和向量空间 $\Reals^3$ 的半直积组合运算得到了特殊欧氏群 $SE(3)$。
由一维特殊正交群 $SO(2)$ 和向量空间 $\Reals^2$ 的半直积组合得到子群 $SE(2)$。
交运算:给定群$G$ 和它的两个子群$G_1$ 和$G_2$,则这两个子群的交 $G_1 \cap G_2$ 仍然是$G$ 的一个子群。
李子群的交集还是李子群。
商运算:若 $H$ 是 $G$ 的子群,当
成立时,$G$中两个元素等效。
这种等效被称为陪集(coset),对应的陪集空间称为 $G$ 对 $H$ 的商空间,记为 $G/H$ 或者 $[g]$ 。
有:若 $h \isin H$ ,则 $[g] = [hg] $ 。
商空间是一个流形,不一定是李群,这个流形被称为陪集空间或齐次空间。
当子群 $H$ 是正则李子群时,商空间是李群或李子群。正则李子群是指在任何共轭变换下保持不变的李子群,记作 $N$ ,即 $gng^{-1} \isin N \quad (g \isin G, n \isin N)$ 。简写为 $gNg^{-1} \thicksim N$ 。
特殊欧式群的全部子群
将三维空间 $\Reals^3$ 上的刚体运动定义为具有形式 $g(\bold{p}) = \bold{Rp} + \bold{t}$ 的映射的集合,其中 $\bold{R} \isin SO(3) ,\bold{t} \in \Reals^3$ 。这些映射的全体构成一个六维李群,称为特殊欧几里得群,简称特殊欧氏群,记为 $SE(3)$ 。
经过数学上的研究,我们可以找到 $SE(3)$ 的全部子群,习惯上将他们称之为位移子群(displacement subgroup)。
其中有6种位移子群可以用来表示6种低副:转动副、移动副、螺旋副、圆柱副、平面副、球面副。
(机械原理:低副和高副的区别 低副:面和面接触的运动副被称为低副,接触部分压强较低 高副:点或线接触的运动副称为高副,接触部分压强较高,如齿轮副、凸轮副等)
称这6种低副为位移子群的生成元。
表格中每一种位移子群都有矩阵表达和几何表达两种表达方式。
位移子群是一种特殊的李子群,具有李群的完全代数特征和运算模式。
位移子群的交集 $A \cap B$ 仍然是位移子群,且满足交换律, $A \cap B = B \cap A$ 。
如果两个位移子群的交集是平凡子群 $\epsilon$ ,则定义这两个子群为独立位移子群,否则为相关位移子群。
任意位移子群的乘积 $A \cdot B$ 可能构成位移子群,也可能不是群而仅仅是一个位移子流形(displacement submanifold)。一般情况下不满足交换律,但是若满足交换律则乘积为位移子群。
如果 $A$ 和 $B$ 是同一个位移群 $Q$ 的子集,即 $A \subseteq Q, B \subseteq Q$ ,则根据群组合运算的封闭性知这两个子集合的乘积仍然属于该群,即 $A \cdot B \subseteq Q$ 。因此 $A \cdot B$ 是包含在位移群 $Q$ 中的一个位移子流形,但不一定具有代数结构。
例如, $R(N, \bold{u}) \cdot R(N, \bold{v})$ 不满足交换律,因此不是子群,几何的角度上:绕共点的两个空间轴线的连续旋转可以合成一个新的旋转运动丹其轴线方向一般不在这两个轴线所在的平面内。
但由于 $R(N, \bold{u}) \cdot R(N, \bold{v}) \subseteq S(N)$ ,因此它是一个包含在三维旋转群中的一个二维子流形。
两个或多个相同位移子群的乘积仍然等于该子群。
如果 $A \subseteq Q, B \subseteq Q$ ,且 $dim(A \cdot B) = dim(Q) $ ,则 $A \cdot B$ 是 $Q$ 的等效子群,即 $A \cdot B = Q$ 。
位移子群的商运算 $A/B$ 是一个位移子流形,只有当 $B$ 是正则子群时, $A/B$ 才是位移子群。
显然,我们上面的内容表面上是代数问题,实际上是机构的自由度分析问题。
位移子流形与运动链
对于工业机器人的机械臂,我们通常最关心的是末端执行器的刚体运动,参考下面的表格,其中多数并不是子群,而是子流形。
一般情况下,刚体运动都是光滑位移子流形。简称为位移子流形。
位移子流形也有交、乘积、商这三种运算模式。
定理:设 $H_1$ 和 $H_2$ 是 $SE(3)$ 中的两个位移子群,则 $H_1 \cdot H_2$ 是 $SE(3)$ 的一个位移子流形,且满足
运动链末端相对于固定端的任意运动均可表示为若干位移子群或位移子流形以及它们之间的乘积形式。
关于等效运动链的问题,我估计我用不到,这里不作更多讨论。
再探刚体运动
旋转矩阵
先看一下姿态变换,附着在刚体上的坐标系 ${B}$ 相对于固定坐标系 ${A}$ 的相对姿态可以用坐标系 ${B}$ 中的三个坐标轴的单位矢量相对于坐标系 ${A}$ 的坐标表达式来表示。
这个旋转矩阵实际上只有3个独立参数,需要满足单位长度和右手系的约束条件。这是一个单位正交的正定矩阵。
可以证明 $SO(3) \sub \Reals^{3 \times 3} $ 是满足矩阵乘法的李群。
刚体上的某点 $\mathbf{p}$ 关于时间变量的运动轨迹为:
定理:对于刚体上的旋转变换 $\bold R \in SO(3)$ ,满足:
距离不变,对于 $ \forall \mathbf{p,q} \in \Reals^3 $ 有 $ \Vert \mathbf{Rq-Rp} \Vert = \Vert \mathbf{q-p} \Vert$
夹角不变,对于 $ \forall \mathbf{u,v} \in \Reals^3 $ 有 $ \mathbf{R(u \times v) = Ru \times Rv} $
齐次变换矩阵:
形位空间:刚体的任一形位可以由物体坐标系相对于固定坐标系的位置( $\bold t \in \Reals^3 $ )和姿态( $\bold R \in SO(3)$ )共同确定,所有形位组成的空间称为刚体的形位空间。因此刚体的形位空间可以表示为 $\Reals^3$ 与 $SO(3)$ 的乘积空间(半直积),记作 $SE(3)$ ,即特殊欧式群,这里的“特殊”含义是右手系。
上式的两因子不具有互换性,左乘是将旋转作用于平移。
变换的叠加
以旋转为例,绕固定轴旋转的,左乘。绕当前轴旋转的,右乘。
李代数的引入
作为一种光滑的流形,李群上的任意一点P处都有切空间存在,该点的切空间包含过P点的所有切向量,且切空间的维数与流形的维数一致。
定义李群在其单位元 $\bold e$ 处的切空间为李代数。
设 $\mathbb{V}$ 是域 F 上的向量空间,在 $\mathbb{V}$ 中引入李括号的运算,即对于所有的 $ \bold{X,Y,Z} \in \mathbb{V} $ ,满足李括号的性质:线性、反对称性、雅可比恒等式。
1.线性。
2.反对称性。
3.雅可比恒等式。
则称 $\mathbb{V}$ 是域F上的李代数。
如果子空间 $\mathbb{W} \sub \mathbb{V}$ ,且对于所有的 $\bold{X,Y} \isin \mathbb{W}$ ,有 $\bold{X,Y} \in \mathbb{W}$ ,则该子空间 $\mathbb{W}$ 称为 $\mathbb{V}$ 的李子代数。
李代数是对自身的一种映射,它具有封闭性。
再定义李括号:
可以导出:
4.自反性。
令 $\textit{M}_n(\Reals)$ 是实数域 $\Reals$ 上的 $n \times n$ 矩阵, $\bold{XY}$ 是其中元素 $\bold{X}$ 和 $\bold{Y}$ 的矩阵乘积,则 $\bold{[X,Y]=XY-YX}$ 是 $\textit{M}_n(\Reals)$ 上的李代数。
伴随变换:若李群 $G$ 的李子代数 $\text{ℊ}$ 满足:
则称之为李代数的伴随变换。
伴随变换具有线性特征:
微分:假设g为群G中的一个元素, $\bold{X,Y}$ 为它李代数中的元素,在单位元处,可以近似写为 $g \approx \bold E + t \bold X , g^{-1} \approx \bold E - t \bold X$ ,则
对上式进行微分并设 $t=0$ ,得到 $\bold{(XY -YX)}$,这正是李括号的表达结构。
李代数与刚体运动
SO(3)的李代数
三维旋转群 $SO(3)$ 是一般线性群 $GL(3)$ 的子群,且
SO(3)的李代数记为so(3),它表示SO(3)在其单位元e处的切空间:
其中 $\boldsymbol{\hat{\omega} r = \omega \times r} $,$\boldsymbol r$为三维列向量,这是所有反对称矩阵的共有特性,其李括号的构造为:
或者通过下式:
表示将矩阵 $\boldsymbol{\hat{\omega}} \in \text{so}(3)$ 映射到 $\boldsymbol \omega (\boldsymbol \omega \in \reals^3)$ 中。
对于旋转矩阵,有:
由于 $so(3)$ 是一个三维向量空间,因此存在一组标准正交基:
分别表示绕直角坐标轴x,y,z的瞬时转动轴,或者用反对称矩阵表达为:
可以导出:
李代数 $so(3)$ 的伴随变换,计算得到:
T(3)的李代数
T(3)的李代数记为$t(3)$,用反对称矩阵表示为:
它的李括号为:
SE(3)的李代数
给定 $SE(3)$ 中任意一条路径 $t \mapsto \bold A(t)$ ,其中t为连续参数
它的李代数记为 $se(3)$ ,其中元素 $\boldsymbol{\hat \xi}$ 可以通过计算 $SE(3)$ 单位元处的切向量 $\boldsymbol{\dot A}$ 得到。
李括号为:
由上面两式可以得到:
考虑 $\boldsymbol{\hat \xi} \in \text{se}(3) \mapsto (\boldsymbol{\omega}^T, \boldsymbol{v}^T)^T \in \reals^6 $ 是同构关系,因此有:
李代数 $se(3)$ 是一个六维向量空间,因此它还可以用一组$\reals^6$中的一组正交基来表达。