2022年6月16日,现在是大学本科毕业准研一的暑假,老师开组会让我们确定了研究方向,我的研究方向是协同探测与自动驾驶。与师兄交流后建议我阅读一本书《视觉SLAM十四讲从理论到实践》。怕自己学的不好,也怕自己坚持不下去,特意写一下读书笔记,记录下自己的学习过程。如果有任何问题,欢迎评论指正或者私信留言,不胜感激!

第一讲 预备知识

我觉得吧,第一讲就说了几点。

  • 笔者不是个正经人
  • 你得会高数、线代和概率论,C++基础以及Linux基础。

课后习题

  1. 有线性方程Ax = b,若已知A,b,需要求解x,该如何求解?这对A和b有哪些要求?
    提示:从A的维度和秩角度来分析。

    设A为 m × n 的矩阵,同时记A的秩为r(A) = r
    ① 若 b = 0,则转化为齐次方程组解的问题。
    1)当r=n,则方程有唯一解,行列式不为0。
    2)当r<n,则方程有无穷解。
    ② 若 b ≠ 0,则转化为非齐次方程组解的问题。系数矩阵A和增广矩阵B的秩分别记为r(A)和r(B)
    1)当r(A) < r(B),方程组无解
    2)当r(A) = r(B) = n,方程有唯一解
    3)当r(A) = r(B) < n,方程有无穷解
  2. 高斯分布是什么?它的一维形式是什么样子?它的高维形式是什么样子?.
    高斯分布又称正态分布,他的标准型如下:
    f(x)=12πe−x22f(x) = \frac{1}{\sqrt{2π}}e^{-\frac{x^2}{2}}f(x)=2π​1​e−2x2​
    图像如下:

    先假设n个变量 x=[x1,x2,⋯,xn]T 互不相关,且服从正态分布(维度不相关多元正态分布),各个维度的均值E(x)=[μ1,μ2,⋯,μn]T, 方差 σ(x)=[σ1,σ2,⋯,σn]T
    根据联合概率密度公式:
    f(x)=p(x1,x2....xn)=1(2π)nσ1σ2⋯σne−(x1−μ1)22σ12−(x2−μ2)22σ22⋯−(xn−μn)22σn2f(x) = p(x_{1},x_{2}....x_{n}) = \frac{1}{(\sqrt{2π})^nσ_{1}σ_{2}\cdotsσ_{n}}e^{-\frac{(x_{1}-μ_{1})^2}{2σ_{1}^2}-\frac{(x_{2}-μ_{2})^2}{2σ_{2}^2}\cdots-\frac{(x_{n}-μ_{n})^2}{2σ_{n}^2}}f(x)=p(x1​,x2​....xn​)=(2π​)nσ1​σ2​⋯σn​1​e−2σ12​(x1​−μ1​)2​−2σ22​(x2​−μ2​)2​⋯−2σn2​(xn​−μn​)2​
    例如二元正态分布图像如下:
  3. 你知道C++中的类吗?你知道STL吗?你使用过它们吗?
    学习过类的同学可能知道,类有两个属性私有属性和公有属性,私有属性内的数据成员在类的外部是无法访问的,而公有属性是可以被访问的,这就保证了数据的安全性。
    我们在设计类时需要传进更少的参数,将可以不传进的参数都放在类里面获得(即设置为类的私有数据成员),而在类的外面,即对类的使用者而言,这些数据成员的值是无法修改的,这也就保证了数据的安全性。因为主函数是类的使用者进行编写,所以我们传进的参输越少,就与可以方便他们的使用,这就是类的基本理解,它可以增强代码的重用性。
    STL(Standard Template Library,标准模板库),简而言之就是该库里面已经写好了很多常用的数据结构,以及一些常用操作,编程者只需调用其中的某个函数或类即可。这本身也可以看成一个大的类。用过。
  4. 你以前怎样书写c++程序?(你完全可以说只在Visual C++ 6.0下写过C++工程,只要你有写c++和c语言的经验就行。)
    在Ubuntu中用Vim和GCC等命令写过代码,Windows用Visual C++ 6.0和CFree写过。
  5. 你知道 c++11 标准吗?你听说过或用过其中哪些新特性?有没有其他的标准?
    借鉴了部分CSDN答主AngelDg的文章
    在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为 C++11之前的最新C++标准名称。不过由于TC1主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑, 第二个真正意义上的标准珊珊来迟。相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率。
  6. 你知道Linux吗?你有没有至少使用过一种(不算安卓)操作系统,比如Ubuntu?
    以前在上操作系统实验课的时候老师讲过,当时也安装了虚拟机进行上机实验,对一些基本的命令有所了解。并且我当时安装的是Ubuntu。
  7. Linux的目录结构是什么样的?你知道哪些基本命令,比如ls,cat等?
    借鉴了部分知乎答主动力节点在线的文章

    目录结构:bin (binaries)存放二进制可执行文件sbin (super user binaries)存放二进制可执行文件,只有root才能访问etc (etcetera)存放系统配置文件usr (unix shared resources)用于存放共享的系统资源home 存放用户文件的根目录root 超级用户目录dev (devices)用于存放设备文件lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块mnt (mount)系统管理员安装临时文件系统的安装点boot 存放用于系统引导时使用的各种文件tmp (temporary)用于存放各种临时文件var (variable)用于存放运行时需要改变数据的文件基本命令:1.find 查找文件或目录find / -name filename.txt //根据名称查找/目录下的filename.txt文件。2.复制文件包括其子文件到自定目录cp -r sourceFolder targetFolder3.查看一个程序是否运行ps –ef|grep tomcat //查看所有有关tomcat的进程4.终止线程kill -9 19979 //终止线程号位19979的线程5.查看文件,包含隐藏文件ls -al6.当前工作目录pwd7.创建目录mkdir newfolder8.删除目录(此目录是空目录)rmdir deleteEmptyFolder9.删除文件包括其子文件rm -rf deleteFile10.移动文件mv /temp/movefile /targetFolder//扩展重命名 mv oldNameFile newNameFile11.切换用户su -username12.修改文件权限chmod 777 file.java //file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行13.压缩文件tar -czf test.tar.gz /test1 /test214.列出压缩文件列表tar -tzf test.tar.gz15.解压文件tar -xvzf test.tar.gz16.查看文件头10行head -n 10 example.txt17.查看文件尾10行tail -n 10 example.txt18.查看日志文件tail -f exmaple.log //这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。19.启动Vi编辑器vi20.查看系统当前时间date```
    
  8. 如何在Ubuntu系统中安装软件(不打开软件中心的情况下)?这些软件被安装在什么地方?如果只知道模糊的软件名称(比如想要装一个名称中含有Eigen的库),应该如何安装它?
    (1)在/etc/apt/sources.list中加入相关源,然后使用sudo apt-get install xxx 进行安装。通过下载deb软件安装包去安装.
    (2)一般软件被安装在/usr/bin目录下,或者在/usr/share和/usr/local目录下。
    (3)只知道模糊的软件名,可以通过按tab键进行补全的方式,当只知道模糊的软件名称(如Eigen),可以在终端中输入 sudo apt search eigen,找到名字后再进行安装
  9. 花一个小时学习vim, 因为你迟早会用它。你可以在终端中输人vimmtor阅读一遍所有内容。我们不需要你非常熟练地操作它,只要能够在学习本书的过程中使用它输人代码即可。不要在它的插件上浪费时间.不要想着把vim用成IDE, 我们只用它做文本编辑的工作
    推荐博客园答主jiqing Wu的文章,可以不用全会,当成linux手册用的时候查一下就很不错。

