从零实战SLAM-第二课(SLAM中的基础数学)

空间数据的表达方式:点和向量两种形式。
向量的内积,也叫做点乘,是逐点相乘后累加,最终结果是一个标量,物理意义是一个向量在另一个向量上的投影。
外积,也叫做叉乘,两个向量拼起来成,结果是一个矩阵,物理意义是旋转。
向量旋转
向量旋转可以由旋转轴向量加角度表示,一般采用右手坐标系。
a到b的旋转可以由向量w来描述
坐标系的变换包括平移和旋转,平移是对原点的平移,旋转是绕着三个轴旋转。
刚体运动:在三维空间中,把一个几何不变物体作旋转、平移的运动叫刚体运动。
刚体运动包括平移T和旋转R。
坐标系发生旋转,原坐标系下向量的值,按下面的方式进行变换。
这个矩阵一般叫旋转矩阵R,其必要条件是行列式为1的正交矩阵。
SO(n) 是特殊正交群:Special Orthogonal Group
旋转矩阵为正交阵,它的逆(即转置)描述了一个相反的旋转
旋转平移矩阵
世界坐标系中的向量a,经过一次旋转(R)和平移(t)后,得到了a':
𝑎′= 𝑅𝑎 + 𝑡 这里的t为平移向量。
将平移向量放进 矩阵运算中,则原向量变成齐次向量,矩阵变成了变换矩阵。
特殊欧式群:变换矩阵具有如下的特性。
罗德里格公式:
假设有一个旋转轴为n,角度为θ的旋转,显然,它对应的旋转向量为θn。
从一个旋转矩阵到旋转向量的转换。对于转角θ:
欧拉角:
用三个角度描述一个刚体在三维空间中的姿态,偏航-俯仰-滚转: yaw-roll-pitch → z-x-y。
欧拉角的缺点:万向锁。
当某一个轴旋转90°,有两个轴的对应平面重合,则此情况下两个旋转的效果是一样的,这种情况叫做万向锁。
为了避免万向锁对旋转计算的影响,SLAM中一般使用四元数来提起欧拉角描述旋转,当然本质是一样的。
一个四元数q 拥有一个实部和三个虚部:
三个虚部之间的运算关系:
也可以用一个标量和一个向量来表达四元数:
四元数的四则运算:
设𝒒𝒂 = [𝑠𝑎, 𝑣𝑎] , 𝒒𝒃 = [𝑠𝑏, 𝑣𝑏],则
四元数的共轭,
设𝒒𝒂 = [𝑠𝑎, 𝑣𝑎] 𝑞𝑎 = 𝑠𝑎 + 𝑥𝑎𝑖 + 𝑦𝑎𝑗 + 𝑧𝑎k,则
四元数的模长
四元数的逆
四元数与旋转之间的计算关系:
三维空间的单位向量𝒏 = [𝑛𝑥, 𝑛𝑦, 𝑛𝑧]',某个旋转是绕单位向量𝒏进行了角度为𝜃的旋转,该旋转的四元数形式为:
四元素如何用于计算旋转

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

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

相关文章

逆向破解学习-登山赛车

试玩 课程中的内容 Hook代码 import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage;public class HookComYoDo1SkiSafari2TXYYB_01 extends HookImpl{Overridepublic String p…

JSON.stringify循环引用问题

前端使用到对象的深度复制通常会简单的使用JSON.parse(JSON.stringify(obj))实现 (浅表复制会用Array.from、Object.assign、Object.create静态方法实现),但在对象存在循环引用的情况下(比如:树结构中子对象存在parent…

Linux进程管理命令

一、进程 程序由一条条指令构成,在运行一个程序的时候就是把这些指令从第一条执行到最后一条,而进程是一个正在运行的程序。 比如说,一个main.c文件是不可以直接运行的,对main.c进行编译链接之后生成一个main.exe(在W…

CEC2013(MATLAB):遗传算法(Genetic Algorithm,GA)求解CEC2013的28个函数

一、遗传算法GA 遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任…

网络原理(JavaEE初阶系列11)

目录 前言: 1.网络原理的理解 2.应用层 2.1自定义协议的约定 2.1.1确定要传输的信息 2.1.2确定数据的格式 3.传输层 3.1UDP 3.1.1UDP报文格式 3.2TCP 3.2.1确认应答 3.2.2超时重传 3.2.3连接管理 3.2.3.1三次握手 3.2.3.2四次挥手 3.2.4滑动窗口 3.…

2000-2021年地级市碳排放数据/地级市二氧化碳排放

2000-2021年地级市碳排放数据/地级市二氧化碳排放 1、时间:2000-2021年 2、来源:主要是各级统计年鉴、相关统计资料等。其中,能源部分分能源品种分部门的能 源消费数据来源于《中国能源统计年鉴》以及各级统计年鉴;工业过程和产…

《Zookeeper》源码分析(七)之 NIOServerCnxn的工作原理

目录 NIOServerCnxnreadPayload()handleWrite(k)process() NIOServerCnxn 在上一节IOWorkRequest的doWork()方法中提到会将IO就绪的key通过handleIO()方法提交给NIOServerCnxn处理,一个NIOServerCnxn代表客户端与服务端的一个连接,它用于处理两者之间的…

leetcode 面试题 02.07. 链表相交

题目:leetcode 面试题 02.07. 链表相交 描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 思路&…

【ChatGPT 指令大全】怎么使用ChatGPT来帮我们写作

在数字化时代,人工智能为我们的生活带来了无数便利和创新。在写作领域,ChatGPT作为一种智能助手,为我们提供了强大的帮助。不论是作文、文章,还是日常函电,ChatGPT都能成为我们的得力助手,快速提供准确的文…

开发工具IDEA的下载与初步使用【各种快捷键的设置,使你的开发事半功倍】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于IDEA的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.IDEA的简介以及优势 二.IDEA的下载 1.下…

【二】SPI IP核的使用

【一】SPI IP核使用:传送门 基于qsys通过spi外部总线协议对sd卡进行读写操作 一、实验平台与实验的目的: ​ 正点原子开拓者、芯片型号:EP4CE10F17C8;还需要一张sd卡。 ​ 该实验主要是利用SPI IP核驱动SD卡来实现读写实验&am…

爬虫010_列表高级_添加_append_extend_修改_查询_in_not int_删除_del_pop_remove---python工作笔记029

然后再来看列表操作 首先添加append方法 然后插入,坐标是要插入的下标,右边是插入的内容 看结果 1,2,3,4,5,6 然后这个extend,是逐个插入,放到后边 然后是修改,直接对下标赋值 看结果</