第三讲,三维空间刚体运动

一个刚体在三维空间中的运动是如何描述的。我们当然知道这由一次旋转加一次平移组成。平移确实没有太大问题,但旋转的处理是件麻烦事。我们将介绍旋转矩阵、四 元数、欧拉角的意义,以及它们是如何运算和转换的。

1.向量,坐标系和旋转矩阵

  • 点存在于三维空间之中
  • 点和点可以组成向量
  • 点本身由原点指向它的向量所描述

向量

  • 带指向性的箭头

  • 可以进行加法,减法等运算
    在这里插入图片描述
    坐标系:由三个正交的轴组成

  • 构成线性空间的一组基

  • 左手系 右手系
    在这里插入图片描述

  • 定义坐标系后,向量可以由R3坐标表示

线性空间的基 (e1, e2, e3), 那就可以谈论向量 a 在这组基下的坐标了

在这里插入图片描述

向量坐标的运算

加减法:

在这里插入图片描述

内积:内积可以描述向量间的投影关系

在这里插入图片描述

外积:外积只对三维向量存在定义,我们还能用外积表示向量的旋转

在这里插入图片描述

把 a 写成一个矩阵。事实上是一个反对称矩阵 ,你可以将 ∧ 记成一个反对称符号。这样就把外积 a × b,写成了矩阵与向量的乘法 a ∧b。任意向量都对应着唯一的一个反对称矩阵,反之亦然。

2. 坐标系之间的欧式变换

问题1:

坐标系之间如何变化的?

问题2:

如何计算同一个向量在不同坐标系里的坐标?

在SLAM中:

  • 固定的世界坐标系和移动的机器人坐标系
  • 机器人坐标系随着机器人运动而改变,每个时刻都有新的坐标系

在这里插入图片描述

如何描述左侧黑色坐标系到右侧蓝色坐标系的变化?

  • 黑色坐标系先旋转变为粉色坐标系
  • 粉色坐标系再进行平移为蓝色坐标系

T 是一个矩阵,也称为欧式变换 = 旋转+平移

2.1 旋转矩阵 R

  • 设某个单位正交基 (e1, e2, e3) 经过一次旋转,变成了 (e ′ 1 , e ′ 2 , e ′ 3 )。
  • 那么,对于同一个向量 a(注意该向量并没有 随着坐标系的旋转而发生运动),它在两个坐标系下的坐标为 [a1, a2, a3] T 和 [a ′ 1 , a ′ 2 , a ′ 3 ] T。
  • 根据坐标的定义,有:

在这里插入图片描述

为了描述两个坐标之间的关系,我们对上面等式左右同时左乘
在这里插入图片描述

那么左边的系数变成了单位矩阵,所以:

在这里插入图片描述

我们把中间的阵拿出来,定义成一个矩阵 R。这个矩阵由两组基之间的内积组成,刻 画了旋转前后同一个向量的坐标变换关系。只要旋转是一样的,那么这个矩阵也是一样的。 可以说,矩阵 R 描述了旋转本身。因此它又称为旋转矩阵

旋转矩阵有一些特别的性质:

  • 它是一个行列式为 1 的正交矩阵。反之,行列式为 1 的正交矩阵也是一个旋转矩阵
  • 旋转矩阵各分量是两个坐标系基的内积,由于基向量的长度为1,所以实际上是各基向量夹角的余弦值。所以这个矩阵也叫方向余弦阵

在这里插入图片描述

SO(n) 是特殊正交群的意思。我们把解释“群”的内容留到下一讲。这个集合由 n 维空间的旋转矩阵组成,特别的,SO(3) 就是三维空间的旋转了。通过旋转矩阵,我们可以直接谈论两个坐标系之间的旋转变换,而不用再从基开始谈 起了。换句话说,旋转矩阵可以描述相机的旋转

由于旋转矩阵为正交阵,它的逆(即转置)描述了一个相反的旋转。按照上面的定义方式,有:

在这里插入图片描述

显然 RT 刻画了一个相反的旋转。

在欧氏变换中,除了旋转之外还有一个平移。考虑世界坐标系中的向量 a,经过一次 旋转(用 R 描述)和一次平移 t 后,得到了 a ′,那么把旋转和平移合到一起,有:

在这里插入图片描述

t 称为平移向量。相比于旋转,平移部分只需把这个平移量加到旋转之后的坐标上。

实际上,我们会定义坐标系1,坐标系2,那么向量a在两个坐标系下的坐标为a1,a2,它们之间的关系应该是:

