heading pitch bank

玩转四旋翼无人机(四元数) 四元数介绍 wiki Quaternions and spatial rotation单位四元数,也就是规范化四元数,提供一种方便的数学表示来表达多维空间中的方向和物体的旋转。相对于欧拉角来说,四元数更简单,避免了万向节锁。对比与旋转矩阵,四元数的数值稳定,更加高校。四元数在计算机图形,计算机视觉,机器人,导航和分子动力学,飞行器动力学等广泛应用。四元数在16.oct.1843被发现,wiliiam 阅读详情

天行健 君子当自强而不息

3D中的方位和角位移(2)

 

另一种描述方位的常用方法是欧拉角,这项技术以著名的数学家Leonhard Euler(1707 - 1783)的名字命名,他证明了角位移序列等价于单个角位移。

 

什么是欧拉角

欧拉角的基本思想是将角位移分解为绕三个互相垂直轴的三个旋转组成的序列。这听起来很复杂,其实它是非常直观的(事实上,易于使用正是它的主要优点之一)。之所以有"角位移"的说法正是因为欧拉角能用来描述任意旋转。

欧拉角将方位分解为绕三个互相垂直轴的旋转,那么是哪三个轴?按什么顺序?其实,任意三个轴和任意顺序都可以,但最有意义的是使用笛卡尔坐标系并按一定顺序所组成的旋转序列。最常用的约定是所谓的"heading - pitch - bank"约定。在这个系统中,一个方位被定义为一个heading角,一个pitch角,一个bank角。它的基本思想是让物体开始于"标准"方位 --- 就是物体坐标轴和惯性坐标轴对齐。在标准方位上,让物体作heading、pitch、bank旋转,最后物体到达我们想要描述的方位。

如图10.4所示,此时物体坐标系和惯性坐标系重合,heading为绕y轴的旋转量,向右旋转为正(如果从上面看,旋转正方向就是顺时针方向)。

经过heading旋转后,pitch为绕x轴的旋转量,注意是物体坐标系的x轴,不是原惯性坐标系的x轴。依然遵守左手法则,向下旋转为正,如图10.5所示:

最后,经过了heading和pitch,bank为绕z轴的旋转量。再次提醒,是物体坐标系的z轴,不是原惯性坐标系的z轴。依据左手法则,从原点向+z看,逆时针方向为正。如图10.6所示:

记住,当我们说旋转的顺序是heading-pitch-bank时,是指从惯性坐标系到物体坐标系。如果从物体坐标系变换到惯性坐标系,旋转的顺序就是相反的。"heading-pitch-bank"也叫作"roll-pitch-yaw",roll类似于bank,yaw类似于heading(事实上,yaw并不严格等于heading)。注意,在roll-pitch-yaw系统中,角度的命名顺序与从物体坐标系到惯性坐标系的旋转顺序一致的。

 

关于欧拉角的其他约定

heading-pitch-bank系统不是唯一的欧拉角系统。绕任意三个互相垂直轴的任意旋转都能定义一个方位,所以多种选择导致了欧拉角约定的多样性:

(1)heading-pitch-bank系统有多个名称。当然,不同的名字并不代表不同的约定,这其实并不重要。一组常用的术语是roll-pitch-yaw,其中的roll等价于bank,yaw基本上等价于heading。注意,它的顺序和heading-pitch-bank的顺序相反,这只是语义上的。它定义了向量从物体坐标系变换到惯性坐标系的旋转顺序。(事实上,yaw和heading还是有技术上的差别,yaw是绕物体坐标系y轴的旋转,heading是绕惯性坐标系y轴的旋转。因为这里的旋转是在物体坐标系y轴和惯性坐标系y轴重合时进行的,所以这个区别并不重要。)

(2)任意三个轴都能作为旋转轴,不一定必须是笛卡尔轴,但使用笛卡尔轴最有意义。

(3)决定每个旋转的正方向时不一定必须遵守左手或右手法则。例如,完全可以定义pitch的正方向是向上的,并且这种定义方法非常常见。

(4)也是最重要的,旋转可以以不同的顺序进行。顺序并不重要,任何系统都能用来定义一个方位,但heading-pitch-bank顺序最为实用。heading度量绕竖直轴的旋转,它之所以有意义主要是因为我们所在的环境经常有某种形式的"地面"。一般来讲绕惯性坐标系的x或z轴的旋转没有什么意义。heading-pitch-bank顺序下的另外两个角的意义是:pitch度量水平方向的倾角,bank度量的是绕z轴的旋转量。

 

