刚体三维运动学【旋转矩阵】【欧拉角】【四元素】

一些概念

  • 轴角法、旋转矩阵、欧拉角、四元数主要用于:向量的旋转、坐标系之间的转换、角位移的计算、方位的平滑插值计算。
  • 坐标系的旋转一共有三种表示方法:旋转矩阵、欧拉角和四元数。
  • 一般指地面系(世界系)和机体系之间的旋转关系。
  • 已知点p在机体系的坐标,求在地面系的坐标。
  • 为什么要进行坐标转换??一个公式的所有物理量要表示在同一个坐标系内。
  • 欧拉角 、四元素和旋转矩阵这些表示方式都是为 表示一种旋转过程。从姿态A转到姿态B,使用旋转T,则T可用这些方式表示。

对比

旋转矩阵,欧拉角,四元数主要用于:向量的旋转、坐标系之间的转换、角位移的计算、方位的平滑插值计算。
不同的方位表示方法适用于不同的情况:

  • 欧拉角最容易使用。当需要为世界中的物体指定方位时,欧拉角能大大简化人机交互,包括直接键盘输入方位、在代码中指定方位(如为渲染设定摄像机)、在调试中测试。
  • 如果需要在坐标系之间转换向量,就选择矩阵形式。另一种方法是用欧拉角作为方位的“主拷贝“,但同时维护一个旋转矩阵,当欧拉角发生改变时,矩阵也要同时进行更新。
  • 当需要大量保存方位数据(如动画)时,就使用欧拉角或者四元数,欧拉角少占用25%内存,但是转换到矩阵慢。如果动画数据需要嵌套坐标系之间的连接,四元数可能是最好的选择。
  • 平滑插值只能用四元数。用其它形式则必须转到四元数,插值完毕再转回去。
    在这里插入图片描述

轴角法

描述两个坐标系之间的旋转关系;
用一次旋转表示两坐标系的旋转关系;

原理概述

在三维空间中。一个xyz坐标系绕某一个定轴旋转某一个角度就得到了新的坐标系x’y’z’。那反过来说,一个xyz坐标系和另一个x’y’‘z’,是否可以找到一个轴和一角,旋转一次就可以使两个坐标系重合呢?答案是肯定的,那就是轴角法!
轴角法用一个以单位矢量定义的旋转轴,再加上一个标量定义的旋转角来表示旋转。通常的表示[x,y,z,theta],前面三个表示轴,最后一个表示角度。表示非常直观,也很紧凑。

优缺点

优点一:同轴的两次旋转可以直接相加来等效为一次旋转。
优点二:定义简单,相对直观。
硬伤一:当旋转角度是0的时候,旋转轴可以是任意的,即当旋转角是0时旋转关系不唯一。
硬伤二:两次连续的旋转怎样合成呢?或者说是两个旋转如何做差呢?答案是没办法,除非借助其他表示方法。

事实上,有人已经证明了,虽然旋转的自由度是三,但是仅仅用三个数表示必然会出问题。
那需要几个呢?最少四个数,即四元素。
四元数和轴角法什么关系呢?是如何解决轴角法两大硬伤的呢??
参考:https://zhuanlan.zhihu.com/p/94584704

四元素

描述两个坐标系之间的旋转关系;
用一次旋转表示两坐标系的旋转关系;
四元数和轴角法的关系?因此可以把四元数认为是轴角法的一个数学工具. 它解决了轴角法两个致命的缺点!
解决了轴角法、旋转矩阵发中,旋转关系不唯一(死锁?万向锁?)的致命问题!

旋转矩阵

描述两个坐标系之间的旋转关系;
经过三次旋转;

用途

  • 两坐标之间的旋转关系(坐标转换);
  • 点p绕某轴旋转了某个角度,求旋转后的坐标(向量旋转);
  • 方位的平滑插值计算;

坐标系的旋转问题

点绕坐轴系旋转后的坐标求解问题

欧拉角

