8_姿态的其他描述及一般坐标系映射

1.机器人姿态的其他表示方法

    前面说的用3×3矩阵矩阵描述姿态,9个元素,6个约束条件,实际上只有3个独立元素。即用3个独立元素即可描述机器人姿态。常用的有RPY角,欧拉角和四元数。

1.1  RPY角

RPY角是船舶在海上航行时常用的一种姿态表示方法,其笛卡尔坐标建立方法如下:以船头前进方向为Z轴,以垂直于甲板平面的法线向上方向为X轴,Y轴依据右手法则由X、Z确定。定义绕Z轴的转动为Roll(翻滚),转角为;绕Y轴的转动为Pitch(俯仰),转角为,绕X轴的转动为Yaw(偏航),转角为。可以看出来RPY的名称来源于Roll、Pitch、Yaw三个单词的首字母。

实质是一个绕固定坐标系的多个坐标轴旋转的问题。

有意思的是逆解问题:即从一个旋转矩阵等价推出X-Y-Z固定角坐标系。逆解取决于求解一组超越方程:已知一个旋转矩阵,则有9个方程和3个未知量。

1.2  欧拉角

欧拉角是瑞士数学家Leonhard Euler提出的采用绕运动坐标系的三个坐标轴的转角组合描述刚体姿态的方法,与RPY角类似,也是采用了三个角度变量。该方法广泛用于数学,物理学,航空工程及刚体动力学。

欧拉角有多种类型,绕不小于两个坐标轴的三个转角的组合都可以表示成欧拉角。第一次转动可以绕三个笛卡尔坐标轴中的任何一个,第二次转动可以绕其余两轴之一进行,第三次转动方向只要不同于第二次就可以,所以也存在两种选择.这样欧拉角总共有3×2×2=12种定义方式.

实质是一个绕动坐标系的多个坐标轴旋转的问题。

1.3  四元数

一般来说用欧拉角表示刚体的姿态或运动都是简单有效的,但是在某些特殊的情况下,欧拉角会出现所谓的万向节死锁问题,即欧拉角无法描述刚体的运动。出现万向节死锁问题的原因是采用有序的三个角度的欧拉角方法并不能描述所有的刚体运动。

1.3.1 四元数的定义及特点

1843年爱尔兰数学家William Rowan Hamilton在研究将复数从描述二维空间扩展到高维空间时,创造出了一个超复数:四元数(Quaternion)。四元数能表示四维空间,由一个实数单位1和三个虚数单位i、j、k组成,通常表示形式为:

q = a + bi + cj + dk

式中,a、b、c、d均为实数,i、j、k被称为第一、第二、第三维虚单位,具有下列性质:

i2 = j2 = k2 = -1

ij = -ji = k; jk = -kj = i; ki = -ik = j

为了表达简便,通常将四元数写成一个实数和一个向量组合的形式:

q = (a, v) = (a, b, c, d)

上式中,v是一个向量,v = bi + cj + dk, a、b、c、d为4个有序的实数。四元数可以看作是一种实数和向量表达的一般形式,实数可看作是虚部为0的四元数,而向量可看作为实部为0的四元数,也被称为纯四元数。任意的三维向量都可以转化为纯四元数。

四元数具有下列特点:

①可避免万向节死锁

②几何意义明确,只需4个数就可以表示绕过原点任意向量的旋转

③计算效率高

④比欧拉角多了一个维度,理解困难

2.一般坐标系的映射与齐次矩阵

经常有这种情况:已知矢量相对坐标系{B}的描述,想求出它对另一个坐标系{A}的描述。考虑一般情况,{B}与{A}原点不重合,有一个偏移矢量。{B}的原点矢量用PB表示,{B}相对于{A}用89f67aeb3735b5e1ca7bbf0c058614cc.png描述(B相对于A)。已知PB求PA。

8f16ad96ec57c15def19b398daf1ba47.png

首先将PB变换到一个中间坐标系,该坐标系与{A}姿态相同,原点与{B}重合。 则:

