1.so(3)上的指数映射

对于so(3)中的任意元素ϕ\phiϕ我们想计算它对应的李群SO(3)中的对应元素R,根据李群与李代数的引出及解析推导有指数映射:
R=exp(ϕ∧)(1.1)R=exp(\phi^{\wedge}) \ (1.1)R=exp(ϕ∧) (1.1)
那么如何去计算矩阵的e指数呢?我们首先想到的就是泰勒展开:
exp(ϕ∧)=∑n=0∞1n!(ϕ∧)n(1.2)exp(\phi^{\wedge})=\sum_{n=0}^{\infty}\frac{1}{n!}(\phi^{\wedge})^{n} \ (1.2)exp(ϕ∧)=n=0∑∞​n!1​(ϕ∧)n (1.2)
但是公式(1.2)中包含矩阵的无穷次幂,计算起来很麻烦,下面将推导一种计算指数映射的简便方法:

由于ϕ\phiϕ是三维向量,我们可以定义模长和方向,分别记作θ\thetaθ和aaa,于是有ϕ=θa(1.3)\phi=\theta a \ (1.3)ϕ=θa (1.3)。这里a是一个长度为1的方向向量,即∥a∥=1(1.4)\left\|a \right\|=1 (1.4)∥a∥=1(1.4)。

有了上述定义我们就可以进行推导了,我采用Ipad手写推导:

图1

经过上述推导最终得到公式(1.7),,如果大家学过机器人学可以发现这个公式与旋转向量到旋转矩阵的转换几乎一致,被称为罗德里格斯公式,这表明so(3)就是由所谓的旋转向量组成的空间。通过这个公式可以把so(3)中任意一个向量对应到一个位于SO(3)中的旋转矩阵。

