栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《视觉SLAM十四讲》第一讲课后习题作业

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《视觉SLAM十四讲》第一讲课后习题作业

前言

总结学习,或者叫摘抄更为合适,不足之处,请不吝赐教!

诚然,参考了一些优秀博主的分享,后续章节不再赘述!

《视觉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 系统目录结构
按照我自己目前的使用频率,列一些

  1. cd
  2. cmake系列
  3. ros系列
  4. cp、mv、rm
  5. sudo chmod
  6. mkdir、touch
8. 如何在 Ubuntu 中安装软件(不打开软件中心的情况下)?这些软件被安装在什么地方?当我只知道模糊的软件名称(比如我想要装一个 eigen 名称的库),我应该如何安装它?
  1. 下载安装包安装,一般的通用软件,如vscode,下载一个.deb格式的直接安装,或者.run
  2. 源码安装,本地编译,能够避免因为异构和依赖问题。
  3. 二进制码安装,sudo apt install

安装路径/usr/local/lib等。

9. * 花一个小时学习一下 Vim,因为你迟早会用它。你可以在终端中输入 vimtutor 阅读一遍所有内容。我们不需要你非常熟练地操作它,只要在学习本书的过程中使用它键入代码即可。不要在它的插件上浪费时间,不要想着把 vim 用成 IDE,我们只用它做文本编辑的工作。

但是我更喜欢gedit呀

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648910.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号