PA 2287fbdd1aa10edeb76a741796383648.pngPB +  886ee09a396df206d1ac8366eb589733.png

该式表示将一个矢量描述从一个坐标系变换到另一个坐标系的一般变换映射。由上式可以得到另一新的概念形式:

d7c8058c67a53e11764c6d6dfa05f24b.png

即用一个矩阵形式的算子表示从一个坐标系到另一个坐标系的映射。

 29fbc0c710a805724a916e5d1d3b5b75.png

换言之:

①在4×1矢量中增加的最后一个分量为“1”

②在4×4矩阵中增加的最后一行分量为“[0 0 0 1]”

我们知道笛卡尔坐标系中位置可以用3×1或4×1矢量表示,取决于它与3×3还是4×4矩阵相乘。上面的4×4矩阵称为齐次矩阵。在其他领域,可被用于投影和比例运算。它可以看做用一个简单的矩阵形式表示了一般的旋转和平移,即一种线性变换,该变换(常用齐次变换)可以定义一个坐标系。

往期系列回顾:

机械臂运动学正解验证

Matlab机械臂运动学示教演示

机械臂运动学D-H参数学习笔记(2)

3_机械臂运动学之刚体的运动

4_机械臂运动学基础向量空间

5_机械臂运动学基础_矩阵

6_机械臂运动学_刚体转动的描述

7机器人位姿的数学描述与坐标变

9_机械臂运动学_正解C++推导验证

10_机械臂运动学_机械臂C++逆解——2023

欢迎关注,了解更多学习笔记!

52eacd899adf7a0a507a24d565ddcb4b.png

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

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

相关文章

基于java+springboot+vue实现的高校物品捐赠管理系统(文末源码+Lw)23-151

第1章 绪论 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广泛运用,以及各种计算机硬件的完善和升级&#xf…

构建你的Python知识体系:一份详尽的Python知识图谱指南

序言:知识地图的重要性 当我们谈论Python知识图谱时,脑海中浮现的是一幅层次分明、结构清晰的知识网络,它将Python语言的各个核心概念、技术栈以及应用场景有机地连接起来,形成一个完整的知识生态系统。掌握这份图谱不仅有助于新…

gitee_pingo集成图床

利用Gitee搭建免费图床(详细教程)_gitee搭建图床-CSDN博客

Elasticsearch基于分区的索引策略

分区索引,或者更常见的说法,基于分区的索引策略,是一种按照特定规则(如时间、地理位置、业务线等)将数据分散到多个不同的索引中的方法。这种做法可以提高Elasticsearch的性能和可管理性,尤其是在处理大量数…

不到1s生成mesh! 高效文生3D框架AToM

论文题目: AToM: Amortized Text-to-Mesh using 2D Diffusion 论文链接: https://arxiv.org/abs/2402.00867 项目主页: AToM: Amortized Text-to-Mesh using 2D Diffusion 随着AIGC的爆火,生成式人工智能在3D领域也实现了非常显著…

NOR FLASH与NAND FLASH的详细区别

Flash 是常见的用于存储数据的半导体器件,它具有容量大、可重复擦写、按“扇区/块”擦除、掉电后数据可继续保存的特性。常见的Flash 主要有NOR Flash 和Nand Flash 两种类型,它们的特性如表 37.1.2.1.1 所示。NOR 和 NAND 是两种数字门电路,…

信钰证券:2024年最新创业板开通条件?

创业板是深圳证券买卖所建立的一个专门为创新型、成长型企业服务的板块,受到了不少投资者的关注。对于2024年最新创业板注册条件,信钰证券下面就为我们详细介绍一下。 2024年最新创业板注册条件: 1、投资者的财物要求:投资者申请…

JavaScript基础(28)_获取元素的其他样式

其他样式操作的属性 clientWidth(只读):获取元素的"可见宽度",包括内容区和内边距(返回的是一个数字,不带px,可直接进行计算)。 clientHeight(只读):获取元素的"可见高度",包括内容区…

