课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master

1. 基础知识

需要复习现代和矩阵论的知识。

  1. 特征值,特征向量有啥用?
    有了特征值能求特征向量,有了特征向量就能够得到基础解系,就能够解齐次/非齐次方程。

2. 矩阵论基础

关于最小二乘法求解列满秩超定方程组的最小二乘解的推导见这里,讲的很详细,有关于矩阵求偏导的部分:快速求导法:分子布局,向量后置求导,系数不变;向量前置求导,系数前置并转置。

最小二乘法的几何意义:解决了最小二乘法的几何意义的解释。

最小二乘法的矩阵解法:这篇相当综合,综合了最小二乘法,Cholesky分解求线性最小二乘解,QR分解求线性最小二乘解,SVD分解求亏秩最小二乘解,超定齐次方程组的线性最小二乘解法,欠定行满秩方程组的线性最小二乘解法。

3. 计算坐标变换

#include <iostream>
using namespace std;
#include <Eigen/Core>
#include <Eigen/Geometry>
using namespace Eigen;int main(int argc, char ** argv)
{//创建视觉传感器和激光传感器的四元数(构造函数顺序是wxyz,而存储的系数默认是xyzw)Quaterniond q_BL(0.3, 0.5,0, 20.1 ), q_BC(0.8, 0.2, 0.1,0.1);//四元数归一化q_BC.normalize();  //如果将四元数表示为旋转的话,如果四元数没有归一化的话,那么旋转是未定义的行为q_BL.normalize();//平移向量t_BL和t_BCVector3d t_BL(0.4, 0, 0.5), t_BC(0.5, 0.1, 0.5);//p_C坐标Vector3d p_C(0.3, 0.2, 1.2);//构造变换矩阵Tc1w和Tc2wIsometry3d T_BL(q_BL), T_BC(q_BC);T_BL.pretranslate(t_BL);T_BC.pretranslate(t_BC);//计算p_LVector3d p_L = T_BL.inverse() * T_BC * p_C;cout << "这个点在激光系下的坐标:" << p_L.transpose() << endl;//计算在世界坐标系下的坐标//创建世界系和机器人本体的四元数Quaterniond q_WR(0.55, 0.3, 0.2,0.2), q_RB(0.99, 0, 0,0.01);//四元数归一化q_WR.normalize();q_RB.normalize();//平移向量t_WR,t_RBVector3d t_WR(0.1, 0.2, 0.3), t_RB(0.05, 0, 0.5);//构造变换矩阵T_WR和T_RBIsometry3d T_WR(q_WR), T_RB(q_RB);T_WR.pretranslate(t_WR);T_RB.pretranslate(t_RB);//计算p_WVector3d p_W = T_WR * T_RB * T_BC * p_C;cout << "这个点在世界系下的坐标" << p_W.transpose() << endl;return 0;
}

参考博客和《视觉SLAM十四讲》P64-64
求变换矩阵时平移量也要参与逆的运算,不能直接反向。

4. 代填的坑

1. Eigen的官方讲解还没看

2. 矩阵论里面各种分解不知道有什么用,看这篇好好理解下:

最小二乘法的几何意义
最小二乘法的矩阵解法

3. 使用四元数计算偏移矩阵那里需要再看看书,试试那个运算。

4. 记住旋转矩阵是正交矩阵,det=1即可

5. 罗德里格斯公式的证明那里不是很理解,而且证明正交的运算还有些不理解,

看的这篇博客的

6. 四元数性质的验证

不理解这个

然后,我知道ε+ε=ε×ε=0\varepsilon^+\varepsilon=\varepsilon\times\varepsilon=0ε+ε=ε×ε=0,因为他俩平行,但是还是觉得上面的推导有些不对。

