【第二讲---初识SLAM】

news2024/11/16 7:34:10

SLAM简介

视觉SLAM,主要指的是利用相机完成建图和定位问题。如果传感器是激光,那么就称为激光SLAM。
定位(明白自身状态(即位置))+建图(了解外在环境)。
视觉SLAM中使用的相机与常见的单反摄像头并不是一个东西,它更简单,不携带昂贵的镜头,以一定速率拍摄周围环境,形成一个连续的视频流。
在SLAM(同时定位与地图构建)中,常用的相机种类包括以下几种:

  • RGB相机:RGB相机是最常用的相机类型之一,它可以捕获彩色图像。通常使用标准的RGB传感器来获取图像,并可以通过软件处理来提取深度信息。
  • 深度相机:深度相机也被称为RGB-D相机,它不仅可以捕获彩色图像,还可以获取每个像素点到相机的距离信息。这些相机通常使用结构光、时间飞行或双目视觉等技术来测量物体和场景的深度。最大的特点是通过红外结构或ToF原理,像激光传感器那样,主动向物体发射光并接收返回的光。
  • 单目相机:单目相机只有一个镜头,可以捕获二维图像(只是三维空间的二维映射)。由于只有一个视角,需要使用其他传感器或算法来估计深度信息。它以二维的形式记录了三维的世界,但是丢掉了场景中深度(距离)这一维度。
  • 双目相机:双目相机具有两个镜头,可以模拟人眼的立体视觉。通过比较两个镜头捕获的图像之间的差异,可以计算得到场景的深度信息。
  • 多目相机:多目相机包含三个或更多的镜头,可以提供更丰富的视角和深度信息。多目相机可以用于构建更精确和稳健的SLAM系统。

这些相机种类在SLAM中的选择取决于应用场景、需要的精度和实时性等因素。不同的相机类型有不同的优势和限制,选择合适的相机是设计SLAM系统时需要考虑的重要因素之一。
SLAM可以用来做什么:自主机器人+三维重建+AR

常用工具

htop

相当于windows任务管理器
直接输入htop即可运行
在这里插入图片描述
vim
文本编辑工具
terminator
超级终端
支持分栏和同时操作
ros
机器人操作系统,去官网选择对应版本去装即可

经典视觉SLAM框架

在这里插入图片描述
在这里插入图片描述
视觉里程计
视觉里程计关心相邻图像之间的相机运动,视觉里程计能够通过相邻帧间的图像估计相机运动,并恢复场景的空间结构。
仅通过视觉里程计来估计轨迹,将不可避免的出现累积漂移,为了解决这个问题出现了后端优化(校正整个轨迹的形状)和回环检测(把“机器人回到原始位置”的事情检测出来)

后端优化:
主要指处理SLAM过程中的噪声问题。后端优化要考虑的问题就是如何从带有噪声的数据中估计整个系统的状态,以及这个状态估计的不确定性有多大–这叫做最大后验概率估计。
在SLAM中,前端给后端提供待优化的数据,后端负责整体的优化过程。前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配,后端主要是滤波与非线性优化算法。。
在这里插入图片描述

回环检测(闭环检测)
主要解决位置估计随时间漂移的问题。视觉回环检测实质上是一种计算图像数据相似性的算法。检测完后,会将信息告诉后端优化算法,然后后端优化算法根据这些新的信息,把轨迹和地图调整到符合回环检测结果的样子。

建图
在这里插入图片描述
根据不同的应用构建不同的地图。总体上可以分为:
度量地图:强调精确地表示地图中物体的位置关系,通常用稀疏和稠密对其分类。稀疏图进行一定程度的抽象,并不需要表达所有物体,通常适用于定位。稠密地图着重于建模看到的所有东西,适用于导航。
拓扑地图:更加强调地图元素之间的关系。由节点和边组成,只考虑节点间的连通性。
在这里插入图片描述

SLAM问题数学表示

xk代表在k时刻与xk处探测到某一个路标yi。uk是运动传感器的读数或者输入。wk为该过程加入的噪声。
运动方程
在这里插入图片描述
观测方程:
在xk位置看到某个路标点yi,产生了一个观测数据zk,j
在这里插入图片描述
vk,j是这次观测里的噪声。
针对不同的传感器,方程有不同的参数化形式。
总结为两个基本方程:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Hook技术学习——常见的hook技术方案

一、前言 最近一段时间在研究Android加壳和脱壳技术,其中涉及到了一些hook技术,于是将自己学习的一些hook技术进行了一下梳理,以便后面回顾和大家学习。 本文第二节主要讲述编译原理,了解编译原理可以帮助进一步理解hook技术 本文…

基于springboot的企业进销存管理系统/进销存管理系统/库存管理系统

摘 要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括企业进销存管理系统的网络应用,在外国企业进销存管理已经是很普遍的方式,不过国内的企业进销存管理可能还处于起步阶段。企业进销存管理系统具有…

图论相关问题

1. 拓扑排序bitset 第一次使用bitset&#xff0c;复杂度&#xff1a;N/32&#xff0c;比N小 所以总的时间复杂度为O(N*(NM)/32) #include <iostream> #include <bitset> #include <queue> using namespace std; const int N 3e420; bitset<N> f[N];…

高教杯数学建模2020C题总结

&#x1f9e1;1. 前言&#x1f9e1; 跟队友花了三天模拟2020C题&#xff0c;现在整理一下一些数据处理的代码&#xff0c;以及在模拟中没有解决的问题。方便以后回溯笔记。 &#x1f9e1;2. 数据处理&#x1f9e1; 2.1 导入数据&#xff0c;并做相关预处理 import pandas a…

