视觉SLAM中的数学基础01 -3D空间的位置表示

news2024/11/15 20:37:02

在视觉SLAM中,理解和表示3D空间中的位置是至关重要的。这涉及到多种数学概念和工具,如坐标系、向量、矩阵、旋转和平移等。这些数学基础构成了视觉SLAM算法的核心。以下是3D空间位置表示的基本数学概念。

在这里插入图片描述
这是一个表示世界坐标系和相机坐标系之间关系的3D图。图中:

红色、绿色和蓝色的箭头分别表示各个坐标系的X、Y、Z轴。
“World” 表示世界坐标系的轴,原点位于图中的中心。
“Camera” 表示相机坐标系的轴,原点相对于世界坐标系有一个位移,并且围绕Z轴旋转了45度。
虚线连接了世界坐标系的原点和相机坐标系的原点,表示两者之间的平移关系。

1. 坐标系和点的表示

1.1 世界坐标系(World Coordinate System):

通常在SLAM中,设定一个全局参考系,称为世界坐标系,表示整个环境中的固定参考点。

1.1.1 定义与用途

定义:世界坐标系是一个三维笛卡尔坐标系,通常由三个正交的轴(X轴、Y轴和Z轴)构成。在SLAM系统中,世界坐标系的原点通常选择为某个固定位置,如机器人的初始位置、地图的某个基准点等。

1.1.2用途:

定位与地图构建:世界坐标系用于统一表示所有物体、特征点、传感器的位置信息。通过统一的世界坐标系,SLAM系统可以在地图构建过程中确保所有点和物体的位置关系是一致的。

坐标转换:SLAM系统经常涉及多个坐标系之间的转换,如相机坐标系、机器人坐标系与世界坐标系之间的转换。世界坐标系作为全局基准,使得这些转换有了一个统一的参考点。

路径规划与导航:在机器人导航中,路径通常以世界坐标系为基准进行规划,这样可以确保机器人按照全球统一的路径移动,而不受局部坐标系变化的影响。

1.2 相机坐标系(Camera Coordinate System):

相机自身的坐标系,通常定义为相机光心为原点,光轴为Z轴。

相机坐标系是视觉SLAM和计算机视觉中一个非常重要的坐标系,它用于描述相机所看到的世界中的物体或点的位置。理解相机坐标系有助于进行从三维空间到图像平面的投影变换,进而用于视觉SLAM中的定位和地图构建。

  1. 定义
    相机坐标系是以相机的光心(光学中心)为原点的三维坐标系,具体的定义如下:

原点:相机的光心,即相机的光轴与成像平面交点在相机内部的理想位置。
Z轴:通常定义为沿着相机的光轴方向,指向前方(也就是相机镜头看向的方向)。
X轴:水平 指向右(从相机的视角来看)。

Y轴:垂直 指向下(从相机的视角来看)。

这种坐标系的定义与相机的几何和物理结构紧密相关,是所有图像处理和计算的基础。

  1. 3D点的表示
    在相机坐标系中,三维空间中的一个点
    在这里插入图片描述
    表示该点相对于相机光心的位置。该坐标系中的Z轴表示相机的前方,X轴表示相机的右侧,Y轴表示相机的下方。

3. 投影与相机模型

为了将3D世界中的点投影到2D图像平面上,需要使用相机模型,通常采用针孔相机模型来描述这一过程。

针孔相机模型:假设光线通过相机光心进行投影,空间中的3D点

在这里插入图片描述
在图像平面上的投影点(u,v) 可以通过以下关系表示:

在这里插入图片描述
在这里插入图片描述
4. 相机坐标系与其他坐标系的转换

在这里插入图片描述
在这里插入图片描述

1.3 点的表示:

在3D空间中,一个点的位置可以用一个三维向量
在这里插入图片描述

表示。这个向量表示点相对于某个坐标系的坐标值。
其中,X、Y、Z 是点在该坐标系中沿着三个轴的坐标值。这个点的位置相对于所选择的坐标系原点(通常是相机的光心、世界坐标系的原点等)进行测量。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.3.6. 点的重建

在一些情况下,需要从多个图像视角中重建3D点的位置。这通常通过三角测量法完成,即根据两个或多个相机视角的2D点,反推出原始3D点的坐标。这种重建过程在SLAM中非常关键,用于构建地图和环境模型。

2 各个坐标系的关系

在SLAM中,世界坐标系通常与其他几个坐标系互相配合使用:

相机坐标系(Camera Coordinate System):以相机光心为原点,通常Z轴朝向相机的视线方向,X轴水平指向右,Y轴指向下。在SLAM中,需要将相机坐标系中的点转换到世界坐标系中,以统一表示这些点在全局环境中的位置。

机器人坐标系(Robot Coordinate System):以机器人自身的某个点为原点,通常X轴指向机器人前方,Y轴指向左方,Z轴指向上方。SLAM中,机器人的位置和姿态常用世界坐标系来表示。

图像坐标系(Image Coordinate System):用于描述图像中的像素点位置。SLAM系统通过相机模型将图像坐标系中的点与世界坐标系中的3D点关联起来。

