SLAM问题的数学表述:为之后的非线性优化以及BA模型铺垫

SLAM问题的数学表述

场景:机器人(简称为小哪吒)携带着传感器在环境里移动,相机每隔一段时间拍照,并获得相应的照片。

问题1: 什么是运动?
相机只在离散的时刻拍摄,我们也只关心这些时刻的位置和地图,将这些离散的时刻视为 t = 1, …, K。对于运动的描述,就是小哪吒在这些时刻运动到了哪里。然而在SLAM里,对于运动的描述,不仅仅是三维空间的位置,还包括了相机的方向,综合起来,也就是我们所理解的外参矩阵(相对于世界坐标系的旋转和平移)。为了简便描述,我们将相机在k时刻的位置(即运动描述)称为xk。

问题2:什么是观测?
观测本质上是一个对三维世界观测并建立小哪吒周围地图的过程!为了简化地图的构建,我们假设三维世界由一系列特征点组成,实现对这些特征点的观测就是实现了对三维世界的建模(地图的构建)。

先来看运动。通常,机器人会携带一个测量自身运动的传感器,比如码盘或惯性传感器,我们使用一个通用的、抽象的数学模型来表示:
xk = f(xk-1, uk, wk)
其中uk表示运动传感器的读数(输入
wk为噪声
xk-1为上一时刻小哪吒的状态
xk为该时刻测量得到的小哪吒的状态(可能会有累计误差)
当然运动传感器也不是完全精确的,在某些状态下,可能不够准确
此方程我们称之为运动方程

与此相对,即观测
该方程描述的是,小哪吒在xk的位置上看到了某个路标点yi(即特征点),产生了一个观测数据zkj(图像上的像素),用一个抽象的函数h来描述该关系:
zkj = h(yj,xk,vkj)
vkj表示观测里的噪声

这两个方程描述了最基本的SLAM问题:当知道运动测量的读数u(运动传感器),以及传感器读数z(获得的相片),如何求解定位问题(估计x,相机的位姿)和建图问题(估计y)?这时,我们就把SLAM问题变成了一个状态估计问题,如何通过带有噪声的测量数据,估计内部的,隐藏的状态变量?

举例:通常SLAM问题直观的目的是求解X,即我们需要知道机器人在空间中的位置姿态,比如自动驾驶场景,扫地机器人场景,建图是为了更好地估计状态。但是在ORB-SLAM中,我们依据的是对每一帧图像求特征点,并且对前后两幅图像的配准来估计相机的运动状态。(单目视觉SLAM,最便宜的SLAM模型),运动传感器并不一定准确,可能存在漂移,当然前后帧相片配准也不一定能跟上,在剧烈运动产生的模糊情况下,很容易跟踪失败。

这只是一个基础的SLAM方程,但不代表所有的SLAM都是这样,ORB-SLAM就只有观测方程,运动方程通过观测方程的结果来求解,而不是依据传感器计算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值