视觉SLAM14精讲——三维空间刚体运动1.2

三维空间刚体运动


欧拉角

欧拉角可以说是零理解成本的表示形式,由于有万向锁的问题被绝大部分项目所抛弃。欧拉角的每个轴旋转都有固定好的名称,这些名称十分直观:

  • Z轴旋转,相当于左右旋转,叫航角,或偏航角。
  • Y轴旋转,相当于俯仰旋转,叫仰角,或俯仰角。
  • X轴旋转,相当于一个人躺在地上翻滚,叫滚角,或滚转角。

然而在某些情况下,我们获得到欧拉角,还是需要将其转换为旋转矩阵。14讲中提到了Rodrigues公式,在opencv里有直接实现好的接口。尽量使用这些现成的接口,可以避免很多不必要的麻烦:

R = cv2.Rodrigues(rpy)
rpy = cv2.Rodrigues(R)
cv::Rodrigues(rpy, R);
cv::Rodrigues(R, rpy);

使用欧拉角还需要注意的一个问题是弧度单位制和角度单位制的区别。如果发现单位制需要转换,就需要/180*Pi或者*Pi/180来进行转换。

四元数

四元数在所以到的旋转表示中是最麻烦的,它既不直观,计算也不简便,但是在数学上有着十分优美的表达形式。由于四元数仅使用四个分量就可以无奇异的表示旋转,因此这种表示方式会在传输过程中使用到。一个典型的例子就是ROS消息geometry_msgs/Pose:

orientation.x	
orientation.y	
orientation.z	
orientation.w	
position.x	
position.y	
position.z	

采用四元数就可以实现7个数传输一次位姿,用Rt矩阵一共是12个数,T占用16个。但其实这样的数据传输量对总体的系统来说压力并不高,相比图像实时传输的数据量来说是九牛一毛。因此一般不会以传输压力作为选择四元数作为旋转表达的主要原因。在一些工作中,比如VINS,和一些ceres进行优化的标定项目,会主要采用四元数进行最小二乘法的计算。

为了直观的让读者了解四元数,我们模仿前一章的做法,再次把轴旋转的四元数形式列在这里,方便大家理解:

RPY Quaternion
0, 0, 0 [ 0, 0, 0, 1 ]
90,0,0 [ 2 2 \frac{\sqrt{2}}{2} 22 , 0, 0, 2 2 \frac{\sqrt{2}}{2} 22 ]
0,90,0 [ 0, 2 2 \frac{\sqrt{2}}{2} 22 , 0, 2 2 \frac{\sqrt{2}}{2} 22 ]
0,0,90 [ 0, 0, 2 2 \frac{\sqrt{2}}{2} 22 , 2 2 \frac{\sqrt{2}}{2} 22 ]

旋转x轴90度,如果进行手算的话,可能会得到类似[1 0 0 1]的结果,这个结果的膜长是大于1的,需要进行规范化之后才会变成标准表达形式。因此最终是[ 2 2 \frac{\sqrt{2}}{2} 22 , 0, 0, 2 2 \frac{\sqrt{2}}{2} 22 ]。

小工具

最后推荐一个网站,3D Rotation Converter作为一个在线旋转形式转化的小工具,可以帮助我们将任一旋转转化成14讲中提到的人以一种形式。
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java基础】集合(2) —— List

List 存储的对象是有序的&#xff08;集合中存储对象的顺序和使用add方法添加对象的顺序一致&#xff09;&#xff0c;存储的对象是可重复的。 List的特有的功能: 都是可以操作索引的功能。 增: void add(int index, E element )boolean addAll(int index, Collection<? …

素数筛详解c++

一、埃式筛法 代码 二、线性筛法&#xff08;欧拉筛法&#xff09; 主要的思想就是一个质数的倍数(倍数为1除外)肯定是合数&#xff0c;那么我们利用这个质数算出合数&#xff0c;然后划掉这个合数&#xff0c;下次就可以不用判断它是不是质数&#xff0c;节省了大量的时间。 …

怎么截图公式识别?方法简单介绍

怎么截图公式识别&#xff1f;随着科技的不断发展&#xff0c;人们对于高效、便捷的工作方式的需求日益增加。在学术、教育以及科技研发等领域&#xff0c;数学公式是不可或缺的一部分。然而&#xff0c;手动输入公式往往费时费力&#xff0c;且容易出错。因此&#xff0c;截图…

搭建Kubernetes v1.20二进制集群——单Master和Node组件

前言 本文将介绍如何使用二进制文件手动搭建 Kubernetes v1.20 集群。通过这种方法&#xff0c;我们可以更好地理解 Kubernetes 的内部工作原理&#xff0c;并具备更大的灵活性和控制权。下面将逐步构建 Kubernetes 集群&#xff0c;并进一步了解其各个组件之间的交互和配置。…

数据结构(十五)----排序算法(2)

目录 一.选择排序 1.简单选择排序 2.堆排序 •建立大根堆 •基于大根堆进行排序 堆排序算法效率&#xff1a; 堆排序算法稳定性&#xff1a; 3.堆的插入和删除 •在堆中插入新元素 •在堆中删除元素 二.归并排序 归并排序算法效率&#xff1a; 归并排序算法的稳定…

绿色消费新趋势:共享购模式的积分革命

