?
前言
总结学习,或者叫摘抄更为合适,不足之处,请不吝赐教!
诚然,参考了一些优秀博主的分享,后续章节不再赘述!
《视觉SLAM十四讲 第二版》笔记及课后习题
视觉slam十四讲(第二版)习题解答
1. 有线性方程 Ax = b,当我们知道 A, b,想要求解 x 时,如何求解?这对 A 和 b 需 要哪些条件? 提示:从 A 的维度和秩角度来分析。
推荐MIT课程麻省理工公开课 线性代数及大佬整理的笔记MIT线性代数4-8:矩阵分解,向量空间,列空间和零空间,线性方程组求解中的第7、8节。
2. 高斯分布是什么?它的一维形式是什么样子?它的高维形式是什么样子?
从一维到二维: 高维正态分布: 这里只考虑独立的多元正态分布,先假设
n
n
n个变量
x
=
[
x
1
,
x
2
,
?
,
x
n
]
T
x=[x_1,x_2,?,x_n]^T
x=[x1?,x2?,?,xn?]T互不相关,且服从正态分布(维度不相关多元正态分布),各个维度的均值
E
(
x
)
=
[
μ
1
,
μ
2
,
?
,
μ
n
]
T
E(x)=[\mu_1,μ_2,?,μ_n]^T
E(x)=[μ1?,μ2?,?,μn?]T, 方差
σ
(
x
)
=
[
σ
1
,
σ
2
,
?
,
σ
n
]
T
σ(x)=[σ_1,σ_2,?,σ_n]^T
σ(x)=[σ1?,σ2?,?,σn?]T 根据联合概率密度公式: 其中
z
z
z的矩阵形式为: 则
参考多元高斯分布(The Multivariate normal distribution)
3. 你知道 C++ 的类吗?你知道 STL 吗?你使用过它们吗?
STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。 STL 最初由惠普实验室开发,于 1998 年被定为国际标准,正式成为 C++ 程序库的重要组成部分。值得一提的是,如今 STL 已完全被内置到支持 C++ 的编译器中,无需额外安装,这可能也是 STL 被广泛使用的原因之一。 通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的。 在 C++ 标准中,STL被组织为 13 个头文件,无需扩展名(不用加.h)
参考C++ STL标准库基础
4. 你以前怎样书写 C++ 程序?(你完全可以说只在 VC6.0 下写过 C++ 工程,只要你有写 C++ 和 C 语言经验就行。)
最初是先有的C语言的基础,大学开始接触51单片机、STM32以及恩智浦K60,K66,KEA系列的MCU,这些都要用到C语言,这些编辑器已经不记得了。 研究生入坑SLAM,开始学习C++,用过CodeBlocks,VScode,VScode studio,Clion这些功能强大的IDE,但是在Linux系统下,用的比较多的是VScode,算是作为一个代码编辑器,Vim,gedit文本编译器也是可以的,编译可以用g++命令行,或者以cmake的项目包管理。
5. 你知道 C++11 标准吗?其中哪些新特性你之前听说过或使用过?有没有其他的标准?
C++11是一次大的版本升级,新增内容例如:nullptr 与 constexpr,auto 与 decltype ,基于范围的 for 循环,Lambda 表达式,智能指针和新的容器等等。
C++20(C++ 编程语言标准 2020 版)将是 C++ 语言又一次非常重大的更新,将为这门语言引入大量新特性。(四大新特性:概念、范围、协程和模块)。
6. 你知道 Linux 吗?你有没有至少使用过其中之一(安卓不算),比如 Ubuntu?
大学学过小红帽版本,试验都摸鱼,每节课的任务都是抱大佬大腿,其中有一节课做到很晚,印象很深,就是实现硬盘的挂载和解挂等操作,害,没想到上次给Jetson Xavier刷机就用到了。
7. Linux 的目录结构是什么样的?你知道哪些基本命令,比如 ls, cat 等等?
参考:Linux 系统目录结构 按照我自己目前的使用频率,列一些
- cd
- cmake系列
- ros系列
- cp、mv、rm
- sudo chmod
- mkdir、touch
8. 如何在 Ubuntu 中安装软件(不打开软件中心的情况下)?这些软件被安装在什么地方?当我只知道模糊的软件名称(比如我想要装一个 eigen 名称的库),我应该如何安装它?
- 下载安装包安装,一般的通用软件,如vscode,下载一个.deb格式的直接安装,或者.run
- 源码安装,本地编译,能够避免因为异构和依赖问题。
- 二进制码安装,sudo apt install
安装路径/usr/local/lib等。
9. * 花一个小时学习一下 Vim,因为你迟早会用它。你可以在终端中输入 vimtutor 阅读一遍所有内容。我们不需要你非常熟练地操作它,只要在学习本书的过程中使用它键入代码即可。不要在它的插件上浪费时间,不要想着把 vim 用成 IDE,我们只用它做文本编辑的工作。
但是我更喜欢gedit呀
?
|