SLAM中四元数、流形、李群、李代数是啥?

知识点得逻辑关系如下

引言

非线性问题由于复杂的数学结构,多样的解空间,局部极值等问题求解难度大大增加。所以在求解时需要把非线性问题转化为更容易处理的形式,例如

  1. 数值优化方法:数值优化方法包括梯度下降、共轭梯度法、牛顿法、拟牛顿法等。这些方法可以用于求解非线性优化问题,例如最小化损失函数、拟合非线性模型等。
  2. 迭代法:迭代法通过不断迭代更新来逼近非线性问题的解。例如,迭代法可以用于求解非线性方程组、求解微分方程的数值解等。
  3. 泰勒展开法:泰勒展开法是一种将非线性函数近似为多项式的方法,通过保留函数在某一点的一阶、二阶甚至更高阶导数来实现。这种方法常用于局部近似和线性化处理。
  4. 李群与李代数方法:对于具有连续对称性的对象的变换问题,李群与李代数方法提供了一种有效的工具。例如,在机器人路径规划、SLAM(同时定位与地图构建)等问题中,李群与李代数方法常用于处理非线性变换。
  5. 数值模拟方法:对于复杂的非线性系统,数值模拟方法可以通过数值仿真来模拟系统的行为,并分析系统的稳定性和性能。
  6. 符号计算方法:符号计算方法利用计算机代数系统进行符号计算,可以对非线性方程组进行求解、符号推导等操作。
  7. 统计方法:统计方法包括贝叶斯推断、蒙特卡洛方法等,用于估计非线性模型的参数、进行概率推断等。
  8. 机器学习方法:机器学习方法可以用于建立非线性模型,并通过训练数据来学习模型的参数和结构,例如神经网络、支持向量机、随机森林等。

早期的SLAM问题被看为统计学问题,使用粒子滤波进行求解(Gmapping),但会存在粒子数目选择困难、样本退化、对传感器噪声敏感等问题。

SLAM是非线性估计问题,将其转化为线性问题可以大大降低求解难度。但旋转矩阵是一种特殊的结构,旋转矩阵的乘积是一个典型的非线性变换,它涉及到角度的叠加,而角度的叠加是非线性的。虽然泰勒展开可以用来近似非线性函数,由于角度叠加的非线性特性和截断误差的影响,泰勒展开并不是一个很好的选择。

旋转矩阵不符合加法特性,两个旋转矩阵相加不再是旋转矩阵,这意味着不能对旋转矩阵求导,求导的本质是衡量函数在给定点处的变化率,不能加法运算就不利于求导。旋转矩阵位于流形空间,流形空间中的每个点都对应一个局部线性空间,所以需要找到旋转矩阵对应的线性表达,这就涉及到了李群李代数的转换。

 一、为啥用四元数

位姿的表达

SLAM的一个目标是求解位姿,而位姿是由平移和旋转构成,变换矩阵构成如下

  • 旋转矩阵(Rotation Matrix):3x3的旋转矩阵表示物体的旋转姿态。它描述了相机或机器人在空间中的方向变化。
  • 平移向量(Translation Vector):3维向量表示物体从一个位置平移到另一个位置的平移量。它描述了相机或机器人在空间中的位置变化。

其中,R11R333x3的旋转矩阵,描述了物体的旋转姿态;T1T3是平移向量,描述了物体的位置变化。最后一行是[0 0 0 1],用于保持齐次坐标的一致性。

这时你会觉得,位姿这不很好被表达了,为什么要引入什么四元数、李群等等一大堆东西。我们需要注意一点就是表达和优化计算的区别,可以看到变换矩阵用9个变量表达旋转,在优化计算过程中是十分复杂的。因此需要一种简单的表达旋转的方法,我们会想到欧拉角。

欧拉角( Euler Angles)将旋转分解为三个方向上的转动例,按Z-Y-X顺序转动轴可以是定轴或动轴,顺序亦可不同常见的有 : yaw-pitch-roll,这样表达旋转参数量大大减少。然而,欧拉角存在着一些奇异性,这些奇异性可能导致旋转表示的不唯一性和不连续性。

