[高翔]SLAM十四讲2——课后习题 第1、2讲

[高翔]SLAM十四讲2

  • 第1讲 预备知识
  • 第2讲 初始SLAM

开始学习SLAM,记录一下

第1讲 预备知识

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

在线性代数中,一个矩阵的秩是其非零子式的最高阶数,一个向量组的秩是其最大无关组所含的向量个数。
线性方程组Ax=b有解的充分必要条件是r(A|b)=r(A),等价于b能被A的列向量线性表出。

参考:https://blog.csdn.net/chenghan_yang/article/details/120067073

求解方法:
1.对A的增广矩阵(A|b)做初等行变换,化最简行阶梯型
2.判断
r(A|b)=r(A)=n,有唯一解,若A为方阵,x=A^-1b
r(A|b)=r(A) r(A|b)≠r(A),无解。

2.高斯分布是什么,它的一维形式和高维形式分别是什么?

[高翔]SLAM十四讲2——课后习题 第1、2讲_第1张图片

[高翔]SLAM十四讲2——课后习题 第1、2讲_第2张图片
3.C++中的类和STL是什么?

类是C++中的一个新的数据类型,可以是对同一类型事物进行抽象处理,也可以是一个层次结构中的不同层次节点。
STL是C++的标准模板库,编程完全依赖模板的实现。
类模板是能根据不同参数建立不同类型成员的类。类模板中的数据成员、成员函数的参数、成员函数的返回值可以取不同类型,在实例化成对象时,根据传入的参数类型,实例化成具体类型的对象。

4.C++工程是什么?

头文件就是.h后缀结尾的文件。定义了类,包括类的变量和方法,但是方法只是声明,具体语句没有写。
源文件是工程中最重要的部分。 一般源文件的开头会引用头文件,如使用#include的方式进行引用 。

参考:https://www.cnblogs.com/zhuzhenwei918/p/8568692.html

5.C++11标准的新特性?

1.引入auto和decltype关键字,在编译期就推导出变量或者表达式的类型
2.新增右值引用
3.在变量名后面加上初始化列表来进行对象的初始化

参考:https://zhuanlan.zhihu.com/p/139515439

6.Linux操作系统

1.Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。
2.Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统之一。
3.红帽企业级Linux是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。
4.CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。

7.Linux的目录结构是什么样的?有哪些基本命令?
[高翔]SLAM十四讲2——课后习题 第1、2讲_第3张图片

Linux的目录结构

基本命令

8. 如何在Ubuntu系统中安装软件(不打开软件中心的情况下)?这些软件被安装在什么地方?如果只知道模糊的软件名称(比如想要装一个名称中含有Eigen的库),应该如何安装它?

https://zhuanlan.zhihu.com/p/270908077

1.使用apt命令安装:
1.1安装软件:sudo apt install 软件包名
1.2软件安装位置:

软件包:/var/cache/apt/archives
安装位置:/usr/share
快捷方式:/usr/share/applications
可执行文件:/usr/bin
lib文件:/usr/lib
配置文件:/etc

1.3搜索软件:sudo apt search 关键字

2.使用snap命令安装
2.1安装软件:sudo snap install 软件包名
2.2软件安装位置:/snap
2.3搜索软件:sudo snap find 关键字

3.使用dpkg命令安装deb包
3.1安装软件:sudo dpkg -i 文件名.deb
3.2软件安装位置:/opt

9.Vim

https://www.runoob.com/linux/linux-vim.html
[高翔]SLAM十四讲2——课后习题 第1、2讲_第4张图片

第2讲 初始SLAM

3.g++命令有哪些参数?怎么填写参数可以更改生成的程序文件名?

https://blog.csdn.net/qq_29695701/article/details/95593003

-c:只进行预处理、编译、汇编,生成.o文件
-S:只进行预处理和编译,生成.s文件。
-E:只进行预处理,不自动生成文件,可将结果重定向。
-o:进行预处理、编译、汇编、链接。

更改生成的程序文件名:g++ '要编译的文件' -o '希望生成的文件名'
默认参数下将生成a.out

6. 如果忘了把库链接到可执行程序上,编译会报错吗?什么样的错?
在链接时发现找不到某个函数的实现文件,会报错:undefined reference to …

7. * 阅读《cmake 实践》,了解 cmake 的其他语法。

cmake手册

你可能感兴趣的:(#,SLAM学习,slam)