【第二讲---初识SLAM】

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.mzph.cn/news/40738.shtml

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

相关文章

Flink之Task解析

Flink之Task解析 对Flink的Task进行解析前,我们首先要清楚几个角色TaskManager、Slot、Task、Subtask、TaskChain分别是什么 角色注释TaskManager在Flink中TaskManager就是一个管理task的进程,每个节点只有一个TaskManagerSlotSlot就是TaskManager中的槽位,一个TaskManager中可…

数据结构单链表

单链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。 在我们开始讲链表之前,我们是写了顺序表,顺序表就是类似一个数组的东西&#xff0…

上海虚拟展厅制作平台怎么选,蛙色3DVR 助力行业发展

引言: 在数字化时代,虚拟展厅成为了企业宣传的重要手段。而作为一家位于上海的实力平台,上海蛙色3DVR凭借其卓越的功能和创新的技术,成为了企业展示和宣传的首选。 一、虚拟展厅的优势 虚拟展厅的崛起是指随着科技的进步&#x…

手机商城网站的分析与设计(论文+源码)_kaic

目录 摘 要 1 1 绪论 2 1.1选题背景意义 2 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究内容 3 2 网上手机商城网站相关技术 4 2.1.NET框架 4 2.2Access数据库 4 2.3 JavaScript技术 4 3网上手机商城网站分析与设…

Grafana+Prometheus技术文档-进阶使用-监控spring-boot项目

阿丹: 之前已经实现了使用Prometheus来对服务器进行了监控和仪表盘的创建,现在就需要对这些监控方法使用在spring-boot中去。 实现思路: 1、集成Actuator 2、加入Prometheus的依赖 3、配置开放端口、以及开放监控 4、配置Prometheus中的配置…

一次网络不通“争吵“引发的思考

作者: 郑明泉、余凯 为啥争吵,吵什么? “你到底在说什么啊,我K8s的ecs节点要访问clb的地址不通和本地网卡有什么关系…” 气愤语气都从电话那头传了过来,这时电话两端都沉默了。过了好一会传来地铁小姐姐甜美的播报声…

【一】ubuntu20.04上搭建containerd版( 1.2.4 以上)k8s及kuboard V3

k8s 部署全程在超级用户下进行 sudo su本文请根据大纲顺序阅读! 一、配置基础环境(在全部节点执行) 1、安装docker 使用apt安装containerd 新版k8s已经弃用docker转为containerd,如果要将docker改为containerd详见&#xff1a…

对dubbo的DubboReference.check的参数进行剖析

背景 在使用dubbo的时候,发现当消费者启动的时候,如果提供者没有启动,即使提供者后来启动了,消费者也调不通提供者提供的接口了。 注册中心使用都是nacos dubbo版本是3.0.4 例子 接口 public interface DemoService {String…

使用dockerfile手动构建JDK11镜像运行容器并校验

Docker官方维护镜像的公共仓库网站 Docker Hub 国内无法访问了,大部分镜像无法下载,准备逐步构建自己的镜像库。【转载aliyun官方-容器镜像服务 ACR】Docker常见问题 阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面…

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

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

Linux:shell脚本:基础使用(4)《正则表达式-grep工具》

正则表达式定义: 使用单个字符串来描述,匹配一系列符合某个句法规则的字符串 正则表达式的组成: 普通字符串: 大小写字母,数字,标点符号及一些其他符号 元字符:在正则表达式中具有特殊意义的专用字符 正则表…

蓝桥杯嵌入式省一教程:(三)按键扫描与定时器中断

在第一讲中曾经提到,GPIO有输入输出两种模式。在点亮LED时,我们已经使用了GPIO输出模式,在按键识别中,我们将要使用GPIO输入模式。首先来看看按键的电路原理图(下图在选手资源数据包——CT117E-M4产品手册中&#xff0…

高等数学教材重难点题型总结(三)微分中值定理和导数的应用

第三章,微分中值定理的证明题等,非常重要,需要牢牢掌握 1.证明中值定理对某函数在给定区间上的正确性 2.与中值定理有关的证明题 3.微分中值定理应用于求证不等式 4.洛必达法则求极限 5.洛必达的经典错误反例 6.按某项实现多项式幂展开 7.求带…

以 Java NIO 的角度理解 Netty

文章目录 前言Java NIO 工作原理Selector 的创建ServerSocketChannel 的创建ServerSocketChannel 注册 Selector对事件的处理总结 前言 上篇文章《Netty 入门指南》主要涵盖了 Netty 的入门知识,包括 Netty 的发展历程、核心功能与组件,并且通过实例演示…

rabbitmq的发布确认

生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式, 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID (从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给生产者(包含消息的唯一 ID)&…

AI巨浪下,数据技术如何驱动智能未来?

引言 数据技术是大数据时代的核心驱动力,也是推动各行各业数字化转型和智能化升级的关键因素。随着云计算、人工智能、区块链等新兴技术的不断发展和融合,数据技术也呈现出多模态、混合处理、自动化管理等新的趋势和特点。 8 月 19 日(周六&…

【宝藏系列】嵌入式 C 语言代码优化技巧【超详细版】

【宝藏系列】嵌入式 C 语言代码优化技巧【超详细版】 文章目录 【宝藏系列】嵌入式 C 语言代码优化技巧【超详细版】前言整形数除法和取余数合并除法和取余数通过2的幂次进行除法和取余数取模的一种替代方法使用数组下标全局变量使用别名变量的生命周期分割变量类型局部变量指针…

STM32 F103C8T6学习笔记3:串口配置—串口收发—自定义Printf函数

今日学习使用STM32 C8T6的串口,我们在经过学习笔记2的总结归纳可知,STM32 C8T6最小系统板上有三路串口,如下图: 今日我们就着手学习如何配置开通这些串口进行收发,这里不讲串口通信概念与基础,可以自行网上…

一文读懂HTML

文章目录 HTML的历史HTML的作用HTML的基本语言 HTML的历史 HTML(HyperText Markup Language)的历史可以追溯到20世纪90年代早期,它是互联网发展的重要里程碑之一。以下是HTML的历史概述: 早期阶段(1980年代末 - 1990年…

FLatten Transformer 简化版Transformer

今天在找论文时,看到一篇比较新奇的论文,在这里跟大家分享一下,希望可以给一些人提供一些思路。虽然现在Transformer 比较火,在分割上面也应用的比较多,但是我一直不喜欢用,其中一个原因是结构太复杂了&…