旋转遵循右手定则;
旋转方式不同领域有不同的规范,不同之处在于以下两点:
(1)绕定轴还是动轴;
(2)xyz轴先绕哪个轴再绕哪个轴?
在航天航空领域,欧拉角的定义为:
将坐标系旋转关系分解为3个方向上的转动;
按照Z–>Y–>X的顺序转动;
步骤:
一开始,地面系oxyz与机体系o’x’y’z’重合;
机体系先绕z轴旋转得到偏航角yaw;
再绕旋转后的y’轴旋转得到俯仰角pitch;
最后绕旋转后的x’轴旋转得到横滚角roll;

参考:https://zhuanlan.zhihu.com/p/98320567

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

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

相关文章

Linux —— 进程管理

目录 一,进程介绍 二,进程使用 进程查看 通过系统调用获取进程标识符 通过系统调用创建进程 fork 一,进程介绍 进程是正在执行的程序或命令,每个进程都是一个运行的实体或程序的执行实例,有自己的地址空间&#x…

【Excel】excel多个单元格的内容合并到一个单元格,并使用分隔符

方法一:使用连接符 & 左键单击选中“D2”单元格,在D2单元格中输入公式“A2&B2&C2”,按“Enter”即可实现数据合并。 ------如果想连接的时候,中间加分隔符,可以使用:公式A2&"&#xf…

FPGA学习——PWM实现呼吸流水灯(附源码)

文章目录 一、PWM简介1.1 PWM定义1.2 PWM参数 二、Verilog实现PWM呼吸灯三、实现效果四、总结 一、PWM简介 1.1 PWM定义 PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号…

AI Is the New Power

这个题目纯粹是为了博眼球,因为吴恩达有个题目是AI Is the New Electricity。:)但是我想AI确实是为我们这些企业信息化顾问顾问赋予了新的力量,在我们的职业生涯中开辟了新的可能性。 在几周前的文章中,我们提到“终点…

Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond

LLM的系列文章,针对《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》的翻译。 在实践中驾驭LLM的力量——ChatGPT及其后的研究综述 摘要1 引言2 模型实用指南2.1 BERT风格的语言模型:编码器-解码器或仅编码器2.2 GPT风格…

WEIQ自动登录实现

文章目录 声明目标网址password加密分析代码实现声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 目标网址 aHR0cHM6Ly93d3cud2VpcS5jb20vpassword加密分析 研究一下登录加密逻辑,随便…

js小写金额转大写 自动转换

// 小写转为大写convertCurrency(money) {var cnNums [零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖]var cnIntRadice [, 拾, 佰, 仟]var cnIntUnits [, 万, 亿, 兆]var cnDecUnits [角, 分, 毫, 厘]// var cnInteger 整var cnIntLast 元var maxNum 999999999999999.9999var…

基于springboot+Redis的前后端分离项目(七)-【黑马点评】

🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码:eh11 发布笔记,点赞,点赞排行 达人探店1、达人探店-发布探店笔记2、 达人探店-查看探店笔记3、 达人探店-点赞功…

从零搭建ros间的通信,各功能包、节点之间的通信

新建消息类型 catkin_create_pkg car_interfaces roscpp rospy std_msgs message_generation message_runtime书写自定义的msg: 比如我写一个GlobalPathPlanningInterface.msg: float64 timestamp #时间戳 float32[] startpoint #起点位置&#x…

Eclipse调整系统字体(亲测)

1. 打开eclipse的菜单栏windows->preferences 2. 选择General->Appearance->colors and fonts 3. 选择字号,Apply,ok 建议选择常规18号,这样对眼睛友好一些,不易太大太小 为了大家更好的学习交流,博主新建了v…

MCSM面板一键搭建我的世界服务器 - 外网远程联机【内网穿透工具】

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 前言 MCSManager是一个…

华为发布大模型时代AI存储新品

7月14日,华为发布大模型时代AI存储新品,为基础模型训练、行业模型训练,细分场景模型训练推理提供存储最优解,释放AI新动能。 企业在开发及实施大模型应用过程中,面临四大挑战: 首先,数据准备时…