自学内容网 自学内容网

【视觉SLAM】1-概述

读书笔记

1. 经典视觉SLAM框架

在这里插入图片描述

  • 传感器信息读取:相机图像、IMU等多源数据;
  • 前端视觉里程计(Visual Odometry,VO):估计相机的相对运动,生成局部地图,VO又称为前端(Front End);
  • 后端非线性优化(Optimization):接收不同时刻VO测量的相机位姿、回环检测信息,进行联合优化,得到全局一致的轨迹和地图,又称为后端(Back End);
  • 回环检测(Loop Closure Detection):判断机器人是否到达过先前的位置,若检测到回环,则把信息交由后端处理(对VO轨迹产生的累积漂移(Accumulating Drift)误差进行校正);
  • 建图(Mapping):根据估计的轨迹,建立与任务要求对应的地图。

SLAM中地图的形式主要分为度量地图拓扑地图两种:

  • 度量地图(Metric Map):强调精确表示地图中物体的位置关系,通常用稀疏(Sparse)与稠密(Dense)对其分类。选择一部分具有代表意义的物体称为路标(Landmark)(特征点、点云?);
  • 拓扑地图(Topological Map):强调地图元素之间的关系,它是一个图(Graph),由节点和边组成,只考虑节点间的连通性。

2. 数学表述

对于由相机和各类传感器如IMU组成的机器人来说,其在环境中的运动数据可通过两个途径获得:①由传感器数据估计,称为运动;②由相机图像数据估计,称为观测。为了对这两个过程进行数学表述,做如下定义:

  • 在机器人的连续时间运动内取离散时刻 t = 1 , ⋯   , K t=1, \cdots, K t=1,,K
  • x x x 表示机器人自身位置,则其各时刻位置记为 x 1 , ⋯   , x K x_1, \cdots, x_K x1,,xK
  • N N N个路标点表示为 y 1 , ⋯   , y N y_1, \cdots, y_N y1,,yN

分别用运动方程 f ( ⋅ ) f(\cdot) f()观测方程 h ( ⋅ ) h(\cdot) h() 来描述上述两个过程,这两个函数都是一种通用方程表示,这里不用纠结其具体表达式。

2.1 运动方程

x k = f ( x k − 1 , u k , ω k ) x_k=f(x_{k-1},u_k,\omega_k) xk=f(xk1,uk,ωk)
其中, u k u_k uk为运动传感器的输入, ω k \omega_k ωk为该过程的噪声。

2.2 观测方程

机器人在 x k x_k xk位置看到路标 y j y_j yj时,产生观测数据 z k , j z_{k,j} zk,j
z k , j = h ( y j , x k , v k , j ) z_{k,j}=h(y_j,x_k,v_{k,j}) zk,j=h(yj,xk,vk,j)
其中, v k , j v_{k,j} vk,j为观测噪声。

2.3 问题抽象

上述两方程描述了最基本的SLAM问题:已知运动测量读数 u u u、传感器读数 z z z时,如何求解定位问题(估计 x x x)和建图问题(估计 y y y)?

这时,可把SLAM问题建模成一个状态估计问题:如何通过带有噪声的测量数据,估计内部的、隐藏的状态变量。

按照运动和观测方程是否为线性噪声是否服从高斯分布进行分类,上述状态估计问题可分为线性/非线性高斯/非高斯系统。其中线性高斯系统(Linear Gaussian,LG)最简单,其无偏的最优估计可由卡尔曼滤波(Kalman Filter,KF)给出;而复杂的非线性非高斯系统(Non-Linear Non-Gaussian,NLNG)中,可使用扩展卡尔曼滤波器(Extended Kalman Filter,EKF)和非线性优化两大类方法求解。


原文地址:https://blog.csdn.net/cfan927/article/details/143758235

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!