欧拉角的优点

欧拉角仅使用三个数来表达方位,并且这三个数都是角度。这两个特点使欧拉角具有其他形式所没有的优点:

(1)欧拉角对我们来说很容易使用。它比矩阵和四元数简单得多,这可能是因为欧拉角中的数都是角度,符合人们思考方位的方式。如果我们选择了与所要处理的情况最符合的约定,那么就能直接描述出最重要的角度,例如,用heading-pitch-bank系统就能直接地描述出偏差角度。便于使用是其最大的优点,当需要显示方位或用键盘输入方位时,欧拉角是唯一的选择。

(2)最简洁的表达方式。欧拉角用三个数来表达方位。在3D中,表达方位不能少于三个数,如果要考虑内存的因素,欧拉角是最合适的描述方位的方法。

(3)任意三个数都是合法的。取任意三个数,它们都能构成合法的欧拉角,而且可以把它看成一个对方位的描述。从另一方面说,没有"不合法"的欧拉角。当然数值可能不对,但至少它们是合法的。可矩阵和四元数就不一定是这样了。

 

欧拉角的缺点

用欧拉角表达方位时的缺点主要有:

(1)给定方位的表达方式不唯一。

(2)两个角度间求插值非常困难。

让我们仔细讨论这些问题。第一个问题是对于一个给定方位,存在多个欧拉角可以描述它。这称作别名问题,有时候会引起麻烦。因为这个原因,连一些基本的问题(如"两组欧拉角代表的角位移相同吗?")都很难回答。

第一种,在将一个角度加上360度的倍数时,我们就会遇到形式最简单的别名问题。显然,加上360度并不会改变方位,尽管它的数值改变了。

第二种,更加麻烦的别名问题是由三个角度不互相独立而导致的。例如,pitch135度等价于heading180度,pitch45度,然后bank180度。为了保证任意方位都只有独一无二的表示,必须限制角度的范围。一种常用的技术是将heading和bank限制在+180度到-180度之间,pitch限制在+90度到-90度之间。这就建立了欧拉角的一个"限制范围"。对于任意方位,仅存在一个限制欧拉角能代表这个方位(事实上,还有一个违反唯一性的现象需要处理。)

欧拉角最著名的别名问题是这样的:先heading45度再pitch90度,这与先pitch90度再bank45度是等价的。事实上,一旦选择+(-)90度为pitch角,就被限制在只能绕竖直轴旋转。这种现象,角度为+(-)90度的第二次旋转使得第一次和第三次旋转的旋转轴相同,称作万向锁。为了消除限制欧拉角的这种别名现象,规定万向锁情况下由heading完成绕竖直轴的全部旋转。换句话说,在限制欧拉角中,如果pitch为+(-)90度,则bank为0。

如果是为了描述方位,特别是在使用了限制欧拉角的情况下,别名是不会造成太大的问题的。现在来看两个方位A和B间求插值的问题,也就是说,给定参数t,0 ≤ t ≤ 1,计算临时方位C,当t从0变化到1时,C也平滑地从A变化到B。

这个问题的简单解法是分别对三个角度作标准线性插值,公式如下:

但这里面有很多问题。

第一,如果没有使用限制欧拉角,将得到很大的角度差。例如,方位A的heading为720度,方位B的heading为45度,720 = 360 x 2,也就是0度。所以heading值只相差45度,但简单的插值会在错误的方向上绕将近两周。如图10.7所示:

解决问题的方法是使用限制欧拉角,然而,即使是限制欧拉角也不能完全解决问题。插值的第二个问题是由旋转角度的周期性引起的。设A的heading为-170度,B的heading为170度。这些值在heading的限制范围内,都在-180度到180度之间。这两个值只相差20度,但插值操作又一次发生了错误,旋转是沿 "长弧"绕了340度而不是更短的20度,如图10.8所示:

解决这类问题的方法是将插值的"差"角度折到-180度到180度之间,以找到最短弧。

即使使用了这两个角度限制,欧拉角插值仍然可能碰到万向锁的问题,它在大多数情况下会产生抖动、路径错误等现象,物体会突然飘起来像是"挂"在某个地方。根本问题是插值过程中角速度不是恒定的。

