zoukankan      html  css  js  c++  java
  • 01_初识SLAM

    什么是slam?

    SLAM 是Simultaneous Localization and Mapping的缩写, 中文译作 “同时定位与地图构建”。它是指搭载特定传感器的主体 , 在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为 “视觉SLAM”。

    • 简单理解:假如我们有一个机器人,它的眼睛就是相机,它在一个空间不停运动。机器人需要知道自己所处的位置信息和运动轨迹,然后对自己所看到的周围环境进行建图,这就是slam。

    • 定位与建图等于内外兼修,定位侧重于对于自身的了解,建图侧重对外在的了解。但是他们又是相互关联,因为我为了了解自身的位置,又必须知道周围的环境信息,还有就是说如果我们定位就是错误的,那肯定构建地图也是错误的。

    传感器

    传感器分为两类,一种是外质的(安装在环境中),另一种是内质的(安装在机器人本身,可以随时移动)。

    • 内质:IMU、激光、相机(感受机器人本体信息)
    • 外质:二维码Marker、GPS、导轨等等,这种有环境限制

    这里我们讨论相机,主要是分为单目相机(Monocular)、双目相机(Stereo)和深度相机(RGB-D)三大类。

    • 单目相机:没有深度,需要使用其它手段进行估计,它会存在一个尺度不确定性,因为位置是相对的
    • 双目相机:通过视差计算深度,通过基线来估计每个像素的空间位置,但是计算量很大
    • 深度相机(RGB-D):通过物理方法测量深度,好处是可以直接测量,但是对环境要求高

    image-20211009160922110

    经典视觉SLAM框架

    我们先来看下整体的宏观架构图:

    image-20211009163003602

    这里通俗的理解就是假如一个机器人,通过传感器获取到了一些列数据,经过一顿的折腾,最后知道原来我在这里,周围原来是这个样子。

    整个视觉slam流程如下

    1. 传感器信息读取。在视觉SLAM中主要为相机图像信息的读取和预处理。 如果是在机器人中 、还可能有码盘 、惯性传感器等信息的读取和同步。(简单理解就是获取我们需要的数据)

    2. 前端视觉里程计(Visual Odometry, VO)。 视觉里程计的任务是估算相邻图像间相机的运动 , 以及局部地图的样子。VO又称为前端(Front End)。

    • 主要方法:特征点法,直接法

    • 这里需要注意的是,因为是相邻的图像做计算,所以构建的是局部地图。

    • 通过VO我们得到自己轨迹和各个空间点的位置,这里会出现一个累计漂移,其实就是我们每次估计带来的误差。因此需要后面的后端优化和回环检测。

    1. 后端(非线性)优化(Optimization)。后端接受不同时刻视觉里程计的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。 由于接在VO之后,又称为后端(Back End)
    • 位姿:位置(空间坐标)和姿态(角度)
    • 前端主要是和计算机视觉相关,后端主要是滤波和非线性优化算法,对数学水平要求较高
    1. 回环检测(Loop Closure Detection)。同环检测判断机器人是否到达过先前的位置。如果检测到同环,它会把信息提供给后端进行处理。
    • 检测到同样的位置,然后把误差给拉回来
    1. 建图(Mapping) 。它根据估计的轨迹,建立与任务要求对应的地图。

    image-20211009171448682

    SLAM问题的数学描述

    • 运动方程:它的意思是是说通过前一时刻的位置和当前传感器的读数,来估算当前时刻的位置。(也就是定位)

    image-20211009172829248

    • 观测方程:它的意思就是说当前时刻看到某个坐标点,产生了一个观测数据。(也就是建图)

    image-20211009175821933

  • 相关阅读:
    Spring Cloud
    Java/Android 网络请求框架/库
    Spring Roo 想知道源码,怎么实现自动生成枯燥的有规律的文件
    win10操作系统系统,小米路由器,小米3 的问题
    IntelliJ IDEA
    Spring Boot
    echart 插件实现全国地图
    安装AndroidJDK的坑
    小程序进阶之路
    关于echart柱形图的使用问题
  • 原文地址:https://www.cnblogs.com/LittleFishC/p/15387206.html
Copyright © 2011-2022 走看看