1.万向锁(Gimbal Lock): 当俯仰角(pitch)接近 ±90 度时,会出现万向锁的情况。在这种情况下,两个旋转轴会趋向于重合,导致旋转系统丧失了一个自由度。这样一来,物体的旋转将变得不稳定,且不再具有唯一性。

2.奇异点(Singularities): 欧拉角存在一些奇异点,即某些特定的姿态下,无法唯一地确定欧拉角的值。这些奇异点通常出现在欧拉角的转换公式中,导致计算过程中的不连续性和不确定性。

3.旋转顺序的影响: 欧拉角的表示方式取决于旋转的顺序,不同的旋转顺序可能导致不同的结果。这种依赖旋转顺序的性质使得欧拉角的表示方式并不唯一。

4.理论上可以证明,用3个实数来描述旋转问题都会出现奇异性问题,因为这个问题,欧拉角不适用与插值或者迭代。 

四元数

旋转矩阵用9个量描述3自由度旋转具有冗余性,欧拉角虽然紧凑但存在奇异性,所以需要寻求一种新的旋转描述方式——四元数,它可以更有效地表示和计算旋转操作,并且相对于欧拉角等其他旋转表示方法,四元数不易受到奇异性的影响。

首先需要知道复数可以表达旋转。复数域定义如下,对应了复数的平面坐标系称为复平面x轴和y轴分别称为实轴虚轴。当r等于1时称为单位复数。特别的我们拿i乘以一个复数,对应的几何意义是旋转90°。在知道了可以用复数表达旋转后,引入了四元数。

四元数:三维情况下,四元数可作为复数的扩充,具有三个虚部和一个实部。四元数相比于角轴、欧拉角的优势:紧凑、无奇异性。且四元数与角轴之间可以相互转换。

详情请见...

SLAM中四元数、流形、李群、李代数是啥? - 古月居 (guyuehome.com)

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

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

相关文章

Spring boot实现基于注解的aop面向切面编程

Spring boot实现基于注解的aop面向切面编程 背景 从最开始使用Spring,AOP和IOC的理念就深入我心。正好,我需要写一个基于注解的AOP,被这个注解修饰的参数和属性,就会被拿到参数并校验参数。 一,引入依赖 当前sprin…

寒武纪:“国产平替”道阻且长

英伟达的一季报反映了AI装备竞赛白热化,科技巨头们正疯狂加码投资。 不过,因为众所周知的原因,英伟达最先进的产品卖不到国内,虽然说一定程度上限制了咱们AI的发展,但也给国产AI芯片公司们提供了机会,其中就包括我们今…

K8S==ingress简单搭建和使用

基础环境 D:\DOCKER_REPO\K8S>kubectl version Client Version: v1.29.2 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: v1.29.2 D:\DOCKER_REPO\K8S>kubectl get nodes NAME STATUS ROLES AGE VERSION docker-…

01_深度学习基础知识

1. 感知机 感知机通常情况下指单层的人工神经网络,其结构与 MP 模型类似(按照生物神经元的结构和工作原理造出来的一个抽象和简化了模型,也称为神经网络的一个处理单元) 假设由一个 n 维的单层感知机,则: x 1 x_1 x1​ 至 x n x_n xn​ 为 n 维输入向量的各个分量w 1 j…

【大学物理】Interference,diffraction,polarization:光学

nature of light definition speed of light reflection dispersion huygenss principle:惠更斯原理

OBD诊断协议

上周领导需要做个OBD相关的功能,我对OBD没有啥概念,于是周末就了解下这到底是个啥东西。了解过后发现很简单,其实就是个UDS协议的简化版,OBD是英文On-Board Diagnostics的缩写,中文翻译为“车载自动诊断系统”&#xf…

链表反转--理解链表指针的基本操作

链表反转--理解链表指针的基本操作 链表反转的方法--主要是理解链表指针链表心得类节点是对象和指针区别: 链表反转的方法–主要是理解链表指针 根据值创建新列表 用一个链表指针代替整个新链表 两个链表的赋值 递归求解反向链表 用一个链表代替前后链表数…