视觉SLAM十四讲学习记录 第一讲相关推荐

  1. 视觉SLAM十四讲学习记录 第五讲

    之前第四讲的地址 以及第四讲习题的地址 第五讲 相机与图像   前面两讲中,我们介绍了"机器人如何表示自身位姿"的问题,部分地解释了SLAM经典模型中变量的含义和运动方程部分.本讲 ...

  2. 学习记录-视觉SLAM十四讲第2版(二)

    文章目录 前言 一.问题是什么? 二.工具是什么? 1.分类 2.三种相机 (1)单目相机 (2)双目相机 (3)深度相机 三.流程是什么? 1.总的流程框架 2.每个步骤说明 3.补充 四.尺度不确 ...

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

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

  4. 视觉SLAM十四讲学习笔记---前三讲学习笔记总结之SLAM的作用、变换和位姿表示

    经过半年学习SLAM相关知识,对SLAM系统有了一些新的认识,故回看以前的学习记录,做总结和校正. 前三讲学习笔记如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉S ...

  5. 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  6. 【视觉SLAM十四讲】第一章理论详解

    文章目录 第一讲 概述与预备知识 SLAM是什么 室内/室外定位 稀疏-半稠密重建 稠密重建 SLAM可以用在哪些地方? **作业1.** SLAM会在哪些场合中⽤到?⾄少列举三个⽅向. SLAM: ...

  7. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

  8. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  9. 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理

    第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 ​​​​​​视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...

最新文章

  1. SendEmail使用TLS发送邮件
  2. 个人副业在家可做大学生首选小程序创业项目
  3. word List18
  4. 微信开发学习日记(六):weiphp框架
  5. Java 处理表格,也很轻松
  6. java naive方法_朴素贝叶斯方法(Naive Bayes Method)
  7. 深度学习 - MPII Human Pose Database数据集下载
  8. 探测活动主机的代码linux,Linux入侵痕迹检测方案【华为云技术分享】
  9. pythondifflib详解_python difflib模块示例讲解
  10. 淘宝宝贝类目怎么更换?
  11. 35款FL插件免费下载
  12. 关于sqlserver中SqlParameter的用法注意事项
  13. photoshop印章效果制作
  14. 最新QQ坦白说消息查看发送者
  15. coldfusion_在ColdFusion中建立动态菜单
  16. virtualBox安装拓展包extension pack失败 --解决办法
  17. 编译原理 | 由正规文法构造状态转换图
  18. 计算机基础知识教程excel单元格拆分,电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里...
  19. 重庆市渝中区相关部门负责人到访 Conflux 探讨新一线城市区块链技术发展路径...
  20. EventBus3.0简单使用快速入门

热门文章

  1. 【安全测试】安全测试介绍
  2. 普通上班族创业还有机会吗?
  3. 数字人事系统 java_凝心聚力 实现数字人事信息系统平稳运行
  4. 手机支付安全解决方案演进
  5. knime3命令行执行方式
  6. MySQL 数据库存储引擎介绍
  7. 做外贸销售,怎么让客户接受样品自费的问题?
  8. 08-SVM支持向量机(SVC)
  9. 交易猫转转闲鱼跳转源码+完整版教程
  10. 深度学习之损失函数、成本函数、目标函数的基本概念