在这里插入图片描述

R12是指 **”把坐标系2的向量变换到坐标系1“**中

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

2.2 变换矩阵与齐次坐标

完整地表达了欧氏空间的旋转与平移,不过还存在一个小问题:这里的变换 关系不是一个线性关系。假设我们进行了两次变换:R1, t1 和 R2, t2,满足:
在这里插入图片描述
但是从 a 到 c 的变换为:
在这里插入图片描述

这样的形式在变换多次之后会过于复杂。因此,我们要引入齐次坐标变换矩阵重写:
在这里插入图片描述

我们把一个三维向量的末尾添加 1,变成了四维向量,称为齐次坐标。对于这个四维向量,我们可以把旋转和平移写在一个矩阵里面,使得整个关系变成 了线性关系。该式中,旋转和平移可以放入同一个矩阵,称矩阵 T 称为变换矩阵。我们暂时用 a˜ 表 示 a 的齐次坐标

在这里插入图片描述

那么多次变换就可以写成:

在这里插入图片描述

关于变换矩阵 T,它具有比较特别的结构:左上角为旋转矩阵,右上角为平移向量,左下角为0向量,右下角为1。这种矩阵又称为特殊欧氏群

在这里插入图片描述

实例应用:

在这里插入图片描述

移向量,左下角为0向量,右下角为1。这种矩阵又称为特殊欧氏群

[外链图片转存中…(img-pyjcIDHI-1693126744443)]

实例应用:

[外链图片转存中…(img-LgaWxEkz-1693126744443)]

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

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

相关文章

两独立样本的非参数检验(Mann-Whitney U 秩和检验)

原文地址:SPSS学习笔记之——两独立样本的非参数检验(Mann-Whitney U 秩和检验)作者:王江源 一、概述 Mann-Whitney U 检验是用得最广泛的两独立样本秩和检验方法。简单的说,该检验是与独立样本t检验相对应的方法&…

不止基因编辑 当所有技术都可能成为毒药

基因技术、纳米技术、机器人技术的新潘多拉之盒即将开启,你我却毫无查觉。我们不单受到大规模杀伤性武器的威胁,还有技术知识产生的大规模杀伤力。这一邪恶的力量,正由国家力量支持的大规模杀伤性武器,转向极端的个人。——Bill J…

市场的霸主:对冲基金世界的超额回报大师

《市场的霸主:对冲基金世界的超额回报大师》 基本信息 作者: (美)马妮特.阿胡贾(Maneet Ahuja) 译者: 毕崇毅 郑磊 出版社:机械工业出版社 ISBN:9787111425441 上架时间:2013-5-29 出版日期:201…

革命性新疗法后 第三例艾滋病治愈病例可能出现了!

伦敦病人的例子说明,柏林病人被治愈并非出于侥幸,而是可以被复制的。 艾滋病患者通常要终身每日服用病毒抑制药物。一旦停药,病毒就会在两三周内卷土重来。 新浪科技讯 北京时间3月12日消息,据国外媒体报道,一名德国艾…

SPSS学习笔记(三)方差分析ANOVA(F检验)

目录 一、单因素ANOVA 分析 过程 结果及分析 二、双因素ANOVA 案例及分析 过程 结果及分析 一、单因素ANOVA 单因素方差分析是两个样本平均数比较的引伸,它是用来检验多个平均数之间的差异,从而确定一种因素对试验结果有无显著性影响的统计方法…

JavaSE学习——异常

目录 一、异常概述 二、异常的体系结果 二、异常的处理:抓抛模型 三、try-catch-finally的使用 四、throws 异常类型 的使用 五、开发中如何选择使用try-catch-finally还是使用throws? 六、自定义异常 自定义异常步骤: 七、总结&a…

CAN总线学习——物理层、数据链路层、CANopen协议

1、CAN总线介绍 1.1、CAN总线描述 (1)CAN总线支持多节点通信,但是节点不分区主从,也就是不存在一个节点来负责维护总线的通信;这点可以和I2C总线对对比,I2C是一主多从模式; (2)是差分、异步、串行总线,采用…

MybatisPlus拦截器实战之数据的加解密和脱敏

文章目录 一、前言二、拦截器简介三、代码目录结构简介四、核心代码讲解4.1 application.yml文件4.2 自定义注解4.2.1 SensitiveEntity4.2.2 SensitiveData4.2.3 MaskedEntity4.2.4 MaskedField4.2.5 MaskedMethod 4.3 Mybatis-Plus 拦截器数据自动加密4.4 Mybatis 打印完整sql…

