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

news2024/11/15 3:24:06

三维空间刚体运动


欧拉角

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

  • 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讲中提到的人以一种形式。
请添加图片描述

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

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

相关文章

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你5条!

1:文件太多,不方便马上找到需要插入元素(元素放入PS会发现,位置不知道在哪里),点击需要选中或者搭配的元素,ctrlV就可以快速插入目标/图层元素的位置了! 点击当前元素,选中&#xf…

全局异常处理实现

全局异常统一处理 ​ 全局异常处理类通常用于捕获和处理应用程序中发生的所有异常,从而避免在代码的多个地方重复编写异常处理逻辑。 一、全局异常处理方案 ​ 全局异常处理类有多种实现方式,每种方式都有其特定的应用场景和优势。以下是几种常见的全…

Vitis HLS 学习笔记--理解串流Stream(1)

目录 1. 介绍 2. 示例 2.1 代码解析 2.2 串流数据类型 2.3 综合报告 3. 总结 1. 介绍 在Vitis HLS中,hls::stream是一个用于在C/C中进行高级合成的关键数据结构。它类似于C标准库中的std::stream,但是专门设计用于硬件描述语言(如Veri…

vue使用marked和highlight.js实现代码高亮效果

marked是对markdown进行解析的插件,它可以把markdown语法解析成html语法,从而实现页面效果,而highlight.js是对解析出的代码实现高亮效果 效果: 安装:避免踩我走的坑,安装尽量按照这个版本安装 npm install…

【Linux网络编程】IO多路转接之poll

poll 1.poll初始2.poll函数接口3.poll服务器4.poll的优点缺点 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.poll初始 poll也是一种linux…

物联网D4——OLED显示屏

OLED简介 调试方式 SCL和SDA端口 在STM32微控制器中,SCL代表Serial Clock(串行时钟线),它是IC(Inter-Integrated Circuit)总线协议的两个信号线之一。IC总线是一种常用的双向同步串行通信接口,…

el-tooltip 提示框样式修改?

【element-plus el-tooltip官网地址&#xff1a; Tooltip 文字提示 | Element Plus】 <el-tooltippopper-class"Tooltip":content"content"placement"top"effect"light" ><span class"content">{{ content }}&l…

Leecode热题100---3:无重复字符的最长子串

题目&#xff1a;给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 C&#xff1a; 指针法&#xff0c;使用at读取字符串中的值&#xff1b; #include <iostream> #include <string> #include <vector> #include <windows.…

Image Sensor固定模式噪声(FPN)的消除方法

本文介绍Image Sensor固定模式噪声&#xff08;FPN&#xff09;的消除方法。 固定模式噪声&#xff08;FPN&#xff09;英文全称&#xff1a;Fixed Pattern Noise&#xff0c;在Image Sensor调试过程中还是比较常见的&#xff0c;它的特点是噪声位置固定不变&#xff0c;不随采…

echarts树图 改文本显示的地方的样式

树图改文本显示的时候的样式 虽然有点越改越丑 其中有一些失败的尝试 forammter 无法识别html元素 所以对于tooptips有用的html元素定义获取返回在这里写的话是不生效的 rich配置项里面的backgroundColor官方说支持 html元素和canvas元素 已经图片url 没有详细试验 官网地址 h…

vue3+ts(<script setup lang=“ts“>)刷新页面后保持下拉框选中效果

效果图&#xff1a; 代码&#xff1a; <template><div class"app-layout"><div class"app-box"><div class"header"><div class"header-left"></div><div class"title">室外智…

K8s 二进制部署 上篇

一 K8S按装部署方式&#xff1a; ① Minikube Minikube是一个工具&#xff0c;可以在本地快速运行一个单节点微型K8S&#xff0c;仅用于学习、预览K8S的一些特 性使用。 部署地址&#xff1a;https://kubernetes.io/docs/setup/minikube ② Kubeadmin Kubeadmin也是一个工…

简单聊聊分布式和集群

前言 分布式和集群&#xff0c;我们都听的比较多&#xff0c;分布式系统和集群的概念对于刚进入职场的小伙伴可能不是很清楚&#xff0c;这篇文章我们就一起看看两者到底是什么&#xff0c;有什么区别。 什么是分布式系统&#xff1f; 先看下书面解释&#xff1a; 分布式系统…

【easyX】动手轻松掌握easyX 1

01 简单绘图 在这个程序中&#xff0c;我们先初始化绘图窗口。其次&#xff0c;简单绘制两条线。 #include <graphics.h>//绘图库头文件 #include <stdio.h> int main() {initgraph(640, 480);//初始化640✖480绘图屏幕line(200, 240, 440, 240);//画线(200,240)…

英语单词量测试

网址&#xff1a;https://preply.com/en/learn/english/test-your-vocab 测试结果&#xff1a; 细节&#xff1a;英语母语者有20000-35000个单词的词汇量&#xff0c;8岁孩子的词汇量在8000个左右。而不是我们教育系统里说的&#xff0c;6000个单词足够用了。足够用&#xff0…

你写HTML的时候,会注重语义化吗?

其实说到语义化&#xff0c;多年前端开发经验的老手估计也不会太在意&#xff0c;有时候工期太紧&#xff0c;有时候自己疏忽&#xff0c;也就不那么在意了&#xff0c;直接DIVCSS一把梭下去了。 目录 什么是HTML 什么是HTML语义化 HTML语义化所带来的好处 我把CSS样式引入…

如何在 Linux 上检查 CPU 和硬盘温度

为了更好地监测您的Linux系统的硬件健康状况&#xff0c;如CPU与硬盘温度、风扇转速等关键指标&#xff0c;采用lm_sensors与hddtemp这两款强大工具是明智之选。以下是关于这些工具的详尽指南&#xff0c;包括它们的功能介绍、安装步骤以及如何配置lm_sensors&#xff0c;旨在为…

在Ubuntu22.04搭建xfce远程桌面

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

企业为什么进行大数据迁移以及注意事项

在当今数字化时代&#xff0c;数据的迁移成为了企业优化其数据架构、提高数据处理能力、确保业务连续性和数据安全的关键步骤。企业可能出于多种原因&#xff0c;如成本效益、性能提升、系统升级、数据集中管理或云服务集成等&#xff0c;选择将数据从一个存储系统迁移到另一个…