视觉SLAM课程-第1讲笔记
SLAM理论与实践第一次课
Github地址:https://github.com/wrk666/VSLAM-Course/tree/master
1. 基础知识

一些图像处理方面的工作需要借助ML方法来完成:物体识别,检测,分割等。:
SLAM分为特征点SLAM和直接法的SLAM(DSO),普通相机和深度相机可以使用不同的SLAM方法,可以建稀疏图和稠密图。

SLAM:Simultaneous Localization and Mapping同时定位于地图构建。
参考书

2.SLAM是什么
定位和建图相互耦合
当环境中的传感器受限时,需要依靠机器人本身的传感器来感知外界。
1. 相机分类
分为:单目相机,双目相机,深度相机,其他相机。
- 单目相机需要片使用其他手段估计距离,发生平移,产生视差(moving stereo)->计算物体离相机的距离
- 双目相机可以通过视差(静态就可以产生视差)。
- RGB-D直接物理法测量深度。

2.SLAM框架

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


3.SLAM的数学描述

运动测量读数u指什么? ()
传感器读数z指什么?(距离,夹角)
SLAM问题被抽象为:已知u,z,估计x,y的问题。
根据运动和观测方程是否为线性,噪声是否服从Gauss分布,分为现行/非线性,高斯/非高斯系统。非线性非高斯系统最复杂,通常使用扩展卡尔曼滤波器(EKF)和非线性优化来求解。
目前,主流视觉SLAM主要使用图优化,目前认为图优化明显优于滤波器技术。
4.cmak的简单使用
为了更方便的编译C++程序,使用cmake来进行编译,已有源文件,编写CmakeList.txt,一般建立一个子目录build,对上层目录cmake->make得到编译后的文件,上层目录仍然保持干净
自己编写库,包括头文件和源文件,在CMakeists.txt里面生成库并且将使用库的可执行文件连接到库中:
然后新建build文件夹,cmake… make 得到如下文件
其中libhellolib.a即是库文件,有了libhellolib.a和hello.h文件就可以直接调用库了,无需hello.cpp文件。
5.IDE简单使用
有两款主流IDE:Clion和VSCode,目前选择使用Clion,安装命令
sudo snap install clion --classic
拿之前的学校邮箱的使用码激活
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)