Qt应用程序发布

一、静态编译发布 1.0:以Release模式构建工程 1.1:查看当前构建生成路径,并将所生成的.exe单独拷贝出来 1.2:将可执行文件*.exe拷贝至任一目标文件夹:D:\Temporary\QQIF 2:查看安装Qt时发布工具windeployqt.exe所在的目录 windeployqt.exe在Qt开发套件的bin目录下。Qt的每…

构建高效稳定的短视频直播系统架构

随着短视频直播的迅猛发展,构建一个高效稳定的短视频直播系统架构成为了互联网企业的重要挑战。本文将探讨如何构建高效稳定的短视频直播系统架构,以提供优质的用户体验和满足日益增长的用户需求。 ### 1. 短视频直播系统的背景 短视频直播近年来蓬勃发…

Pycharm 添加内容根

解决问题:包未能被正常引入时

try…except…finally语句

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 完整的异常处理语句应该包含finally代码块,通常情况下,无论程序中有无异常产生,finally代码块中的代码都会被执行…

2024 年该如何利用 MidJourney 创作AI艺术(详细教程)

什么是 Midjourney Midjourney 是根据文本提示创建图像的生成式人工智能的优秀范例。与 Dall-E 和 Stable Diffusion 一样,它已成为最受欢迎的人工智能艺术创作工具之一。与竞争对手不同的是,Midjourney 是自筹资金和封闭源代码的,因此对它的…

【WRF理论第二期】模型目录介绍

WRF理论第二期:模型目录介绍 1 WRF主目录2 WPS主目录3 编译后的可执行文件4 运行目录参考 了解 WRF 模型的目录结构有助于有效地管理和操作模型,从而确保模拟和分析工作的顺利进行。以下分解介绍WRF主目录、WPS主目录等。 Github-wrf-model/WRF 1 WRF…

leetCode-hot100-二分查找专题

二分查找 简介原理分析易错点分析例题33.搜索旋转排序数组34.在排序数组中查找元素的第一个和最后一个位置35.搜索插入位置240.搜索二维矩阵 Ⅱ 简介 二分查找,是指在有序(升序/降序)数组查找符合条件的元素,或者确定某个区间左右…

找不到steam_api64.dll,无法继续执行的原因及解决方法

电脑已经成为我们生活中不可或缺的一部分。然而,在使用电脑的过程中,我们经常会遇到一些常见的问题,其中之一就是找不到某个特定的动态链接库文件,比如steamapi64.dll。这个问题可能会导致某些应用程序无法正常运行,给…

关于博图17安装体验过程—博图17安装失败原因(STEP7 许可证找不到)

目录 一、序言 二、正片 一、序言 该失败原因是在我使用Win11专业版安装博图17时出现的问题,也仅代表我的体验过程!以下我将安装过程和解决问题的过程描述一下,希望可以帮助和我一样自己安装博图时能够解决出现的问题。 二、正片 如果阁下…

linux驱动学习(五)之字符设备

需要板子一起学习的可以这里购买(含资料):点击跳转 一、 linux设备驱动分类 1、字符设备---char 应用程序与驱动程序在进行数据传输时,数据以"字节"为单位。 特点: [1] 按照顺序进行数据传输 [2] 数据传…

vscode专区

1.展示多行的文件导航标签,而非只有1行 1.1打开设置 1.2搜索该设置"workbench.editor.wrap.tabs",并勾选 1.3效果对比

vue+vscode 快速搭建运行调试环境与发布

1.安装node.js Node.js — Run JavaScript Everywhere 默认不断next 2.更换镜像地址 运行-cmd 执行以下代码安装 npm config set registry https://registry.npmmirror.com 检查node.js和镜像是否是否成功 node -v npm -v npm config get registry 3.安装打包工具 …

吊车报警的工作原理和使用场景_鼎跃安全

在现代建筑施工过程中,经常使用大型机械设备,如挖掘机、吊车、打桩机等,这些设备在施工过程中发挥着越来越重要的作用;同时,这些设备的作业频繁进行作业,对于接触到高压电线的风险也随之增加。大型机械设备…