2. 旋转矩阵和欧拉角

在计算机视觉和SLAM(Simultaneous Localization and Mapping)中,旋转矩阵和欧拉角是用于描述物体在三维空间中旋转的两种常见方式。它们各有优缺点,并在不同的应用场景中发挥作用。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.2 欧拉角(Euler Angles)

定义

欧拉角是一种用来描述三维旋转的方式,通过三个角度来表示物体绕固定坐标轴的旋转。这三个角度通常称为 俯仰角(Pitch)、横滚角(Roll)和 偏航角(Yaw),分别表示绕X轴、Y轴和Z轴的旋转。
在这里插入图片描述

在这里插入图片描述

2.3. 旋转矩阵与欧拉角的转换

在实际应用中,经常需要在旋转矩阵和欧拉角之间进行转换。

在这里插入图片描述

2.4. 实际应用中的选择

使用旋转矩阵:如果需要高精度计算,或者需要频繁地组合和分解旋转,旋转矩阵通常是更好的选择。

使用欧拉角:如果旋转角度的直观解释很重要,或者系统中旋转不会涉及到极端的姿态(如接近万向锁),欧拉角可能会更方便。

3. 四元数(Quaternion)

四元数是用于描述三维空间中旋转的一种数学工具,在计算机视觉、SLAM(Simultaneous Localization and Mapping)、计算机图形学等领域被广泛应用。与欧拉角和旋转矩阵相比,四元数具有许多独特的优点,如避免了欧拉角的万向锁问题、存储效率更高、计算更高效等。

1. 四元数的定义

四元数是一种扩展的复数,由一个实数部分和一个三维向量部分组成。它可以表示为:

在这里插入图片描述

3.2. 四元数表示旋转

在这里插入图片描述

3. 四元数的性质

在这里插入图片描述

3.4. 四元数的应用

在这里插入图片描述

3. 5. 四元数的优点

避免万向锁问题:四元数不会像欧拉角那样遇到万向锁问题,适合表示任意角度的旋转。

计算效率高:四元数的旋转计算比旋转矩阵的乘法更高效,特别是在组合多个旋转时。

存储紧凑:四元数只需要4个参数,而旋转矩阵需要9个参数,存储和传输更为紧凑。

3.6. 实际应用中的四元数

SLAM系统:在SLAM系统中,四元数被广泛用于描述相机、传感器或机器人的姿态(位置和方向)。
计算机图形学:四元数用于3D动画中的旋转插值(如球面线性插值,SLERP),确保平滑的旋转效果。
无人驾驶和机器人学:四元数常用于路径规划、姿态控制和状态估计中,以描述和计算运动中的旋转。

4. 平移和齐次坐标

5. 刚体变换(Rigid Transformation)

6. 相机模型与投影

在这里插入图片描述
在3D空间中表示位置和姿态是视觉SLAM的数学基础,涉及坐标系、向量、矩阵、旋转和平移等多个概念。这些数学工具不仅用于描述相机的位置和方向,还用于在不同坐标系之间进行转换,是视觉SLAM算法的核心部分。理解这些基础对于进一步深入学习和应用视觉SLAM技术至关重要。

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

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

相关文章

以差异化运营高亮建材企业品牌优势,多层级孵化客户成交

建筑建材业作为国民经济的支柱产业之一,行业周期性明显,其发展情况与宏观经济走势高度相关。过去一年,随着供应链上下游的发展滑坡,建筑建材企业的流动性压力进一步显现,市场格局逐渐两级分化,头部企业甚至能在出口旺季一举收割将近80%的盈利份额。 对于非集团性门窗企业来说,…

人力资源外包项目适合哪些人做?

人力资源外包(RPO)项目在现代企业管理中扮演了重要角色。然而,成功运营RPO项目需要具备特定技能和背景的人员。以下是适合从事人力资源外包项目的几类人群,他们的特点和能力使他们能够在这一领域中取得成功。 1. 具备人力资源管理经验的专业人士 具备丰富…

Spring IOC and DI

1.什么是IOC (1)在Spring的MVC中我们学习了,让我们知道了将对象如何交给Spring进行管理类 (2)Spring是一个开源框架,是包含众多方法容器的IOC容器 (3)那么什么事IOC,我…

条理最清楚的最常用的 Git 管理指令

基础提交操作 git init # 将本地文件夹变为一个git仓库 git clone #将远程仓库克隆到本地 git log 查看提交记录 git fetch 命令更新remote索引,解决git branch -a没有最新分支的问题 git add # 将单个文件从工作区添加到暂存区 git add . # 将所有文件添加到暂存…

Win11(23H2)Copilot电脑重启会修改注册表解决办法

基础条件:科学上网 参考这两篇文章开启Copilot 参考一 参考二 成功后,如果你电脑每次重启,Copilot图标都会消失,那就是注册表被修改了,可以用一个取巧的办法解决 解决办法如下: 1. 桌面上新建一个文本&…

