视觉SLAM学习打卡【1】

本文介绍了视觉SLAM的基本概念,包括相机分类(单目、双目及RGB-D),CMake项目管理工具的使用,以及Linux常用命令的汇总,重点讲解了视觉里程计、后端优化、回环检测和建图等关键环节。
摘要由CSDN通过智能技术生成

做此打卡,监督自己每天学点小东西,予百川汇海之效。同时,乱星式笔录自己之前未涉猎的知识点,待遗忘之时重拾“朝花”。

视觉SLAM学习打卡【1】

    • 一、相机分类
      • 1.单目(Monocular)相机
      • 2.双目(Stereo)相机
      • 3.深度(RGB-D)相机
    • 二、“管理员”cmake
    • 三、Linux 常用命令汇总
    • 四、经典视觉SLAM框架

一、相机分类

1.单目(Monocular)相机

只使用一个摄像头。以二维的方式记录三维的世界,丢掉了场景的一个维度,即深度。通过相机移动使图像形成视差,判断物体远近。单目slam估计的轨迹和地图与真实的轨迹和地图相差一个因子,即“尺度”,存在尺度不确定性。

2.双目(Stereo)相机

由两个单目相机组成。通过软件计算测量深度,通过两相机之间的距离(称为基线)估计每个像素的空间位置,类似于人眼。基线距离越大,能够测量的物体就越远。

3.深度(RGB-D)相机

通过物理的测量手段,测出距离。通过主动向物体发射光并接受返回的光,测出物体与相机之间的距离。

二、“管理员”cmake

一个C++程序可以用g++编译,但当程序规模越来越大时,编译指令变得冗余繁琐.这时,使用cmake管理将会变得高效起来。
CMakeLists.txt文件

#声明要求的cmake最低版本
cmake_minimum_required(VERSION 2.8)

#声明一个cmke工程
project(hello world)

#添加一个可执行程序
add_executable(helloslam helloslam.cpp)
#语法 add_executable(程序名(在ros中称为节点名)  源代码文件)

#添加库 此cpp与源文件不同的是不含有main函数,没有可执行文件。编译后在build文件夹中生成libku.a静态库文件(是一个含有二进制函数的压缩包)
add_library(ku ku.cpp)
#静态库(.a后缀)每次调用生成一个副本,共享库(.后缀)只有一个副本,更省空间。
#生成共享库语法
add_library(ku_shared SHARED ku.cpp) #编译后在build文件夹中生成libku_shared.so共享库文件

#链接库 语法target_link_libraries(可执行文件 库文件)
add_executable(use_lib use_lib.cpp) #use_lib.cpp中包含头文件
target_link_libraries(use_lib ku_shared)

三、Linux 常用命令汇总

命令说明
ls查看当前目录下的文件列表
cd /转到根目录
cd /home比如进入 ‘/ home’ 目录’
cd …返回上一级目录
cd …/…返回上两级目录
pwd比如切换到 home目录,执行命令 pwd ,显示 /home路径
mkdir test创建一个叫做 ‘test’ 的目录’
touch创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。touch newfile 该命令创建一个名为newfile 的空白文件
less abc.txt查看 abc.txt 文本内容(不必读整个文件,加载速度会比 more 更快)
more abc.txtmore abc.txt

点击可参考其他命令

四、经典视觉SLAM框架

在这里插入图片描述
1.传感器信息读取: 在视觉SLAM中主要为相机图像信息的读取和预处理。如果是在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。

2.视觉里程计(Visual Odometry,VO): 视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图的样子。VO又称为前端(Front End)。视觉里程计不可避免地会出现累积漂移(Accumulating Drift)问题.

3.后端优化 (Optimization): 后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在VO之后,又称为后端(Back End)。在视觉 SLAM中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波与非线性优化算法。

4.回环检测 (Loop Closing): 回环检测判断机器人是否到达过先前的位置.如果检测到回环,它会把信息提供给后端进行处理。

5.建图 (Mapping): 它根据估计的轨迹,建立与任务要求对应的地图。地图的形式包括度量地图(精确表示地图物体的位置关系)与拓扑地图(更强调地图元素之间的关系)两种。

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值