SLAM十四讲:初始SLAM(2)

内容总览:介绍多种相机和地图样式、SLAM框架、简单的运动与观测方程

单目相机

  • 用2维反映3维,缺少深度
  • 移动相机,才能估计物体运动和结构(结构就是物体远近和大小)
  • 存在尺度不确定性,只能看到相对尺度,无法看到真实尺度

缺点:平移才知深度,真实尺度不可知

双目和深度相机

  • 双目可通过Baseline(就像人的两眼的距离)测量深度
  • 深度相机用激光接受返回光计算深度

SLAM框架

在这里插入图片描述

  • 视觉里程计(Visual Odometry,VO,也叫前端):关心相邻图像的运动问题,通过相邻帧计算相机的运动,但是会产生误差和误差累积 \to 用后端和回环来矫正

主要工作:图像特征提取和匹配

  • 后端优化(Optimization):后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。

主要工作:处理噪声问题,从有噪声的数据中估计系统状态、以及这种估计错误的可能性 \to 最大后验概率估计,滤波和非线性优化

  • 回环检测(Loop Closing):利用图像间的相似性,消除漂移误差,判断是否回到了原点,将信息传给后端优化。

累计漂移(Accumulating Drift):最简单的VO只估计两个图像间的运动,而每次的估计都无法避免的会存在一些误差,前面的误差会传递到下一时刻,导致经过一段时间之后,估计的轨迹将不再准确。

  • 建图:根据需求有不同的地图样式:
    在这里插入图片描述

度量地图(Metric Map),拓扑地图(Topological Map)

数学表达

运动

方程

x k = f ( x k 1 , u k , w k ) x_k = f(x_{k-1},u_k,w_k)
u k u_k 是输入, w k w_k 是噪声, f f 是运动传感函数, x k x_k 是自身位置

方程具体化

物体的位姿由两个位置和一个转角来描述:
x k = [ x , y , θ ] k T x_k = [x,y,\theta]^T_k
传感器观测到两个时间间隔位置和转角的变化量:
u k = [ Δ x , Δ y , Δ θ ] k T u_k = [\varDelta x,\varDelta y,\varDelta \theta]^T_k
所以具体化为:
在这里插入图片描述

观测

方程

z k , j = h ( y j , x k , v k , j ) z_{k,j} = h(y_j,x_k,v_{k,j})
v k , j v_{k,j} 是观测的噪声, y j y_j 是路标, z k , j z_{k,j} 是观测数据

物体在 x k x_k 位置看到路标 y i y_i ,观测时受到了噪声 v k , j v_{k,j} 的影响,产生了观测数据 z k , j z_{k,j}

方程具体化

路标点与物体之间的距离是 r r ,夹角是 ϕ \phi
路标点是 y = [ p x , p y ] T y = [p_x,p_y]^T ,观测数据为 z = [ r , ϕ ] T z = [r,\phi]^T
所以方程为:
在这里插入图片描述

发布了30 篇原创文章 · 获赞 1 · 访问量 2427

猜你喜欢

转载自blog.csdn.net/McEason/article/details/103194067
今日推荐