2024年【烟花爆竹经营单位主要负责人】找解析及烟花爆竹经营单位主要负责人复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 烟花爆竹经营单位主要负责人找解析参考答案及烟花爆竹经营单位主要负责人考试试题解析是安全生产模拟考试一点通题库老师及烟花爆竹经营单位主要负责人操作证已考过的学员汇总,相对有效帮助烟花爆竹经营单…

vue3引入模块报错:无法找到模块“xxx”的声明文件

使用vue3ts导入vue文件的时候,报错:找不到模块“./XXX.vue”或其相应的类型声明 这是由于:Vue 文件并不是标准的 JavaScript 模块,因此 TypeScript 需要通过这种声明方式来理解和处理这些文件 我是使用vite创建的项目&#xff0…

工作随记:oracle中偶发遇到存储过程编辑,删除等卡死问题

文章目录 一、查询session是否占用二、通过对象名称定位对应SID三、通过对应的SID查询session信息四、kill掉session 最近有几个客户也询问过:我的存储过程怎么编译、调试有时候就卡死不动了,而且还没办法删除,本次又碰到实际情况&#xff0c…

【NLP】文本处理的基本方法【jieba分词、命名实体、词性标注】

文章目录 1、本章目标2、什么是分词3、jieba的使用3.1、精确模式分词3.2、全模式分词3.3、搜索引擎模式分词3.4、中文繁体分词3.5、使用用户自定义词典 4、什么是命名实体识别5、什么是词性标注6、小结7、jieba词性对照表⭐ 🍃作者介绍:双非本科大三网络…

打卡第34天------动态规划-01背包

我目前刷leetcode上的题的时候,不仅每天按照代码随想录的算法训练营的进度来刷题,也会自己开始在leetcode上刷题了,有些简单的题目,不用看题解就能做出来了,这也是一种进步呀。希望可以尽快找到下家工作单位&#xff0…

前端全屏错误窗错解决方案

如果你的项目全屏错误窗报错,可以在vue.config.js中进行设置 const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,lintOnSave: false,devServer: {client: {overlay: false,},} })

doxygen制作接口文档

系列文章目录 文章目录 系列文章目录前言一、下载二、安装三、代码注释四、使用doxygen生成文档 前言 每次手动写接口文档太痛苦了,现在福利来了–doxygen Doxygen是软件开发中广泛使用的文档生成器工具。它自动从源代码注释生成文档,解析有关类、函数和…

上播狂卖下播全退!用户抛弃直播间,网红们疯狂刷单注水……

最近,直播带货行业瓜好像多的有点吃不动了!‍ 头部的一哥二哥三哥们,卖课的卖课、分家的分家,吵架的吵架……好不热闹。 就好比国民女婿董宇辉,在和东方甄选、俞敏洪周旋了小半年后,终于还是从打工人变成…

【送激活码,免费升级】GuitarPro发布8.1.3新版 guitar pro最新版中文官网下载 guitar pro激活码

打谱神器 Guitar Pro 迎来了 2024 最新版!所有购买过 Guitar Pro 8 的用户,现在就可以免费升级 V8.1.3 了,您可以通过软件内的升级提醒进行升级,或者直接下载下面的新包覆盖安装。 Guitar Pro8.13最新安装包下载(Win&…

【JVM】深入JIT优化机制

1.JIT优化技术 在将高级语言转化为计算机可识别的机器语言时,常用的两种方式是编译和解释。Java在编译过程中,首先将代码编译成字节码。但是,字节码并不能直接在机器上执行。因此,JVM中内置了解释器(Interpreter&…

汇编语言1 - 什么是汇编语言?

1. 什么是汇编语言? 1.1. 汇编语言的定义1.2. 汇编语言与机器语言 1.2.1. 相同点1.2.2. 不同点 2. 汇编语言的主要特点3. 汇编语言的基本组成4. 汇编器 4.1. 主要工作流程4.2. 常见的汇编器 4.2.1. NASM(Netwide Assembler)4.2.2. MASM&…

PPT免费图片素材网站分享

一、Pixabay 网址:https://pixabay.com/ 图片类型:高清、免费、商用 使用方法:找到想要的图片之后,右键复制之后粘贴到PPT即可使用。同时,点击下载可以找到不同尺寸的PPT素材 二、花瓣网 网址:https://…

B树和B+树的插入、删除

1. B树 1.1 B树的定义 树也称树,它是一颗多路平衡查找树。我们描述一颗树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,用字母表示阶数。当取时,就是我们常见的二叉搜索树。 一颗阶的树定义如下: 每…

“卖水人”的生意经,要比机器人厂商更懂机器人

技术公司的生存法则。 生态链中每个角色都有自己的生存法则。对于机器人产业链中的技术“卖水人”,它的核心生存法则除了要闷头搞技术,更重要的是要比机器人厂商更懂机器人,这不仅很大程度决定了自身的技术路线,更决定了能否切中…

labelme标注的图像分割json文件转图片格式

label标注的标签是json格式,会对选择的区域进行打点标记,所有的点围成不规则的多边形区域,中间的部分就是分割的区域 这里编写了python脚本,可以把json文件转为图片格式,这里是png格式 目标摆放如下 转化结果如下&…