答案:

Q1:验证SO(3) SE(3) Sim(3)关于乘法成群

SO(3) : 由P64最开始可知,乘法代表了旋转,而SO(3)是旋转矩阵的集合,

SE(3)  Sim(3)  同理(最基础的部分还是旋转,平移和缩放只是附加的)

Q2:验证(R3, R, X)构成李代数

满足李代数定义的四条性质:

封闭性:对于任意的三维向量X Y,他们的内积仍然是三维向量

双线性:显然可得

自反性:sin(0°) = 0

雅克比等价:  只可以举一个特殊的例子,在笛卡尔坐标系下考虑就是三个零相加  待大神补充

Q3:验证so(3) se(3)构成李代数

so(3)的元素是一个三维向量/三维反对称矩阵, 并将这个元素记做 φ    其李括号是[φ1,φ2] = [φ1φ2 - φ2φ1]V

封闭性:

双线性:

自反性:显然可得

雅克比等价:待大神补充

se(3)的元素是一个六维向量,上面是平移,下面同so(3)

封闭性:

双线性:

自反性:显然可得

雅克比等价:待大神补充

Q4:

Q5:

Q6:

Q7:


学习心得:

在研究SLAM时候,除了对三维世界刚体运动表示外(ch3),由于噪声的影响,还要进行对可能的位姿进行优化,而旋转矩阵必须得是行列式为1的正交矩阵,

为了减少这种约束,我们希望通过李群和李代数之间的关系,把位姿估计变为无约束的问题

李群和李代数是群论里的一部分,我们研究的SO(3) SE(3)都是李群,SO(3) SE(3)只有乘法没有加法,既然没有加法,就不存在取极限,更没有求导了

所以引入李代数来实现求导,进而引出了扰动模型

Q:实践时发现看了这么多公式的推演,但还是没法动手写代码,甚至连阅读demo code都是一件费劲的事情!

Solution:1.研读代码和公式,学习代码

缺陷

    虽然数学推导确实很难,但其实做数学推导还是有很多好处的,比如可以加深对公式的理解和记忆,以后看到类似paper的时候就不会感到晕了【类比思想嘛】,比如相似变换群(Sim(3))

    但即使这样做下来,除了对SO(3) 和 se(3)有一些很好的把握外,变换矩阵的还有点不太清楚,第二遍争取可以把公式再梳理一遍

    


【视觉SLAM14讲】ch4心得与课后题答案【仅供参考】的更多相关文章

  1. c++面向对象程序设计 课后题 答案 谭浩强 第四章

    c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...

  2. C程序设计(谭浩强)第五版课后题答案 第一章

    大家好,这篇文章分享了C程序设计(谭浩强)第五版课后题答案,所有程序已经测试能够正常运行,如果小伙伴发现有错误的的地方,欢迎留言告诉我,我会及时改正!感谢大家的观看!!! 1.什么是程序?什么是程序设 ...

  3. 【视觉SLAM14讲】ch3课后题答案

    1.验证旋转矩阵是正交矩阵 感觉下面这篇博客写的不错 http://www.cnblogs.com/caster99/p/4703033.html 总结一下:旋转矩阵是一个完美的矩阵——正交矩阵.①行 ...

  4. javase程序设计课后题答案

    ;第1章 Java概述 编译java application源程序文件将产生相应的字节码文件,这些字节码文件别的扩展名为.java 执行一个java程序fristapp的方法是运行java frist ...

  5. c++ primer plus 第七章 课后题答案

    #include <iostream> using namespace std; double HAR_AVG(double, double); void TEST(bool); int ...

  6. c++ primer plus 第六章 课后题答案

    #include <iostream> #include <cctype> using namespace std; int main() { char in_put; do ...

  7. c++ primer plus 第五章 课后题答案

    #include <iostream> using namespace std; int main() { ; cout << "Please enter two n ...

  8. c++ primer plus 第四章 课后题答案

    #include<iostream> #include<string> using namespace std; int main() { string first_name; ...

  9. c++ primer plus 第三章 课后题答案

    #include<iostream> using namespace std; int main() { ; int shen_gao; cout <<"Please ...

随机推荐

  1. 自己编写shave函数

    import numpy def shave(I,border=None): I = I[border[0]:I.shape[0]-border[0],border[1]:I.shape[1]-bor ...

  2. 递归函数之阶乘和字符串反转-基于R和Python

    Python课第五周开始讲函数了.递归函数.递归在python中不能超过900多层,否则报错内存溢出什么的.同样在R中递归太深也会报错,阈值和python中大概一样,900多次就报错了. error ...

  3. 将base64编码转换图片

    /// <summary> /// 二进制Base64编码转图片 /// </summary> /// <param name="bytes"> ...

  4. 三、Object-C内存管理

    一.管理范围:任何继承了NSObject的对象,对基本数据类型无效 原理: 1.每个对象都有个引用计数器,是一个与之关联的整数 2.使用了 3.给对象发送一条retain消息,可以使对计数器+1 4. ...

  5. Git log、diff、config 进阶

    前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git相关, 看看如何通过配置自己的 git config ...

  6. 谈谈JDK8中的字符串拼接

    字符串拼接问题应该是每个Java程序员都熟知的事情了,几乎每个Java程序员都读过关于StringBuffer/StringBuilder来拼接字符串. 在大多数的教程中,也许你会看到用+号拼接字符串 ...

  7. EBS并发管理器启动失败,系统暂挂,在重置计数器之前修复管理程序

    今天EBS安装补丁之后,因为停并发管理器的时候,因为关闭EBS应用时,并发管理器没有在前台停止,就直接停了应用服务,导致启动时,并发管理器直接起不来了,使用adcmctl.sh也没有办法启动. 进入系 ...

  8. ES6初识-Proxy和Reflect

    { let obj={ time:'2017-03-11', name:'net', _r:123 };   let monitor=new Proxy(obj,{ // 拦截对象属性的读取 get( ...

  9. SQLSERVER 数据库恢复挂起的解决办法

    如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了: USE masterGOALTER DATABASE test SET SINGLE_USERGOALT ...

  10. JAVA运行机制

    这一篇我们来简单理解一下JAVA的运行机制 大概可以分为三大部分 1.编写程序 2.编译程序 3.运行程序 1.编写程序 编写程序就是我们前面说的源代码 这些源代码都有特殊的语法 例如main函数 他 ...