ChromeOS 的 Linux 操作系统和 Chrome 浏览器分离

导读科技媒体 Ars Technica 报道称,谷歌正在将 ChromeOS 的浏览器从操作系统中分离出来 —— 让它变得更像 Linux。虽然目前还没有任何官方消息,但这项变化可能会在本月的版本更新中推出。 据介绍,谷歌将该项目命名为 "Lacros"——…

strcat函数

目录 函数介绍: 函数声明: 具体使用: 注意事项: 字符串⾃⼰给⾃⼰追加,如何? 模拟实现strcat函数: 函数介绍: 被称为字符串的追加/链接函数,它的功能就是在一个字符…

【LeetCode-中等题】19. 删除链表的倒数第 N 个结点

文章目录 题目方法一:节点加入集合找索引方法二:直接计算长度,然后找出要删除的节点的前一个节点方法三:栈方法四:前后双指针 题目 这题的关键在与两个点 一定要设置一个哑结点,防止删除第一个元素时,导致空…

技能按钮CD效果

废话不多说,直接上代码! using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class Skill : MonoBehaviour//技能 {Button but;//技能按钮 Button组件Image img;//CD遮罩图片…

雷电模拟器9.0.56安装Magisk+LSPosd

雷电模拟器9.0.56安装MagiskLSPosd 一.准备软件1.MagiskLSPosd 我会放在文档资源那给你买下载2.雷电模拟器可以直接官网下载(我这里最新9.0.56版本)[https://www.ldmnq.com/](https://www.ldmnq.com/) 二.开始安装1. 先配置好模拟器2.安装软件3.配置 Mag…

挖数据四周年庆典,壕礼不断,惊喜不停!

挖数据四周岁啦!为了感谢广大用户们一路以来的支持与陪伴,我们特地准备了丰富的优惠活动,希望能够用最实际的行动来回馈您们的厚爱。四年的成长与蜕变,都是因为有您们的陪伴与鼓励,我们期待与您们一同分享这份喜悦与成…

当面临在职备考不确定性的结果时,你可能需要闭着眼冲一下

提前批面试在某种程度上像是联考分流幕后的那只无形之手,既助长了拿到优秀资格考生的备考热情,又打击了提面落榜考生的笔试自信心。就在这样的局面下,使得项目最终完成了联考前的分流操作。但如果你还是遵从自己的本心的话,就应该…

电脑编程自学(零基础自学编程怎么入门)

电脑编程自学入手:确定编程学习的方向。编程语言有多种:php,C++,C,C#,JAVA,Python等,每种语言都有不同的优缺点,可以根据自己的兴趣方向选择一门编程语言作为自己的学习目标。 基础阶段的语法学习。学习任何一门编程语言,都需要掌握其编程的语法规则,可以通过阅读一…

git入门教程

git入门教程 一、工作流程二、获取本地仓库三、Git常用指令1、查看文件状态2、查看提交日志3、版本回退4、添加文件至忽略列表 三、分支1、查看本地分支2、创建分支3、切换分支4、合并分支5、删除分支6、解决冲突 四、Git远程仓库1、常用的托管服务[远程仓库]2、注册码云3、创建…

gcc/linux下的c++异常实现

概述 本文不一定具有很好的说教性,仅作为自我学习的笔记。不妨可参阅国外大神博文C exceptions under the hood链接中包含了大量的例子。 偶有在对ELF做分析的时候看到如下图一些注释,部分关键字看不懂,比如什么FDE, unwind , __gxx_perso…

万字长文解析AQS抽象同步器核心原理(深入阅读AQS源码)

AQS抽象同步器核心原理 在争用激烈的场景下使用基于CAS自旋实现的轻量级锁有两个大的问题: CAS恶性空自旋会浪费大量的CPU资源。在SMP架构的CPU上会导致“总线风暴”。 解决CAS恶性空自旋的有效方式之一是以空间换时间,较为常见的方案有两种&#xff…

哔哩哔哩 B站 bilibili 视频倍速设置 视频倍速可自定义

目录 一、复制如下代码 二、在B站视频播放页面进入控制台 三、将复制的代码粘贴到下方输入框,并 回车Enter 即可 四、然后就可以了 一、复制如下代码 (该代码用于设置倍速为3,最后的数值是多少就是多少倍速,可以带小数点&#…