深蓝学院-视觉SLAM课程-第2讲作业相关推荐

  1. 深蓝学院-视觉SLAM课程-第7讲作业:SLAM中g2o入门详解,直接法BA

    1. 引言 在SLAM中,BA是个重要的部分,前后端很多地方都用得到,而g2o是一个很重要的使用图优化求解优化问题的库,所以有必要熟练掌握,尽管有了些C++的底子,但是看g2o的代码还是比较吃力,所以 ...

  2. 深蓝学院-视觉SLAM课程-第6讲作业

    课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master 第6讲作业 2. T2 2.1 光流文献综述 文献还没读完,这部分参考博客 ...

  3. 深蓝学院-视觉SLAM课程-第1讲笔记

    课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master 1. 基础知识 一些图像处理方面的工作需要借助ML方法来完成:物体识别,检测 ...

  4. 深蓝学院-视觉SLAM课程-第2讲笔记--三维空间刚体运动

    课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master 0. 内容 C++没有矩阵的运算,用别人的库来进行矩阵运算,其中Eigen库 ...

  5. 深蓝学院-视觉SLAM课程-第3讲笔记-李群和李代数

    课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master 0. 内容 1. 什么是群 为什么要引入群? 因为求旋转矩阵或者变换矩阵的导 ...

  6. 深蓝学院-视觉SLAM课程-第7讲笔记

    课程Gitbug地址:https://github.com/wrk666/VSLAM-Course/tree/master 0. 内容 这讲来讲后端 之前的最小二乘的方法属于批量方法,较为简单,另一种 ...

  7. 深蓝学院-视觉SLAM课程-第6讲笔记

    课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master 0. 内容 仍然是前端的内容,估计位姿,不过不是特征点法,而是另外的方法. ...

  8. 深蓝学院-视觉SLAM课程学习课后题

    一. 第一节课习题# 标题 1.熟悉linux (1)可以通过 sudo apt-get install <软件名>的方式安装软件 当自己下载了软件压缩包之后(tar.gz文件),可以解压 ...

  9. 深蓝视觉SLAM课程第四讲--相机模型,非线性优化(G2O)

    课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master 0. 内容 对应于十四讲中的第5讲和第6讲 回顾十四讲P24-26 1. 针 ...

最新文章

  1. memcached 缓存服务器
  2. html的左侧菜单栏,HTML 之 左侧菜单
  3. python进阶(第三章1) 字典
  4. go mod常用命令
  5. ORM(手写简单ORM)
  6. 诺基亚X71上手评测:中端机市场中的绝对C位
  7. 用UIWebView加载本地图片和gif图
  8. java开发面试 自我介绍 与 项目介绍是重点
  9. nios IIcommand shell 烧录
  10. vue-网页Logo标题及矢量图标
  11. 最全面的安卓编码规范
  12. 计算机毕业设计(附源码)python幼儿园管理系统
  13. 用python实现双人五子棋(终端版)
  14. php开发-如何调用后端服务
  15. 使用ADB命令卸载软件
  16. 公众号视频查找接口,支持自定义接口,支持水印
  17. 大数据开发:MongoDB系统架构简介
  18. 【ML特征工程】第 2 章 :简单数字的花式技巧
  19. Windows XP 安装 MTP 驱动
  20. delphi导入oracle数据库,Oracle数据库自动备份工具(Delphi源码)

热门文章

  1. 各大渠道 2020 年春节放假安排,赶紧收藏!
  2. 蓝桥杯单片机 | 特训案例【进阶03】24C02的基本读写操作
  3. 用数组来处理Fibonacci数列问题
  4. 你带她满星通关,她为你笑靥如花|Cocos精品《保卫萝卜3》
  5. 如何实时监测服务器某个端口通不通
  6. Windows CE 6.0 vs 7.0
  7. linux c 多显卡编程,Linux 编程之GPU计算(转)
  8. 台式计算机刚做完系统就蓝屏,台式电脑总会蓝屏是怎么回事
  9. 大牛证券分析近期指数波动在加大
  10. oracle jpa字段加注释,JPA 通过注解自动生成表,添加 字段名、类型、注释