深蓝学院-视觉SLAM课程-第1讲笔记

课程Github地址:https://github.com/wrk666/VSLAM-Course/tree/master

1. 基础知识

深蓝学院-视觉SLAM课程-第1讲笔记_第1张图片

一些图像处理方面的工作需要借助ML方法来完成:物体识别,检测,分割等。:深蓝学院-视觉SLAM课程-第1讲笔记_第2张图片

SLAM分为特征点SLAM直接法的SLAM(DSO),普通相机和深度相机可以使用不同的SLAM方法,可以建稀疏图和稠密图。

深蓝学院-视觉SLAM课程-第1讲笔记_第3张图片

SLAM:Simultaneous Localization and Mapping同时定位于地图构建。
参考书
深蓝学院-视觉SLAM课程-第1讲笔记_第4张图片

深蓝学院-视觉SLAM课程-第1讲笔记_第5张图片

2.SLAM是什么

定位和建图相互耦合深蓝学院-视觉SLAM课程-第1讲笔记_第6张图片
当环境中的传感器受限时,需要依靠机器人本身的传感器来感知外界。

1. 相机分类

分为:单目相机,双目相机,深度相机,其他相机。

  1. 单目相机需要片使用其他手段估计距离,发生平移,产生视差(moving stereo)->计算物体离相机的距离
  2. 双目相机可以通过视差(静态就可以产生视差)。
  3. RGB-D直接物理法测量深度。

2.SLAM框架

深蓝学院-视觉SLAM课程-第1讲笔记_第7张图片

前端:判断若干个图像之间的运动估计,
后端:从带有噪声的数据中估计最优的轨迹和地图,对估计或者地图进行调整,使得更好地估计。
回环检测:检测到了同一个地方,对地图进行调整。
建图:将地图调整为需要的形式。

深蓝学院-视觉SLAM课程-第1讲笔记_第8张图片
深蓝学院-视觉SLAM课程-第1讲笔记_第9张图片

3.SLAM的数学描述

深蓝学院-视觉SLAM课程-第1讲笔记_第10张图片
运动测量读数u指什么? ()
传感器读数z指什么?(距离,夹角)
SLAM问题被抽象为:已知u,z,估计x,y的问题。
根据运动和观测方程是否为线性,噪声是否服从Gauss分布,分为现行/非线性,高斯/非高斯系统。非线性非高斯系统最复杂,通常使用扩展卡尔曼滤波器(EKF)和非线性优化来求解。
目前,主流视觉SLAM主要使用图优化,目前认为图优化明显优于滤波器技术。

4.cmak的简单使用

为了更方便的编译C++程序,使用cmake来进行编译,已有源文件,编写CmakeList.txt,一般建立一个子目录build,对上层目录cmake->make得到编译后的文件,上层目录仍然保持干净
深蓝学院-视觉SLAM课程-第1讲笔记_第11张图片

自己编写库,包括头文件和源文件,在CMakeists.txt里面生成库并且将使用库的可执行文件连接到库中:
深蓝学院-视觉SLAM课程-第1讲笔记_第12张图片
然后新建build文件夹,cmake… make 得到如下文件
在这里插入图片描述
其中libhellolib.a即是库文件,有了libhellolib.a和hello.h文件就可以直接调用库了,无需hello.cpp文件。

5.IDE简单使用

有两款主流IDE:Clion和VSCode,目前选择使用Clion,安装命令

sudo snap install clion --classic

拿之前的学校邮箱的使用码激活
深蓝学院-视觉SLAM课程-第1讲笔记_第13张图片

你可能感兴趣的:(SLAM,Ubuntu,笔记,计算机视觉,深度学习,人工智能)