欧拉角插值的前两个问题虽然烦人,但并不是不可克服的。限制欧拉角和将角度差限制在一定范围内提供了简单的解决方法。而对于万向锁,非常不幸,它非常令人讨厌,是一个底层的问题。你可能会考虑重新规划旋转,发明一种不会遭遇这些问题的系统。不幸的是,这不可能。这是一个用3个数表达3D方位的方法与生俱来的问题。我们可以改变问题,但不能消灭它们。任何使用三个数来表达3D方位的系统,若能保证空间的唯一性,就都会遇到这些问题,如万向锁。

欧拉角的旋转、转换 欧拉角是一种常用的描述方位的方法。这项技术是著名数学家Leonhard Euler(1707~1783)的名字命名的,他证明了角位移序列等价于单个角位移。想详细了解的请点击维基百科:http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E8%A7%92#.E5.88.A5.E7.A8.AE.E9.A0.86.E5.BA.8F 1,什么是欧拉角 阅读详情

相关推荐

土圭垚㙓数学课(一)万向锁(Gimbal Lock)

何为万向锁,我们先抛弃掉那些理论,直接举个栗子。 以你自身为对象。 首先,原地旋转为第一个维度,也就是heading。 其次,正翻跟头为第二个维度,也就是pitch。 然后,侧翻跟头为第三个维度,也就是bank。 这就是欧拉角的三个旋转维度,这三个是有顺序的,首先是原地旋转,然后是正翻跟头,最后是侧翻跟头。 当然这些都是没有位移的。 假设你一开始是朝北站立,这就是你:

凯奥斯的注释 3476

3D中的方位和角位移(2)

另一种描述方位的常用方法是欧拉角,这项技术以著名的数学家Leonhard Euler(1707 - 1783)的名字命名,他证明了角位移序列等价于单个角位移。 什么是欧拉角欧拉角的基本思想是将角位移分解为绕三个互相垂直轴的三个旋转组成的序列。这听起来很复杂,其实它是非常直观的(事实上,易于使用正是它的主要优点之一)。之所以有"角位移"的说法正是因为欧拉角能用来描述任意旋转。欧拉角将

gogoda的专栏 2176

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3348

欧拉角