在当今绿色消费风潮中&#xff0c;一种名为共享购的新模式正悄然兴起&#xff0c;它通过创新的绿色积分机制&#xff0c;不仅鼓励了消费者的绿色消费行为&#xff0c;还为消费者和商家带来了更多的实惠与额外收益。 传统积分机制的局限 在传统的消费积分模式中&#xff0c;消费…

计算机组成结构—寻址方法

目录 一、指令寻址 二、数据寻址 1.立即寻址 2.直接寻址 3.间接寻址 4.隐含寻址 5.寄存器寻址 6.寄存器间接寻址 7.基址寻址 8.变址寻址 9.相对寻址 10. 堆栈寻址 寻址方式是寻找指令或操作数有效地址的方式&#xff0c;也就是指确定本条指令的数据地址&#xff0c;…

IP-GUARD如何制作授权软件

1、进入控制台 -> 找到文档安全管理 -> 点击授权软件管理 -> 导出授权软件(名称自定义) 2、打开这个蓝宝石工具,并将导出的文件进行打开 选择你要操作的软件进行编辑,然后一直下一步 3、选择要操作的软件进行编辑

MIRO时,修改页签“采购订单参考”的数量时,金额不自动计算

MIRO 发票校验时&#xff0c;进入到如下界面&#xff0c;系统参考采购订单自动带出已经收货的金额和数量。 此时如果想要修改数量时&#xff0c;有些用户账号下&#xff0c;金额不自动计算&#xff0c;但是有些用户账号下&#xff0c;数量更改时&#xff0c;系统自动计算和建议…

在Ubuntu22.04搭建xfce远程桌面

由于Ubuntu22.04云服务器&#xff08;带GPU&#xff09;只开放部分端口&#xff0c;某些服务&#xff08;如nacos&#xff09;有Web前端需要访问&#xff0c;但是相应的端口并没有开放&#xff0c;只有SSH端口可以使用。于是&#xff0c;就在Ubuntu22.04上安装xfce桌面环境&…

静态IP地址:网络通信的稳定之锚

在数字化时代&#xff0c;网络通信是企业运营和个人生活不可或缺的一部分。而在这个过程中&#xff0c;IP地址扮演着至关重要的角色。静态IP地址&#xff0c;作为一种特殊的网络配置&#xff0c;为网络通信提供了稳定性和可靠性。本文将从五个方面深入探讨静态IP地址的重要性、…

asp.net 齿轮加工车间生产管理系统-计算机毕业设计源码56014

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;在现实运用中&#xff0c;为方便用户能够可以随时进行在线…

中途离开项羽投奔刘邦的那些名将谋臣,最后的结果怎么样?

刘邦夺取天下后&#xff0c;说&#xff1a;我自己没什么能力&#xff0c;之所以击败项羽&#xff0c;都是大家的功劳。带兵横扫强敌&#xff0c;我不如韩信&#xff1b;筹措粮草物资&#xff0c;源远不断地给前线供应粮饷&#xff0c;我不如萧何&#xff1b;坐在帐中&#xff0…

UDP多对多组播通信

广播和多播仅应用于UDP。TCP是一个面向连接的协议&#xff0c;TCP一定是点对点的&#xff0c;一点是两个主机来建立连接的&#xff0c;TCP肯定是单播。只有UDP才会使用广播和组播。 如下示例实现一个UDP多对多的组播通信&#xff0c;进程中有收、发两个线程&#xff0c;分别表…

React渲染流程

在 React 渲染分为两个阶段&#xff0c;Render 和 Commit&#xff0c;Render 是修改 React 组件的状态&#xff0c;把需要更新的组件标记为待更新&#xff0c;在 Commit 阶段将待更新的组件进行渲染并最终更新到浏览器的 Dom 树中。 Render 阶段是可以并执行操作的&#xff0c…

【MySQL】表的增删改查 | CRUD | 新增 | 查询 | 修改 | 删除 | 数据库约束

文章目录 表的增删改查一、CRUD1.新增&#xff08;Create&#xff09;1.插入多行2.指定列多行插入3.插入datetime类型4.插入当前时间5.插入查询的结果 2.查询&#xff08;Retrieve&#xff09;1.全列查询 *2.指定列查询3.查询字段为表达式4.指定别名 as5.去重 distinct6.排序 o…

Excel提取某一列的唯一值

点击【筛选】&#xff08;【高级筛选】&#xff09;&#xff0c;参数里&#xff1a; 列表区域&#xff1a;为需要选择唯一值的那一列复制到&#xff1a;生成唯一值的目标区域 据说新版本的excel有了unique()函数&#xff0c;可以很快捷的选择某一列的唯一值&#xff0c;但是博…

大模型时代下的先行者:景联文科技引领数据标注新时代

在大模型时代&#xff0c;数据标注不再是简单的分类标注&#xff0c;而是一项融合了技术革新、专业技能、法律合规和精细化管理的综合性任务&#xff0c;对推动AI技术的发展和落地应用具有重要意义。 景联文科技作为AI基础行业的数据供应商&#xff0c;可协助人工智能企业解决整…

记录一下自己的宏碁暗影骑士电脑的属性

TOC 前言 没有前言。 参考博文 怎么查自己电脑服务器信息吗,如何查看自己电脑的服务器 一、cmd 看到服务器型号 wmic csproduct get name查询CPU个数 按照博主的方法&#xff0c;我出现了报错。 在 Windows 上&#xff0c;您可以通过 PowerShell 来执行类似的操作。您可以…