反之如果定义对数映射,也能把SO(3)中的元素对应到so(3)中:
ϕ=ln(R)∨=(∑n=0∞(−1)nn+1(R−I)n+1)∨(1.8)\phi=ln(R)^{\vee}=(\sum_{n=0}^{\infty}\frac{(-1)^{n}}{n+1}(R-I)^{n+1})^{\vee} \ (1.8)ϕ=ln(R)∨=(n=0∑∞​n+1(−1)n​(R−I)n+1)∨ (1.8)
和指数映射一样,我们没必要直接使用泰勒展开计算对数映射,可以使用由旋转矩阵求解旋转角和旋转轴的方法,旋转角相当于θ\thetaθ,旋转角相当于aaa,我直接给出公式:
{θ=arccostr(R)−12Ra=a(1.9)\left\{\begin{matrix} \theta=arccos \frac{tr(R)-1}{2}\\ Ra=a\\ \end{matrix}\right. \ (1.9){θ=arccos2tr(R)−1​Ra=a​ (1.9)
解Ra=aRa=aRa=a时等同于求矩阵R特征值1对应的特征向量。
值得注意的是,每个SO(3)中的元素,都可以找到一个so(3)元素与之对应,但是可能存在多个so(3)中的元素,对应同一个SO(3),直观的理解是旋转角θ\thetaθ是周期性的,多转360度和没有转是一样的。
总结一下,三维旋转李群与李代数的关系如图2所式。

图2

2.se(3)上的指数映射

首先我写一下李群SE(3):
se(3)={ζ=[ρϕ]∈R6,ρ∈R3,ϕ∈so(3),ζ∧=[ϕ∧ρ0T0]∈R4×4}(2.1)se(3)=\left\{\zeta=\begin{bmatrix} \rho \\ \phi \\ \end{bmatrix} \in \texttt{R}^{6},\rho \in \texttt{R}^{3},\phi \in so(3),\zeta^{\wedge}=\begin{bmatrix} \phi^{\wedge}&\rho \\ 0^{T} &0 \\ \end{bmatrix} \in \texttt{R}^{4\times4} \right\} \ (2.1)se(3)={ζ=[ρϕ​]∈R6,ρ∈R3,ϕ∈so(3),ζ∧=[ϕ∧0T​ρ0​]∈R4×4} (2.1)

然后直接写出指数映射:
exp(ζ∧)=[∑n=0∞1n!(ϕ∧)n∑n=0∞1(n+1)!(ϕ∧)nρ0T1]exp(\zeta^{\wedge})=\begin{bmatrix} \sum_{n=0}^{\infty}\frac{1}{n!}(\phi^{\wedge})^{n} & \sum_{n=0}^{\infty}\frac{1}{(n+1)!}(\phi^{\wedge})^{n}\rho \\ 0^{T} &1 \\ \end{bmatrix}exp(ζ∧)=[∑n=0∞​n!1​(ϕ∧)n0T​∑n=0∞​(n+1)!1​(ϕ∧)nρ1​]
=[RJρ0T1]=T(2.2)=\begin{bmatrix} R & J\rho \\ 0^{T} & 1 \\ \end{bmatrix}=T \ (2.2)=[R0T​Jρ1​]=T (2.2)
注意Jρ=tJ\rho=tJρ=t,ttt就是传统意义上的平移矩阵。

之后进行Ipad手写证明:

图3

以上就是证明过程。
观察公式(2.2)发现该式与罗德里格斯公式有些相似,但不完全一样。平移部分经过指数映射后发生了一次以JJJ为系数矩阵的线性变换。
同样的,我们虽然也可以类比推得对数映射,不过根据变换矩阵T求so(3)上的对应向量也有更简便的方法:
从左上角直接计算旋转向量,而右上角的t满足:
t=Jρ(2.6)t=J\rho \ (2.6)t=Jρ (2.6)
解线性方程即可得到ρ\rhoρ。

总结一下,三维变换李群与李代数的关系如图2所式。

图4

之后的博客我会去写李群和李代数如何用于优化问题,并且会介绍一些优化方法,以及3d视觉中的BA法PnP。

李代数与李群间的转换-指数映射、对数映射相关推荐

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

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

  2. 李群与李代数1:对应关系及指数/对数映射

    李群与李代数1:对应关系及指数/对数映射 1. 群和李群 1.1 群的引出 1.2 群和李群定义及性质 2. 由李群引出李代数 2.1 反对称矩阵对应向量与求导关系 2.2 一阶导数矩阵求解 3. 李 ...

  3. 计算机与十进制 教案,二进制与十进制间的转换教案

    十进制与二进制间的转换 [教学目的与要求] 1.熟悉数制的概念:2.掌握位权表示法: 3.熟练掌握各数制之间的转换方法. [课时安排] 1课时. [教学重点与难点] 1.难点:位权表示法 十进制转化为 ...

  4. 9.2 图像类型(灰度图像、彩色图像、二值图像以及图像间的转换)

    常用0表示黑色,255表示白色,用0到255之间的数表示灰度 1.灰度图像 例1:生成一个灰色图像,并显示 A = [0 230; 255 60; 30 100]; A = uint8(A); ims ...

  5. Mat与IplImage*类型间的转换

    在Opencv2.X以上的处理中,大部分处理都是以Mat为主,而对于习惯了1.X的我来说,有时候会带来不便,希望能采用1.X的形式来处理. 经过试验,介绍两种简单的Mat与IplImage*类型间的转 ...

  6. Java中String和byte[]间的转换浅析

    Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...

  7. PHP 对象、数组间的转换

    /** * PHP 对象.数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(object),简单处理 $obj ...

  8. php+对象+toarray_PHP 对象、数组间的转换

    PHP 对象.数组间的转换 /** * PHP 对象.数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(obj ...

  9. java集合——集合与数组间的转换+算法

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合与数组间的转换+算法 的相关知识: 0.2) for full sour ...

最新文章

  1. 面试官问:服务的心跳机制与断线重连,Netty底层是怎么实现的?懵了
  2. JavaScript表单验证,输入中文时字符长度为2
  3. mysql 从裤3523_MySQL出现3523错误分析
  4. 串口接收标志位语句_如何获取串口的发送和接收的标志位?
  5. Elasticsearch实现类Google高级检索
  6. 迁移学习让深度学习更容易
  7. linux怎么使用git安装目录,Linux系统中怎么安装Git?
  8. linux usr目录权限不够,【ARM-Linux开发】Ubuntu下的/usr目录权限,导致不能使用sudo命令的修复...
  9. oracle日期时间
  10. 麻省理工线性代数第二讲
  11. javascript去除空格回车符
  12. Unity 3D WebView 插件之基础介绍(一)
  13. 【大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)】
  14. windows10 快捷代码
  15. 【面试/笔试】—— 数学
  16. Nodejs 中运行 JS 代码
  17. 几个主流的Java连接池
  18. python机器学习---数据处理---文本数据处理
  19. 你是真的“C”——找单身狗~
  20. MDUKEY创始人兼CEO韩元桢明确将通过“价格保障机制”确保MDU投资人的长久利益

热门文章

  1. QT QTextEdit富文本插入字体-表格-编号-图片-查找-语法高亮功能
  2. C语言中求指定位数的水仙花数
  3. Windows下使用GitHub Pages搭建hexo博客详细教程以及Next主题超全配置
  4. 『杭电1713』相遇周期
  5. 如何正确使用git和github
  6. 洛谷· [AHOI2008]紧急集合 / 聚会
  7. 计算机的桌面图标都没有了怎么办,电脑桌面图标都没了怎么办?
  8. python输入名字显示姓和名_Python函数返回名字和姓氏中常用字母的列表
  9. 【转载】P2P系统频现安全漏洞 技术短板将致行业洗牌
  10. 错觉图片生成实验 - 平行线(黑林错觉)