开始本文前,我已经有《视觉SLAM十四讲-高翔》前三章基础。

目录

李群李代数基础

李群

李代数的引出


李群李代数基础

在前几章介绍了旋转矩阵和变换矩阵,当时,我们说三维旋转矩阵构成了特殊正交群SO(3),而变换矩阵构成了特殊欧氏群 SE(3)。

这里可以引出,无论是旋转矩阵还是变换矩阵,他们对加法都是不封闭的。对于任意两个旋转矩阵R1,R2,他们按照矩阵加法的定义,和不再是一个旋转矩阵:

对于变换矩阵亦是如此。我们发现,这两种矩阵并没有良好定义的加法,相对的,它们只 有一种较好的运算:乘法。SO(3) 和 SE(3) 关于乘法是封闭的:

两次旋转矩阵相乘表示做了两次旋转,对于这种只有一个运算的集合,我们叫它做群。

群(Group)是一种集合加上一种运算的代数结构。我们把集合记作 A,运算记作 ·, 那么群可以记作 G = (A, ·)。群要求这个运算满足以下几个条件:

1.封闭性    2.结合律     3.幺元   4.逆

详见https://zhuanlan.zhihu.com/p/115658697

李群

李群是指具有连续(光滑)性质的群。像整数群 Z 那样离散的群没有连续性质,所以不是李群。而 SO(n) 和 SE(n),它们在实数空间上是连续的。我们能够直观地想象一个刚体能够连续地在空间中运动,所以它们都是李群

李代数的引出

对于任意的旋转矩阵R,满足

在实际中,用R表示相机或其他传感器的旋转,它会随时间t变化,即为时间的函数:R(t),它仍是旋转矩阵,所以依旧满足上式,则有

对上式左右两边同时求导,可得

将式子移项,对转置外移,整理可以得到

这条等式就可以看出是一个反对称矩阵

曾经叉积的学习中,引入了^符号,把一个向量变成了反对称矩阵。同理,对于任意反对称矩阵,我们亦能找到一个与之对应的向量。把这个运算用符号 表示:

可以理解成向量到矩阵的变换,矩阵到向量的变换。

在上方已经得出是反对称矩阵,可以找一个三维向量与之对应,于是有:

等式两边同时R(t),由于R为正交阵,有:

可以看到,每对旋转矩阵求一次导数,只需左乘一个 矩阵即可。为方便讨论,我们设 t0 = 0,并设此时旋转矩阵为 R(0) = I。按照导数定义,可以把 R(t) 在 0 附近进行一阶泰勒展开:

我们看到 ϕ 反映了 R 的导数性质,故称它在 SO(3) 原点附近的正切空间 (Tangent Space) 上。同时在 t0 附近,设 ϕ 保持为常数 ϕ(t0) = ϕ0。则有:

上式是一个关于 R 的微分方程,而且我们知道初始值 R(0) = I,下面进行求解:

这里引出齐次一阶线性方程方便读者进行理解:

             分离变量得到   

两边同时积分,得到

也可以表示为

那么也就不难解出

由于做了一定的假设,所以它只在 t = 0 附近有效。

通过推导,我们知道了旋转矩阵 R 与另一个反对称矩阵  通过指数关系发生了联系。也就是说,当我们知道某个时刻的 R 时,存在一个向量 ϕ,它们满足这个矩阵指数关系。

给定某时刻的 R,我们就能求得一个 ϕ,它描述了 R 在局部的导数关系。ϕ 正是对应到 SO(3) 上的李代数 so(3)。

矩阵指数 事实上正是李群与李代数间的指数/对数映射。

下一篇会详细说明李代数