大数据应用对企业的价值

目录 一、大数据应用价值 1.1 大数据技术分析 1.2 原有技术场景的优化 1.2.1 数据分析优化 1.2.2 高并发数据处理 1.3 通过大数据构建新需求 1.3.1 智能推荐 1.3.2 广告系统 1.3.3 产品/流程优化 1.3.4 异常检测 1.3.5 智能管理 1.3.6 人工智能和机器学习 二、大数…

mac电脑安装cocoapods出错,以及安装最新版本ruby方法

macbook安装cocoapods时碰到一个报错:大概率是ruby的版本太低导致的 sudo gem install cocoapods ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension. ... Could not create Makefile due to some reason, probably lack of neces…

Mountain Lake - Forest Pack

从头开始构建的50个岩石森林资源集合,充分利用了HDRP。还支持Universal 和Built-In。 支持Unity 2020.3+、高清渲染管线、通用渲染管线、标准渲染管线。导入包后,按照README中的说明进行操作。 Mountain Lake - Rock & Tree Pack是一个由50个准备好的资源组成的集合,从头…

如何运行心理学知识(心流)来指导工作和生活

如何运用心流来指导工作和生活 如何联系我 作者:鲁伟林 邮箱:thinking_fioa163.com或vlinyes163.com GitHub:https://github.com/thinkingfioa/ReadingSummary 版权声明:文章和记录为个人所有,如果转载或个人学习…

提高网站访问速度 nginx 常用配置参数

Nginx是一种高性能的HTTP和反向代理服务器,因其轻量级、高并发处理能力和易于配置而广受欢迎。要提高网站访问速度,可以通过优化Nginx配置来实现。以下是一些可以用来提高网站访问速度的Nginx配置参数,以及它们的详细说明: …

命令行参数、环境变量

1. 命令行参数 大家平时在写主函数时基本是无参的,但其实是有参数的,先介绍前两个参数。 int main(int argc, char* argv[])第二个参数是指针数组,第一个参数是该数组的个数,我们先来写 一段代码来看看指针数组里面是什么。 1 #…

Vue3父子组件传参

一,父子组件传参: 应用场景:父子组件传参 Vue3碎片:defineEmits,defineProps,ref,reactive,onMounted 1.父组件传子组件 a.父组件传参子组件 import { ref} from vue import OnChi…

【力扣】快乐数,哈希集合+快慢指针+数学

快乐数原题地址 方法一:哈希集合 定义函数getNext(n),返回n的所有位的平方和。一直执行ngetNext(n),最终只有2种可能: n停留在1。无限循环且不为1。 证明:情况1是存在的,如力扣的示例一: 接…

Linux free命令教程:轻松愉快的掌握内存管理(附案例详解和注意事项)

Linux free命令介绍 free命令用于获取系统中可用的总随机存取内存量,已使用的内存量和系统中可用的交换内存量。free命令或实用程序还显示内核使用的缓冲内存⁵。 Linux free命令适用的Linux版本 free命令在所有主流的Linux发行版中都是可用的,包括但…

微信自动预约小程序开发指南:从小白到专家

随着互联网的发展,小程序已经成为了一个备受欢迎的在线预约平台。本文将详细介绍如何使用第三方制作平台,如乔拓云网,来搭建一个从入门到精通的预约小程序。 首先,我们需要登录乔拓云网,并选择一个适合自己的小程序模板…

汽车控制臂的拓扑优化

前言 本示例使用优化模块通过减小控制臂的体积同时最大化其刚度来优化汽车控制臂的设计。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 本例说明了汽车控制臂的拓扑优化,在拓扑优化过程中,修改设计区域中单元的材料特性(有效地从…

双非本科准备秋招(20.1)—— 并发编程之生产者消费者

生产者消费者 与保护性暂停中的不同,不需要产生结果和消费结果的线程一一对应。 生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据 JDK 中各种阻塞队列,采用的就是这种模式 代码实现: 首先…