【第二讲---初识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.rhkb.cn/news/96515.html

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

相关文章

【C语言】字符函数和字符串函数

目录 1.求字符串长度strlen 2.长度不受限制的字符串函数 字符串拷贝strcpy 字符串追加strcat 字符串比较strcmp 3.长度受限制的字符串函数介绍strncpy strncat ​编辑strncmp 4.字符串查找strstr 5.字符串分割strtok 6.错误信息报告 strerror perror 7.字符分类函…

C++之模板进阶

模板进阶 非类型模板参数模板的特化概念函数模板特化类模板特化全特化偏特化 模板分离编译什么是分离编译模板的分离编译解决方法 模板总结 非类型模板参数 模板参数分两种:类型形参与非类型形参。 类型形参:出现在模板参数列表中,跟在class…

WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机

WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机 在之前已经实现了WebRTC调用ossrs服务,实现直播视频通话功能。但是在使用过程中,RTCCameraVideoCapturer类提供的方法不能修改及调节相机的灯光等设置,那就需要自定义RTCVideoCaptur…

手写模拟SpringBoot核心流程(一):实现极简一个SpringBoot——模拟SpringBoot启动过程

前言 Spring Boot 是一个开源的框架,用于简化 Spring 应用程序的开发和部署。它建立在 Spring Framework 的基础上,内置了web服务器——tomcat和jetty,使得 Spring 应用的构建变得更加快速、简单和可维护。 本文通过实现一个SpringBoot&…

ElasticSearch索引库、文档、RestClient操作

文章目录 一、索引库1、mapping属性2、索引库的crud 二、文档的crud三、RestClient 一、索引库 es中的索引是指相同类型的文档集合,即mysql中表的概念 映射:索引中文档字段的约束,比如名称、类型 1、mapping属性 mapping映射是对索引库中文…

C++ 面向对象三大特性——多态

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C 继承 ☂️<3>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<4>前言&#xff1a;面向对象三大特性的&#xff0c;封装&#xff0c;继承&#xff0c;多态&#xff…

layui下拉框select 弹出层在最外层

出现问题如图所示 想要的效果是如下 这样的效果只需一行代码就能解决 .layui-layer-page .layui-layer-content{overflow: visible!important;}

No accessible constructors were found for the type‘XXXXXX‘

abp框架新建了一个模版项目&#xff0c;启动报错。 //报错实例 Autofac.Core.Activators.Reflection.NoConstructorsFoundException:“No accessible constructors were found for the type weigu.Admin.Order.OrderHuizongAppService.”报错意思是没有为’ weight.admin.orde…

MySQL 索引为什么使用 B+ 树,而不使用红黑树 / B 树 ?

面试官问 &#xff1a;索引为什么使用 B 树&#xff0c;而不使用 B 树&#xff0c;不使用红黑树呢 首先 B 树和 B 树 都是多叉搜索树&#xff0c;然后我们先来观察一下 B 树和 B 树的数据结构&#xff1a; B 树的数据结构实现 >> B 树的数据结构实现 >> 【B 树相…

CSS简介

目录 CSS CSS概念 核心概念 为什么需要CSS 语法 CSS的引入方式 内联样式&#xff08;行内样式&#xff09; 内部样式 外部样式&#xff08;推荐&#xff09; CSS CSS概念 CSS&#xff08;Cascading Style Sheets&#xff09;层叠样式表&#xff0c;又叫级联样式表&am…

微信小程序真机调试异常cmdId 1006, errCode-50011-已解决

cmdId 1006, errCode-50011 起因 小程序在模拟器上预览没问题,真机调试和体验版首页打不开,点展开显示cmdId 1006, errCode-50011 解决 查了下1006, 说是广告, 我没接广告,这个也不是错误码 1006广告组件被驳回你的广告正在被审核,无法展现广告后来找到几个类似的帖子…

中间件的介绍

1.1 什么是中间件 中间件是介于应用系统和系统软件之间的一类软件&#xff0c;他使用系统软件所提供的基础服务&#xff0c;衔接网络上应用系统的各个部分或不同的应用&#xff0c;能够达到资源共享、功能共享的目的。 例如MySQL就可以看作是具备中间件特性的一种技术&#x…

Linux系列讲解 —— FTP协议的应用

简单介绍一下FTP文件传输协议在linux系统中的应用。 目录 0. 基本概念1. FTP Server1.1 安装FTP Server1.2 FTP Server开启和关闭1.3 查看FTP Server是否开启1.4 FTP服务器配置 2. FTP Client2.1 lftp2.2 ftp2.3 sftp2.4 文件资源管理器集成的ftp和sftp 3. ftp常用命令 0. 基本…

python使用dir()函数获取对象中可用的属性和方法(看不到python源码又想知道怎么调用,DLL调用分析,SDK二次开发技巧)

有时候调用一些SDK&#xff0c;但是人家又是封装成dll文件形式调用的&#xff0c;这时没法看源码&#xff0c;也不想看其对应的开发文档&#xff08;尤其有些开发文档写得还很难懂&#xff0c;或者你从某个开源社区拿过来&#xff0c;就根本没找到开发文档&#xff09;&#xf…

搜狗拼音暂用了VSCode及微信小程序开发者工具快捷键Ctrl + Shit + K 搜狗拼音截图快捷键

修改搜狗拼音的快捷键 右键--更多设置--属性设置--按键--系统功能快捷键--系统功能快捷键设置--取消Ctrl Shit K的勾选--勾选截屏并设置为Ctrl Shit A 微信开发者工具设置快捷键 右键--Command Palette--删除行 微信开发者工具快捷键 删除行&#xff1a;Ctrl Shit K 或…

虚拟机问题

虚拟机无法识别USB设备 经排查为VMware USB Arbitration Service 没有启动,但是VMware USB Arbitration Service依赖于VMware Workstation Server启动 VMware USB Arbitration Service(VMUSBArbService)是由 VMware 虚拟化软件提供的一个服务,用于协调和管理主机系统上的…

计算机网络----CRC冗余码的运算

目录 1. 冗余码的介绍及原理2. CRC检验编码的例子3. 小练习 1. 冗余码的介绍及原理 冗余码是用于在数据链路层的通信链路和传输数据过程中可能会出错的一种检错编码方法&#xff08;检错码&#xff09;。原理&#xff1a;发送发把数据划分为组&#xff0c;设每组K个比特&#…

UNIAPP中开发企业微信小程序

概述 需求为使用uni-app开发企业微信小程序。希望可以借助现成的uni-app框架&#xff0c;快速开发。遇到的问题是uni-app引入jweixin-1.2.0.js提示异常: Reason: TypeError: Cannot read properties of undefined (reading ‘title’)。本文中描述了如何解决该问题&#xff0c…

linux 系统中vi 编辑器和库的制作和使用

目录 1 vim 1.1 vim简单介绍 1.2 vim的三种模式 1.3 vim基本操作 1.3.1命令模式下的操作 1.3.2 切换到文本输入模式 1.3.3 末行模式下的操作 2 gcc编译器 2.1 gcc的工作流程 2.2 gcc常用参数 3 静态库和共享&#xff08;动态&#xff09;库 3.1库的介绍 3.2静态…

Spring事件监听机制

前言 事件监听机制其原理就是观察者模式&#xff0c;而观察者模式又被称为发布-订阅模式。 观察者模式将有依赖关系的对象抽象为了观察者和主题两个不同的角色&#xff0c;多个观察者同时观察一个主题&#xff0c;两者只通过抽象接口保持松耦合状态&#xff0c;这样双方可以相…