3D图形的旋转,有三种表示方法:矩阵,欧拉角和四元数。 本文将重点介绍欧拉角heading-pitch-bank(又名roll - pitch - yaw)。 1.heading角 绕y轴转动一定的角度。 2.pitch角 绕x轴转动一定的角度。 3.bank角 绕z轴转动一定的角度。 欧拉角表示旋转直观简洁(旋转矩阵表示需要9个...

万里归来少年心 2419

Revit二次开发之双事件:空闲事件与DocumentChanged事件

对以下文章所展示的代码进行了修改,当前展示的代码可直接复制使用。 由于本人初学,下列语言为个人理解,如有错误请指正。   《引用1》中: 使用模态对话框,或者尽量保证事件在ExternalCommand的Execute函数或者ExternalApplication的OnStartup函数里面注册。 如果一定要使用非模态对话框,那么请使用ExternalEvent事件的Raise函数,强迫...

一个Revit二次开发的实习生 6147

【电击防护篇】电击防护技术详解:从人体效应到接地系统全解析

本文系统讲解了电击防护的关键知识,包括电流对人体的影响(如30mA是心室颤动阈值)、人体电阻特性(700Ω-6100Ω)以及电气接触防护措施。重点分析了TT、TN和IT三大接地系统的结构特点与应用场景,强调TN-S系统最安全,IT系统供电连续性最佳。详细介绍了漏电保护器(RCD)的工作原理与选型指南,建议人身防护选用30mA高灵敏度RCD。文章通过对比表总结三大系统的安全性、成本及适用场景,为电气安全设计提供实用参考。

2301_81299416的博客 1743

用欧拉角表示旋转(方位)heading pitch bank 含义,形象的图示

1. 简介 2. heading pitch bank 含义 heading: 物体绕自身的对象坐标系的Y轴,旋转的角度,下图中,对象坐标系与场景坐标系是重合的。 pitch: 物体绕自身的对象坐标系的X轴,旋转的角度,下图中,对象坐标系与场景坐标系未重合的。 bank: 物体绕自身的对象坐标系的Z轴,旋转的角度,下图中,对象坐标系与场景坐标系未重合的。 3....

惊鸿一博 4611

GCJ02坐标系转WGS84坐标系(已实地测试基本无偏差)

坐标系转化,GCJ02坐标系,WGS84坐标系

Xiao_XianYu_的博客 1856

欧拉角与旋转

欧拉角是一种常用的描述方位的方法。这项技术是著名数学家Leonhard Euler(1707~1783)的名字命名的,他证明了角位移序列等价于单个角位移。想详细了解的请点击维基百科:http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E8%A7%92#.E5.88.A5.E7.A8.AE.E9.A0.86.E5.BA.8F 1,什么是欧拉角

MySniper11的专栏 3万+

ruoyi-nbcio基于ruoyi的flowable前端支持自定义表单组件的自动获取方法

ruoyi-nbcio基于ruoyi的flowable前端支持自定义表单组件的自动获取方法

宁波阿成的博客 607

【系统分析师】第2章-基础知识:数学与工程基础(核心总结)

数学与工程基础

数据知道的博客 6813

oeasy Python 102 三向_旋转head_航向轴_pitch_俯仰轴_bank_横滚轴

这次我们研究了物体的旋转有三个轴向英文中文作用heading航向轴转头pitch俯仰轴点头bank横滚歪头 盗梦空间特效可以 再用猴头理解 三轴旋转吗?🤔我们下次再说!👋​​配套视频​​本文来自 oeasy Python 系统教程。想完整、扎实学 Python,搜索 oeasy 即可。

1089

Chrome DevTools MCP 实战完整教程

本教程介绍了Chrome DevTools MCP(Model Context Protocol)在智能Web测试中的应用。该系统通过MCP协议将Chrome开发者工具能力标准化,并与AI结合,提供了统一的测试解决方案。核心功能包括智能自动化、深度调试分析和性能监控优化。教程详细讲解了环境搭建、MCP服务器配置、参数说明及多种工具集(输入自动化、导航、设备仿真、性能分析等)的使用方法。通过mcp-use库的MCPAgent和MCPClient组件,用户可以轻松实现自然语言驱动的浏览器操作和测试流程管理。

blues_C的博客 3805

Unity中欧拉角总结版

先普及一下什么是物体坐标,什么是惯性坐标,世界坐标:《3D数学基础图形与游戏开发》中第三章-->3.24节 物体坐标与惯性坐标的原点相同,物体坐标只需要旋转就可以变为惯性坐标,惯性坐标的坐标轴与世界坐标的坐标轴平行,但原点不同,因此惯性坐标只需要平移就可以变为世界坐标 Unity中的欧拉角有两种方式可以解释:(建议先看一下《3D数学基础图形与游戏开发》书中第十章

小勺挖泰山的博客 2166

华为OD统一考试 - 模拟消息队列(Java & Python& JS & C++ & C )

让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息,

算法大师! 3519

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Euler Angle 以及 Gimble Lock

我们使用Euler角主要是因为他简单:使用3个数字就可以表示一个3D空间的方向。但是他有很多问题:1。一个3D空间的Orientation具有3个自由度只使用3个数字来表示会产生aliasing 的现象。其中一个就是Gimble Lock2。我们必须制定一个规则来定义  - 旋转复合顺序  - 哪个方向为正向旋转角度  - 参考哪一个旋转轴 3。一个Orientatio

brookbake的专栏 1368

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

欧拉角EulerAngle

欧拉角欧拉角使用三个值(xyz)组成的旋转序列表示角位移,这三个值分别为绕三个互相垂直轴(《3D数学基础》说这三个轴互相垂直,但我觉得不太严谨,毕竟还有万向锁一说)的旋转角度。各坐标体系中旋转序列的组合方式可能不同。常用的是heading-pitch-bank约定,按顺序旋转heading角、pitch角、bank角(下文详细说明)。优点:表达方式直观简洁,易于使用,内存占用少。 缺点:表达方式不

业界毒瘤的博客 9532

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

欧拉角表示方位与万向锁问题

用欧拉角表示方位将会比矩阵更加的直观而且易于使用,欧拉角的基本思想是将角位移分解为绕三个互相垂直轴的三个旋转组成的序列. 那么这个三个互相垂直的轴是如何定义的呢?其实任意三个轴和任意顺序都是可以的,但是最常用的就是使用笛卡尔坐标系并且按照一定顺序组成的旋转序列.最常用的约定,就是所谓的"heading-pitch-bank"约定,在这个系统中,一个方位被定义为heading角,一个pitch角,...

qq826364410的专栏 1059

计算机3D数学基础 旋转的三种表示方法 学习笔记

欧拉角:缺点:1、不能在坐标系间围绕一个点进行旋转,不能连接增量旋转,可以进行插值但会遇到万能锁等问题 优点:简单,表达清晰,只用3个数进行表达。矩阵:缺点:1、上手难,记录数字多,不能插值 优点:能够在坐标系间围绕一个点进行旋转。四元数:缺点:1、上手难,不能在坐标系间围绕一个点进行旋转 优点:提供平滑的插值。旋转的三种表示方法:1、矩阵 2、欧拉角 3、四元数。heading对应yaw轴:控制着左右旋转。bank对应roll轴:控制着自身本体旋转。pitch轴:控制着上下旋转。

qqQQqsadfj的博客 730

C4D里HPB 旋转系统概念笔记记录

作者:后期宝宝 链接:https://www.zhihu.com/question/52180545/answer/279214676 HPB或者叫YPR,来源自飞航系统姿态角。 HPB分别是: H(heading):朝向 P(pitch) :仰俯 B(bank) :侧倾 HBP与XYZ都是欧拉角系统,它们俩我觉得是同一个东西,YPR :Yaw(航向) Pitch(仰俯) Roll(滚转) 飞机的航向很好理解,比如9点钟方向,3点钟方向,飞机自己不论以什么姿态飞,东南西北是不会改变的。飞机.

IVANSKI的博客 4507

详解万向锁

对于万向锁这个东西,很久都没理解,找了很多资料,最后终于应该是被我明白,自我感觉很多教程没有突出重点,或者我们没有意识到他的重点在哪。比较经典的两个对于欧拉角的解释一个大概是一个老外做的视频,但是看了之后我反正没搞懂,为什么两个轴会共面,视频地址如下:http://v.youku.com/v_show/id_XNzkyOTIyMTI=.html发现的另外一篇比较易懂的则是:http://blog.......

一个无聊的人做一些有意思的事 2万+

[转]欧拉角与旋转

欧拉角是一种常用的描述方位的方法。这项技术是著名数学家Leonhard Euler(1707~1783)的名字命名的,他证明了角位移序列等价于单个角位移。想详细了解的请点击维基百科:http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E8%A7%92#.E5.88.A5.E7.A8.AE.E9.A0.86.E5.BA.8F 1,什么是欧拉角 ...

weixin_30294295的博客 145

什么是欧拉角/姿态角?

用一句话说,欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。 在这里,坐标系可以是世界坐标系,也可以是物体坐标系,旋转顺序也是任意的,可以是xyz,xzy,yxz,zxy,yzx,zyx中的任何一种,甚至可以是xyx,xyy,xzz,zxz等等等等。。。。。。 所以说欧拉角多种多样。欧拉角可分为两种情况: 1,静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,...

sinolover的专栏 10万+

欧拉角(定义解释,使用,优缺点)

例如,滚转角的物理轴总是纵向的体空间轴,但是通常它是在直立空间中任意取向的。但事实证明,固定轴系统和欧拉角系统实际上是等效的,只要以相反的顺序进行旋转。根据欧拉角的约定,首先进行航向轴的旋转并绕垂直轴(y轴)旋转h,然后围绕对象空间的横向轴(x轴)旋转角度p。这种描述旋转的方案是由**指数映射(Exponential Map)**的相当令人生畏和模糊的名称进行的。①旋转角度可以从e的长度推导出来。虽然在计算里,当我们正在将矢量从直立空间旋转到对象空间时,可以可视化欧拉角,但实际上使用的是固定轴系统。

Gdevelopment的博客 2517

Unity3D中的欧拉角的理解

先贴一个图:   游戏物体的属性视图中调整的角度就是欧拉角啦。。 如果细心,就会发现,单独去调整xyz的时候它并不是按照世界坐标系中的xyz轴来实施旋转的,它表示的是旋转的欧拉角。 什么是欧拉角呢?请看这里:http://www.cnblogs.com/wonderKK/p/3969408.html 通过对欧拉角的认识我们可以知道: unity中的欧拉角有两种方式可以解释:1,当认...

weixin_33670713的博客 219
上一篇: 齐次坐标概念&&透视投影变换推导
下一篇: 关于欧拉角与万向锁的理解
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值