视觉slam简介

视觉slam简介1 什么是 SLAMSLAM 是 simultaneous 的缩写 同时定位与构建地图 它指搭载特定传感器的主体 在没有环境先验信息的情况下 于运动过程中建立环境的模型 同时估计自己的运动 slam 的目的就是解决定位与地图构建这两个问题 一边要估计传感器自身的位置 一边要建立周围环境的模型 举个例子 eg 机器人或者无人车 来到一个小区 它不知道小区

1.什么是SLAM

SLAM

SLAM是simultaneous localization and mapping的缩写。同时定位与构建地图。它指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动
slam的目的就是解决定位与地图构建这两个问题。一边要估计传感器自身的位置,一边要建立周围环境的模型。

如果以视觉传感器为中心的slam,成为视觉slam。

2. 视觉SLAM的框架

1.传感器信息读取 在视觉SLAM中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘,惯性传感器等信息的读取和同步。
2.视觉里程计 (visual odometry,VO) 视觉里程计的任务是估算相邻图像间相机运动,以及局部地图的样子。vo又称为前端。
3. 后端优化(optimization)。后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对他们进行优化,得到全局一致的轨迹和地图。由于在VO之后,又称为后端。
4. 回环检测(loop closing)。 回环检测判断机器人是否到达过去先前的位置,如果检测到回环,它会把信息提供给后端进行检测。
5. 建图(mapping)。它根据估计的轨迹,建立与任务要求对应的地图。



2.1 视觉里程计

这是由于视觉里程计(在最简单的情况下)只估计两个图像间的运动造成的。每次估计都带有一定的误差,误差会累计。

2.2 后端优化

后端优化主要是处理slam过程中噪声的问题。任何传感器都有噪声,所以除了要处理“如何重图像中估计出相机运动”,还要关心这个估计带有多大的噪声。

前端给后端提供待优化的数据,以及这些数据的初始值,而后端负责整体的优化过程,它往往面对的只有数据,不必关系这些数据来自哪里。在视觉slam中,前端和计算接视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波和非线性优化算法。

2.3 回环检测

2.4 建图

强调精确地表示地图中物体的位置关系,通常稀疏(sparse)和稠密(dense)进行分类。

拓扑地图(topological map):

eg:

项目 地图 原因
扫地机器人 二维地图 平面运动
相机 三维地图 6个自由度

3. SLAM问题的数学表述

主要分为运动和观测两个模型:

  • 运动方程:
    x k = f ( x k − 1 , u k , w k ) x_k = f(x_{k-1},u_k,w_k) xk=f(xk1,uk,wk)
  • 观测方程:
    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)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214922.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午3:08
下一篇 2026年3月18日 下午3:08


相关推荐

  • Java微服务下的分布式事务介绍及其解决方案

    Java微服务下的分布式事务介绍及其解决方案1.前言1.由于最近在学习springcloud的项目,现在互联网下,分布式,微服务横行,难免会遇到分布式下的事务问题,这是一个难点,也是面试经常问的,别面试官一看你简历,都是微服务项目,问你了解啥是分布式事务不,你来句没有,这就很尴尬了,当然微服务下可能没有分布式事务,但是很多场景是需要分布式事务的,下面我就来介绍下什么是分布式事务,和分布式事务的解决方案2问题描述在介绍分布式事务…

    2022年6月14日
    29
  • 【java】 如何自己写一把多线程锁 中 重写lock,trylock,unlok方法

    【java】 如何自己写一把多线程锁 中 重写lock,trylock,unlok方法4.拿到unsafeimportsun.misc.Unsafe;importjava.lang.reflect.Constructor;importjava.lang.reflect.Field;importjava.lang.reflect.InvocationTargetException;importjava.util.concurrent.TimeUnit;importjava.util.concurrent.locks.AbstractQueuedSynchronize

    2022年10月15日
    7
  • Agent 测评:Manus vs TARS vs Genspark vs Flowith

    Agent 测评:Manus vs TARS vs Genspark vs Flowith

    2026年3月16日
    2
  • 屏幕分辨率dpi计算_hypodensity

    屏幕分辨率dpi计算_hypodensityiphone7宽2.3密集度是326一英寸,我这里有一个400px*400px的正方形由于一英寸=326,不够放,所以要用2英寸放假设我用的是400dpi*400dpi那就是占用的空间大

    2022年8月2日
    12
  • 云硬盘

    云硬盘

    2021年9月22日
    58
  • CentOs6.5上安装Docker完整版

    CentOs6.5上安装Docker完整版早上上班发现之前win10更新了一次,台式机上安装的虚拟机打开变得超级慢,更不要说查看docker相关东西,烦人。只能在自己笔记本上安装docker,测试下案例。——————————————————————————————————————————————————步骤:1、在本机安装Docker需要的epel库(yum安装epel库) 命令:yum install -y epel-…

    2022年6月13日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号