Java课题笔记~ 自定义拦截器实现权限验证

实现一个权限验证拦截器。 1、修改web.xml文件中请求路径 2、将所有的页面放入WEB-INF目录下 3、开发登录FirstController 4、开发拦截器 5、配置springmvc.xml文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…

TDD(测试驱动开发)?

01、前言 很早之前&#xff0c;曾在网络上见到过 TDD 这 3 个大写的英文字母&#xff0c;它是 Test Driven Development 这三个单词的缩写&#xff0c;也就是“测试驱动开发”的意思——听起来很不错的一种理念。 其理念主要是确保两件事&#xff1a; 确保所有的需求都能被照…

Java SPI加载机制

SPI加载机制 SPI&#xff08;Service Provider Interface&#xff09;是一种通过外界配置来加载具体代码内容的技术手段。SPI是JDK内置的一种服务提供发现机制&#xff0c;用于实现框架的扩展和组件替换。 在SPI中&#xff0c;框架提供一整套接口&#xff0c;使用者实现这些接…

Android Studio实现解析HTML获取图片URL,将URL存到list,进行列表展示

目录 效果build.gradle(app)添加的依赖(用不上的可以不加)AndroidManifest.xml错误代码activity_main.xmlitem_image.xmlMainActivityImage适配器ImageModel 接收图片URL效果 build.gradle(app)添加的依赖(用不上的可以不加) dependencies {implementation com.square…

信息安全:VPN 技术原理与应用.

信息安全&#xff1a;VPN 技术原理与应用. VPN 是网络通信安全保护的常用技术。VPN 中文翻译为“虚拟专用网”&#xff0c;其基本技术原理是把需要经过公共网传递的报文 (packet) 加密处理后&#xff0c;再由公共网络发送到目的地。利用VPN 技术能够在不可信任的公共网络上构建…

PDF怎么转Word?8 个最佳 PDF 转 Word 转换器

PDF 转 Word 转换工具只是一个特殊程序&#xff0c;可以将 PDF&#xff08;本机和/或扫描&#xff09;转换为 Microsoft Office Word 格式。将 PDF 导出到 Word 的主要原因之一是满足可编辑文档的需求&#xff0c;尽管还有其他原因。 由于缺少 PDF 阅读器&#xff0c;您可以选…

实用的开源应用全新开源源码Vue3+TS的前后台分离的开发平台源码开源技术社区平台

开源全新开源源码Vue3TS的前后台分离的开发平台源码。创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术&#xff0c;一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区&#xff0c;共建开源新生态&#xff01; 功能简介 个人办公&a…

python的进度条tqdm库,显示时进度条不换行设置

问题描述 tqdm库&#xff0c;显示时进度条不要换行&#xff0c;直接在一行里显示当前进度 换行显示&#xff1a; 不换行显示 解决方案&#xff08;参考链接&#xff09; 添加参数position0 和 leaveTrue 举例&#xff1a; 修改前&#xff1a; import tqdm import time f…

树莓派上搭建WordPress博客网站,并通过内网穿透发布到公网

文章目录 概述安装 PHP安装MySQL数据库安装 Wordpress设置您的 WordPress 数据库设置 MySQL/MariaDB创建 WordPress 数据库 WordPress configuration将WordPress站点发布到公网安装相对URL插件修改config.php配置 支持好友链接样式定制主题 概述 在本次教程里&#xff0c;我们…

Markdown 入门基础

文章目录 Markdown 是什么&#xff1f;为什么要使用 Markdown?工欲善其事&#xff0c;必先利其器Markdown 的工作原理Markdown 有什么用&#xff1f;网站文件资料笔记书籍演示文稿邮件文档 Markdown 方言其它资源 Markdown 是什么&#xff1f; Markdown 是一种轻量级的标记语…

【Docker报错】docker拉取镜像时报错:no such host

报错信息 [rootSoft soft]# docker pull mysql Using default tag: latest Error response from daemon: Head "https://registry-1.docker.io/v2/library/mysql/manifests/latest": dial tcp: lookup registry-1.docker.io on 192.168.80.2:53: no such host解决方法…

ogg格式怎么转换为mp3?

ogg格式怎么转换为mp3&#xff1f;我们都知道&#xff0c;OGG格式作为一种数字饮片格式&#xff0c;使用的是有损压缩技术&#xff0c;从而也保证了文件音质较高。然而&#xff0c;也正是因为这个特点&#xff0c;导致OGG格式文件较大。很多时候&#xff0c;我们在使用OGG格式文…

内网穿透-外远程连接中的RabbitMQ服务

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

日志系统——日志格式化模块设计

一&#xff0c;模块主要成员 该模块的主要作用是对日志消息进行格式化&#xff0c;将日志消息组织成制定格式的字符串。 该模块主要成员有两个&#xff1a;1.格式化字符串。 2.格式化子项数组 1.1 格式化字符串 格式化字符串的主要功能是保存日志输出的格式字符串。其格式化字…

网络安全/黑客技术(就业前景与经验分享)

网络安全与我们每一个人都息息相关&#xff0c;无论是企业还是个人&#xff0c;现在都非常重视网络安全。而且网络安全是一个新兴的行业&#xff0c;人才需求量远远大于供给&#xff0c;所以在薪资福利上具有很大的优势&#xff0c;并且对于初学者而言&#xff0c;很多人依旧担…

ThreadPool线程池

文章目录 一.概述和架构二.使用方式和底层原理三.七个参数介绍四.工作流程和拒绝策略五.自定义线程池 一.概述和架构 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能,而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,这避免了在短时间…