前言 【学习记录|学习记录-视觉SLAM十四讲第2版(一)】还是得学些SLAM相关的内容,在后面的科研中也好用得上。以此为记录督促自己日日有提升。
一、第1讲值得记录的内容 需要记录的只有SLAM的定义:
SLAM是Siumltaneous Localization and Mapping的缩写,中文是同时定位与地图构建。
如果采用相机作为传感器,则称为视觉SLAM。
二、习题
1.提示:从A的维度和秩角度来分析 首先是秩的定义:在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。即如果把矩阵看成一个个行向量或者列向量,秩就是这些行向量或者列向量的秩,也就是极大无关组中所含向量的个数。通常表示为r(A),rk(A)或rank A。
一直以来都是采用将A和b弄在一起变成增广矩阵之后,进行高斯消元法求解。
设矩阵A的秩为r,且矩阵的行数和列数分别为m和n。r<=min(m,n)。
r=m=n时,此时矩阵的列向量全部线性无关,可以张成维度为n的空间,又b为m1=n1的列向量,故b一定在该空间内,且有且仅有1个系数组合能够满足,即Ax=b有唯一解;
r=m
文章图片
高维时可以看类似2维的情况如下图
文章图片
3.C++的类 对C++的类有所了解,知道STL,也使用过其中的一些库,如vector、map、list等。
4.书写C++程序 都是根据需求去写C++程序,但是用类用的比较少
5.C++11的标准 老实说了解得不多,主要还是这次这个问题后才特意去查了一下。之前是C++98的旧标准,C++11标准特性包括以下这些:
(1)新的关键字auto、decltype、nullptr 空指针。
(2)序列for循环简化,在C++11 中for循环可以使用类似java的简化的for循环,可以用于遍历数组,容器,string以及由begin和end函数定义的序列。
(3)Lambda表达式:lambda表达式类似Javascript中的闭包,它可以用于创建并定义匿名的函数对象,以简化编程工作。
(4)变长参数的模板:现在增加了tuple,可以用于处理多个不同类型的数据。
(5)更加优雅的初始化方法。
6.Linux 知道linux,也只使用过ubuntu这一种操作系统。
7.Linux目录结构 Linux的目录结构是树状,只知道cd和ls这些基础的指令。对Linux其实还不够熟悉,具体的结构情况可以见Linux系统目录结构
8.Ubuntu软件安装 一直以来只会用2.5种安装方式,1种是通过软件商店,1种是通过apt-get或者apt install进行安装,0.5种是部分软件必须通过源码安装的,在网上搜搜教程也就通过源码安装了。虽然每次都没太弄懂每一步的具体含义。针对这个问题进行检索后才发现还可以通过snap命令和dpkg命令进行安装。一般安装在/usr下。对于只知道模糊软件名称的软件,可以通过apt search来进行搜索,找到自己想要的库再进行安装。
9.Vim 表示刚开始看的时候学了一遍,的确快学了1小时,现在又忘了,还是得多用Ubuntu才行。
总结 第一讲就是过下,有个心理准备,告诉你SLAM会用到什么内容,从上面的9个问题就可以看出来,主要涉及到线性代数、概率论、C++、ubuntu以及在ubuntu下各种库的安装,还有在Linux环境下写代码之类。本文主要总结了视觉SLAM十四讲第二版这本书第一讲的习题内容。
推荐阅读
- 容器编排与虚拟化|docker学习笔记(未完待续09/08,k8s云原生学习前瞻)
- python|Python学习笔记八之matplotlib绘制三维图
- #|【安卓学习之常见问题】初始化Spinner、CheckBox和SeekBar不触发事件
- Algorithm|【algorithm】算法学习----堆
- 自动化|博途PLC 1200/1500PLC MODBUS-RTU通讯优化(状态机编程)
- Maven|Maven学习(二)
- 笔记|WebGIS前端学习之路(Vue+Leaflet地图展示)
- MySQL|MySQl学习笔记-6.数据库的备份
- MySQL数据库|Day1_9 Java学习之DQL语言与完整性约束