李群和李代数
今天先介绍李群和李代数的基础,说明白了基础,下一讲就可以开始讲讲位姿估计了。
1. 李群
特殊正交群是有效的旋转矩阵的集合:
这里,正交约束 给具有9个参数的旋转矩阵引入了6项约束,把自由度降到了3。我们通过选择 来获得一个有效旋转。
用于表示姿态的是特殊欧几里得群:
如此,我们引入群的定义:群(group)是一种集合加上一种运算的代数结构。把集合记为 ,运算记为 , 群就可以记为 。而这个运算必须满足以下条件:
- 封闭性:
- 结合律:
- 幺元:
- 逆:
此外,李群还是一个微分流形,群上的运算是光滑的。 这里先提一句,后面我们也会再进行解释。
2. 李代数
每个矩阵李群都有一个对应的李代数。李代数由数域F上张成的向量空间V和一个二元运算符(李括号)组成。
李代数由如下4个性质:
- 封闭性: .
- 双线性:
- 自反性: .
- 雅可比等价: .
李代数是李群幺元处的切空间,它完全地刻画了对应李群的局部性质。
2.1 李代数so(3)
与SO(3)相关联的李代数so(3)为
- 向量空间:
- 域:R
- 李括号:
这里,^表示对向量取李代数对操作。
对于so(3)而言, 取李代数的操作正好是对向量取反对称矩阵 的操作。
2.2 李代数se(3)
此外,定义运算符 ,该运算符会在后面介绍SE(3)的伴随时用到:
3. 指数和对数映射
矩阵的指数、对数运算为
3.1 旋转
我们用旋转向量来表示so(3)的向量空间,
(这中间将求和函数展开,并利用了向量叉乘的一些性质和三角函数的泰勒展开式,推导又臭又长,就不写了。真想推可以看参考文献。不过我估计也没多少人想推一遍...)
反之,有
解方程即可得到旋转角 ,一般限制 。而由 可以发现,a是C的特征向量,对应的特征值为1,通过解C的特征值和特征向量就可以得到a。
由于cos是一个偶函数,因此 的符号并不确定。我们可以看解得的 是否产生一个有效的旋转矩阵C,若不是,则将 的符号取反。
由上面的计算公式可以发现:指数映射是一个满射。即对每个SO(3) 中的元素都可以找到一个so(3) 的元素与之对应;但存在多个so(3) 元素( )对应到同一个SO(3)上。
3.2 姿态
SE(3) 上的指数映射的推导原理与SO(3) 类似。
其中,
这是由于 中的 并不直接表示向量空间中的平移,还需要通过对应旋转矩阵的左雅可比J来进行映射。
3.3 雅可比
SO(3)的左雅可比为:
展开级数有
注意到当 时上式具有奇异性,对应的J没有逆矩阵。
在优化中,我们也常常需要 及其逆矩阵:
3.4 位姿T的直接级数表示
利用等式
可以使用级数直接计算T:
(这个推导同样又臭又长,就不列出来了...)
4. 伴随
SE(3)元素的伴随可以表示为:
Ad(SE(3))同样是一个矩阵李群。
同样地,对于李代数se(3),也有对应的伴随。
令 ,对应的伴随矩阵为
4.1 指数对数映射
具体的计算公式为
其中,
这样计算比较复杂,建议还是通过SE(3)和so(3)来进行计算。
因此可以有
4.2 直接级数表示
利用
可以得到伴随 的直接级数表示:
最后,注意到非常重要的一点就是:李代数so(3), se(3)均附着在一个向量空间上( ),这为后续的非线性优化工作打下了基础。
如果觉得有用,还请点个赞: )
参考文献:《state estimation for robotics》
评论(0)
您还未登录,请登录后发表或查看评论