欧拉角速度与角速度的关系推导——欧拉运动方程
欧拉角速度与角速度的关系推导——欧拉运动方程
最近研究欧拉角速度与角速度之间的关系,特别折磨,网上的资料要不就是地理学的进动——章动——自转那一套欧拉角与角速度的关系,要不就是陀螺仪那一套欧拉角与角速度的关系,不具有普遍性,因此在大干三天后,将自己的心得写上来供大家参考。
欧拉角
欧拉角的定义不再赘述,简单来说它是确定定点转动刚体位置的3个一组独立角参量。这个东西坏就坏在它有太多种了。绕轴转动的顺序不同(如x-y-z和x-z-y),绕轴转动的类型不同(指绕惯性坐标系x-y-z或刚体固连坐标系x-y’-z’‘),两次转动绕同一轴如(z-x’-z’‘)等等,都会产生不同的欧拉角。而且不同学科不同场合使用的欧拉角不同,甚至同一欧拉角的俗称也不同,带来了非常大的不便。在机器人学中,常用的是以下两种欧拉角:
RPY角 :指绕惯性坐标系旋转(即绕的轴在整个旋转中是固定不变的),依次绕X轴(roll角),Y轴(pitch角),Z轴(yaw角)进行旋转。
ZYX角:指绕刚体固连坐标系旋转(即绕的轴会随着旋转变化而变化),依次绕z轴(yaw角),旋转后的y’轴(pitch角),两次旋转后的x’‘轴(roll)角进行旋转。
注意,这两种旋转是完全等价的,即若roll,pitch,yaw取相同的值,按这两种过程进行旋转,得到的结果相同。
在一些设计仿真软件(如adams)中,它们的Eular Angel指的是ZYZ角,即绕刚体固连系的z轴,y’轴,z’'轴进行旋转。
角速度
角速度很简单,初中生都知道。但是具体使用起来却容易出错。因为角速度有两种表示方式,一种表示在惯性坐标系,为全局角速度。常用在机器人运动学求解等领域。另一种表示在刚体固连坐标系,为随体角速度。常用在陀螺仪、惯导等领域。这两种角速度在于欧拉角之间进行转换时,思路是不同的。
全局角速度与ZYX欧拉角速率之间的转换
角速度w是表示在惯性坐标系的,可分解为
w=wxi+wyj+wzkw=w_{x}i+w_{y}j+w_{z}kw=wxi+wyj+wzk
同时,有可以将它分解到刚体固连坐标系三次旋转的转轴上:
w=dr⋅e1+dp⋅e2+dy⋅e3w=dr·e_{1}+dp·e_{2}+dy·e_{3}w=dr⋅e1+dp⋅e2+dy⋅e3
dr、dp、dy即为roll、pitch、yaw角速度的值.
(1)首先,绕着固连系z轴(也是惯性系z轴)旋转dy完成了第一次旋转,其值为
dy⋅e3=[100010001]⋅[dr00]dy·e_{3}=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array}\right] \cdot\left[\begin{array}{c} dr \\ 0 \\ 0 \end{array}\right] dy⋅e3=⎣⎡100010001⎦⎤⋅⎣⎡dr00⎦⎤
(2)其次,绕着固连系(这里的固连系并非狭义上的固连系,而是值进行过一次roll旋转的坐标系,注意是roll旋转而不是上文提到的dr旋转)的y’轴进行第二次旋转,旋转量为dp,固连系的y’轴与惯性系的y轴之间存在RyawR_{yaw}Ryaw的变换,即
dp⋅e2=[cos(yaw)−sin(yaw)0sin(yaw)cos(yaw)0001]⋅[0dp0]dp·e_{2}=\left[\begin{array}{ccc} cos(yaw) & -sin(yaw) & 0 \\ sin(yaw) & cos(yaw) & 0 \\ 0 & 0 & 1 \\ \end{array}\right] \cdot\left[\begin{array}{c} 0 \\ dp \\ 0 \end{array}\right] dp⋅e2=⎣⎡cos(yaw)sin(yaw)0−sin(yaw)cos(yaw)0001⎦⎤⋅⎣⎡0dp0⎦⎤
(3) 最后,绕着固连系的x’‘轴轴旋转dr。此时的x’'轴和惯性系的x轴之间存在RyawRpitchR_{yaw}R_{pitch}RyawRpitch的变换,即
dp⋅e2=[cos(yaw)−sin(yaw)0sin(yaw)cos(yaw)0001][cos(pitch)0sin(pitch)10−sin(pitch)0cos(pitch)]⋅[00dy]dp·e_{2}=\left[\begin{array}{ccc} cos(yaw) & -sin(yaw) & 0 \\ sin(yaw) & cos(yaw) & 0 \\ 0 & 0 & 1 \\ \end{array}\right] \left[\begin{array}{ccc} cos(pitch) & 0 & sin(pitch) \\ & 1 & 0 \\ -sin(pitch) & 0 & cos(pitch) \\ \end{array}\right] \cdot\left[\begin{array}{c} 0 \\ 0 \\ dy \end{array}\right] dp⋅e2=⎣⎡cos(yaw)sin(yaw)0−sin(yaw)cos(yaw)0001⎦⎤⎣⎡cos(pitch)−sin(pitch)010sin(pitch)0cos(pitch)⎦⎤⋅⎣⎡00dy⎦⎤
将三者相加,就可得到角速度与欧拉角速度率的关系:
换,即
[wxwywz]=[cos(pitch)∗cos(yaw)−sin(yaw)0cos(pitch)∗sin(yaw)cos(yaw)0−sin(pitch)01]⋅[drdpdy]\left[\begin{array}{c} wx \\ wy \\ wz \end{array}\right]=\left[\begin{array}{ccc} cos(pitch)*cos(yaw) & -sin(yaw) & 0 \\ cos(pitch)*sin(yaw) & cos(yaw) & 0 \\ -sin(pitch) & 0 & 1 \\ \end{array}\right] \cdot\left[\begin{array}{c} dr \\ dp \\ dy \end{array}\right] ⎣⎡wxwywz⎦⎤=⎣⎡cos(pitch)∗cos(yaw)cos(pitch)∗sin(yaw)−sin(pitch)−sin(yaw)cos(yaw)0001⎦⎤⋅⎣⎡drdpdy⎦⎤
若要求得随体角速度和ZYX角速度的关系,方法与上面类似,但要注意顺序是反过来的,即dr是绕随体坐标系中的x轴,无需进行变换,dp需要进行RyawR_{yaw}Ryaw的逆变换等等。结果如下:
w=dr+Rroll′⋅dp+Rroll′Rpitch′⋅dyw=dr+ R_{roll}'·dp+R_{roll}'R_{pitch}'·dyw=dr+Rroll′⋅dp+Rroll′Rpitch′⋅dy
即:
[wxwywz]=[10−sin(pitch)0cos(roll)cos(pitch)∗sin(roll)0−sin(roll)cos(pitch)∗cos(roll)]⋅[drdpdy]\left[\begin{array}{c} wx \\ wy \\ wz \end{array}\right]=\left[\begin{array}{ccc} 1 & 0 & -sin(pitch) \\ 0 & cos(roll) & cos(pitch)*sin(roll) \\ 0 & -sin(roll) & cos(pitch)*cos(roll) \\ \end{array}\right] \cdot\left[\begin{array}{c} dr \\ dp \\ dy \end{array}\right] ⎣⎡wxwywz⎦⎤=⎣⎡1000cos(roll)−sin(roll)−sin(pitch)cos(pitch)∗sin(roll)cos(pitch)∗cos(roll)⎦⎤⋅⎣⎡drdpdy⎦⎤
对于全局RPY角,由于其与ZYX角等效,结果完全相同,推导方法也类似。至于其他的欧拉角种类,推导方法也是相似的,朋友们可以自己尝试一下。
欧拉角速度与角速度的关系推导——欧拉运动方程相关推荐
- 车身坐标系与大地坐标系中速度、加速度转换关系推导与分析
车身坐标系与大地坐标系中速度.加速度转换关系推导与分析 在不同的坐标系中,向量的大小和方向都是不变的,但是可以根据不同的坐标系将向量描述成不同的结果. 图1 车身坐标系与大地坐标系速度转换 已 ...
- 机器人学:物体转动角度变化率与其世界坐标系下角速度的关系推导
本文结构 引言 推导 Matlab代码 输出结果 相关函数 总结 引言 一个物体在空间中的六个自由度中有三个旋转角度,如下图所示所有坐标系遵循右手规则.我们定义该物体的欧拉角[r p y]表示:绕x轴 ...
- 质点系的牛顿-欧拉动力学方程
请大家不要编辑这个页面,unless I ask you to do so 1 经典力学(牛顿力学)的重要概念 经典力学是充分利用了欧式几何的公理化方法来构建我们的知识体系.了解什么是公理化方法.知识 ...
- [计算机图形学]动画与模拟:欧拉方法、刚体与流体(前瞻预习/复习回顾)
一.前言 这是本专栏的倒数第二篇文章了,为什么不是最后一篇?因为我要单独写一篇总结哈哈,不管怎么说,从今年的3.13的MVP变换开始写,写到现在,也是一个很大的工程了,我很高兴能在大二下学期的期中这个 ...
- 科普|关于《失效的欧拉方程》
失效的欧拉方程 这是一篇来自公众号"原理"的文章,我对其作了一些注释.推导与思考,相应的,可能会有一篇或一系列总结类或者拓展类的文章陆续上传. 这篇博客的目的是介绍一些文章中涉及的 ...
- 多线程之基于积分法与欧拉恒等式法的圆周率计算及OMP优化
文章目录 一.问题描述 二.积分法 算法推导 编程实现 OMP优化 三.欧拉恒等式 算法推导 编程实现 前期准备 加法 减法 乘法 除法 算法实现 OMP优化 四.总结 积分法与欧拉恒等式法的对比 O ...
- 《机器人动力学与控制》第九章——动力学 9.3 再看欧拉-拉格朗日运动方程
文章目录 <机器人动力学与控制>第九章--动力学 9.3 再看欧拉-拉格朗日运动方程 9.3.0 回顾欧拉-拉格朗日方程法 9.3.1 方便计算的特殊形式 参考文献 <机器人动力学与 ...
- java欧拉函数_欧拉函数的编程实现
展开全部 利用欧拉函数和它本身不同质因e68a84e8a2ad3231313335323631343130323136353331333361303032数的关系,用筛法计算出某个范围内所有数的欧拉函 ...
- 欧拉角变化率和机体角速度的关系
写在前面:这篇blog中如果有阐述或理解不对的地方请大佬在评论区批评指正,我将及时改正错误,谢谢!!! 首先需要介绍一下建立无人机数学模型时常说欧拉角.我的理解是:机体坐标系转换到惯性坐标系时每个坐标 ...
最新文章
- oracle 创建database link
- C语言 联合体使用技巧之位带操作
- Python常用模块之hashlib模块
- git add 失效
- 直面Java第45期
- [vue] 怎么配置使vue2.0+支持TypeScript写法?
- 论文 | 多传感器数据深度图的融合:最近基于深度学习的方法(上)
- 带你读AI论文丨用于细粒度分类的Transformer结构—TransFG
- Python 全栈开发 -- 监控篇
- cts(7)---android 8.1 vts环境和测试
- 《大话数据结构》读后总结(八)
- E.04.02 Zoom Fatigue: The Differing Impact on Introverts and Extroverts
- linux进程假死的原因_Linux系统死机的原因及解决办法
- 64位 iee754_IEEE754浮点数2008版
- 也谈ibm aix jfs2
- 一篇文章彻底弄懂零拷贝底层原理
- 贪心(greedy)
- echarts map (echarts地图)使用总结
- 求区间[1,n]之间的回文数
- 推荐5款体验较好的团队协作工具