zoukankan      html  css  js  c++  java
  • 视觉SLAM中的李群&李代数基础

    前言

    在做SLAM研究的时候,会涉及到对旋转矩阵求导的问题。这时候需要使用矩阵李群的知识,将旋转或者变换等矩阵李群形式,映射到李代数上求解。本文主要涉及两个特殊矩阵李群:特殊正交群(special orthogonal group)SO(3),表示旋转;特殊欧几里得群(special Euclidean group)SE(3),表示位姿。

    1 群的定义

    群(Group)是一个集合加上一种运算所构成的代数结构。该运算将两个元素a和b组成另外一个元素,记为a·b或者ab。记集合为G,运算为· ,则当满足一下四个性质的时候,称(G, •)为一个群。

    (1)封闭性(closure):任意a,b属于G,有a·b仍然属于G;

    (2)结合性(associativity):任意a,b,c属于G,有(a·b)·c = a·(b·c);

    (3)单位元(幺元)(identity):存在a0属于G,对任意b属于G,均有a0·b = b·a0= b;

    (4)逆元(invertibility):任意a属于G,存在a-1属于G,使得a·a-1= a0


    2 特殊正交群和特殊欧几里得群

    特殊正交群:


    特殊欧几里得群:

     

    李群:

    •    李群是一个微分流形,群上的操作是光滑的。

    •    矩阵李群的元素是矩阵,群上的运算是矩阵乘法,元素的逆即矩阵的逆。

    •    SO(3)和SE(3)都是李群,但是只对乘法封闭,对加法不封闭,不适合做微分、求导运算。


    3 李代数

    3.1 李代数定义

    对于任意一个李群,都存在一个李代数与之对应。李代数是一种位于向量空间的代数结构。李代数包含一个集合V,一个数域F和一个二元运算[ , ]。如果它们满足一下四条性质(封闭性、双线性、自反性、雅克比等价),就称(V, F, [ , ]) 为一个李代数。

    (1)封闭性(closure):[X, Y]属于V,

    (2)双线性(bilinearity):[aX+bY,Z] = a[X,Z]+b[Y,Z], [Z, aX+bY]= a[Z,X]+b[Z,Y],

    (3)自反性(alternating):[X, X] =0,

    (4)雅克比等价(Jacobi identity):[X, [Y,Z]] + [Z, [X,Y]] +[Y, [Z,X]] =0


    3.2 李代数的引出过程


    3.3  旋转和变换的李代数so(3)和se(3)

    与SO(3)对应的李代数是so(3):


    与SE(3)对应的李代数是se(3):



    4 指数映射和对数映射

    4.1 指数映射

    指数映射是从李代数映射到李群的一种方式。

    为了定义矩阵指数运算,需要用到泰勒展开式。

    ,关于有如下性质:



    关于 进行泰勒展开:



    即罗德里格斯公式。这说明so(3)的物理意义就是旋转向量。

    对于se(3)和SE(3),也能得到类似的指数映射关系。


    4.2 对数映射

    同理,给定旋转矩阵(李群元素),也能求出对应的李代数。

    实际中可以采用下面的公式来求解。




    小结

    本文的内容参考了《state estimation for robotics》,以及高博(半闲居士)的SLAM公开课,如有错误,敬请指正。



  • 相关阅读:
    Ubuntu Git GUI工具GitKraken安装
    轻松理解String.intern()
    Ubuntu MySQL安装
    稳定与不稳定的人生(转自知乎)
    【推荐】我们这一代人的困惑
    没关系,因为你是好人呀
    论文--Topic-Sensitive PageRank
    论文笔记-Mining latent relations in peer-production environments
    Open Source Book For ML
    LeetCode-Populating Next Right Pointers in Each Node
  • 原文地址:https://www.cnblogs.com/yanhuiqingkong/p/7770049.html
Copyright © 2011-2022 走看看