李群和李代数——公式推导(1)相关推荐

  1. 李群与李代数公式推导

    参考:李群与李代数_详细公式推导 参考:视觉SLAM十四讲 为什么要引入李代数 旋转矩阵(李群)自身是带有约束的,正交且行列式为1,他们作为优化变量时,会引入额外的约束,使得优化变的困难,通过转为李代 ...

  2. 从零开始一起学习SLAM | 为啥需要李群与李代数?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 很多刚刚接触SLAM的小伙伴在看到李群和李代数这部分的时候,都有点 ...

  3. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机

    第四讲---第五讲学习笔记如下: 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义.指数和对数映射_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模 ...

  4. 李群、李代数在SLAM中的应用

    文章目录 李群.李代数 李群.李代书与坐标变换的对应关系 SE(3)上的李代数求导数 左乘扰动.右乘扰动 怎么选取用左or右扰动? SLAM中的使用 重投影误差 误差项构建 对应C++代码 雅克比矩阵 ...

  5. 大师兄!SLAM 为什么需要李群与李代数?

    from https://mp.weixin.qq.com/s/sVjy9kr-8qc9W9VN78JoDQ 作者 · electech6 来源 · 计算机视觉life 编辑 · Tony 很多刚刚接 ...

  6. SLAM数学篇:李群与李代数

    李群与李代数 位姿估计问题   假设某时刻机器人位姿为 T T T ,观察到世界坐标系中 p p p 点,产生观测数据 z z z ,则有 z = T p + w z=Tp+w z=Tp+w 存在观测 ...

  7. 《机器人与数字人:基于MATLAB的建模与控制》——2.2节李群和李代数

    本节书摘来自华章社区<机器人与数字人:基于MATLAB的建模与控制>一书中的第2章,第2.2节李群和李代数,作者[美]顾友谅(Edward Y.L.Gu),更多章节内容可以访问云栖社区&q ...

  8. 视觉SLAM十四讲学习笔记——第四讲--李群与李代数

    4.1李群与李代数基础 旋转矩阵和变换矩阵对加法是不封闭的.换句话说,对于任意两个旋转矩阵R1, R2,按照矩阵加法的定义,和不再是一个旋转矩阵. SO(3) 和 SE(3)对乘法是封闭的.两个旋转矩 ...

  9. 视觉SLAM十四讲学习笔记-第四讲-李群与李代数基础和定义、指数和对数映射

    基础: 在SLAM中的旋转,除了表示之外,我们还要对它们进行估计和优化.因为在SLAM中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题.一种典型的方式是把它构建成一个优化问题 ...

最新文章

  1. 约瑟夫环 猴子选大王
  2. 【知识强化】第二章 进程管理 2.1 进程与线程
  3. 【Android APT】注解处理器 ( Element 注解节点相关操作 )
  4. MySQL配置文件my.cnf中文版
  5. can't find a register in class `GENERAL_REGS' while reloading `asm'
  6. 第四届泉水文化论坛协调会-商协社团:平台经济谋定水产业
  7. 日志服务(Log service)4月控制台更新指南
  8. 谷歌最新双塔DNN召回模型——应用于YouTube大规模视频推荐场景
  9. python中变量和函数的区别_关于python中带下划线的变量和函数 的意义
  10. java数组螺旋矩阵从上到下_Java-基础编程(螺旋矩阵乘法表)
  11. 基于 Apache Mahout 构建社会化推荐引擎
  12. vmware esxi 4.0 上安装postfix,mailx发送邮件
  13. ASP.NET MVC 5 学习教程:数据迁移之添加字段
  14. Linux之vim编辑器的使用
  15. Android实战简易教程-第七十三枪(拨打、接听电话自动免提)
  16. preg_match用法
  17. Mars3D开发教程学习步骤(不定时更新
  18. 睡眠键重启计算机,Windows10进入睡眠模式后按任意键会自动重启怎么办
  19. python查天气预报_Python如何读取天气预报
  20. You appear to be running an X server; please exit X before installing. For further details, please

热门文章

  1. Visual Studio代码:高级用户指南
  2. AlarmManager定时不准确
  3. vue渲染数据后顺序乱了
  4. 新华社中移动共建搜索引擎
  5. Java把一个文件转化为byte字节数组
  6. Eureqa Formulize从实验数据中自动筛选函数关系的symbolic regression符号回归软件
  7. 【Flutter 异步编程 - 捌】 | 计算耗时? Isolate 来帮忙
  8. ubuntu 下语系编码转换
  9. keras基于CNN和序列标注的对联机器人
  10. 用FPGA加速卷积神经网络的知识储备