欧拉角速率与机体角速度转换详细推导

这篇具有很好参考价值的文章主要介绍了欧拉角速率与机体角速度转换详细推导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

根据旋转矩阵及绕各个轴旋转的角速度,推导机体角速度

旋转矩阵

旋转矩阵还不清楚的同学去看我的另一篇博客,这里咱们废话不多说,旋转矩阵已知

欧拉角

大家一定要记住欧拉角是有顺序的!!!这是咱们推导出机体角速度的关键
这里按照比较常用的顺序,先绕 Z Z Z轴旋转 q 6 q_6 q6度,再绕 Y Y Y轴旋转 q 5 q_5 q5度,最后绕 X X X轴旋转 q 4 q_4 q4

推导机体角速度

机体旋转角速率为:
ω b = [ ω x b , ω y b , ω z b ] T \omega _b=[\omega _{x_b},\omega_{y_b},\omega_{z_b}]^T ωb=[ωxb,ωyb,ωzb]T
列向量中的三个元素分别是角速度绕 X X X轴旋转的分量、绕 Y Y Y轴旋转的分量、绕 Z Z Z轴旋转的分量

重点来了:
如果此时物体仅仅绕Z轴发生了一次旋转那么毫无疑问,角速率表达式如下:
[ ω x b ω y b ω z b ] = [ 0 0 q 6 ˙ ] \begin{bmatrix} \omega_{x_b} \\ \omega_{y_b} \\ \omega_{z_b} \\ \end{bmatrix}= \begin{bmatrix} 0 \\ 0 \\ \dot{q_6} \\ \end{bmatrix} ωxbωybωzb=00q6˙
但是旋转不同于平动,旋转一定有顺序,所以当机体先绕 Z Z Z轴旋转,后绕 Y Y Y轴旋转时,此时绕 Z Z Z轴旋转的角度也发生了改变,改变多少可以通过旋转矩阵获得,所以此时,角速率的表达式如下:
[ ω x b ω y b ω z b ] = R 5 ⋅ [ 0 0 q 6 ˙ ] + [ 0 q 5 ˙ 0 ] \begin{bmatrix} \omega_{x_b} \\ \omega_{y_b} \\ \omega_{z_b} \\ \end{bmatrix}=R_5\cdot \begin{bmatrix} 0 \\ 0 \\ \dot{q_6} \\ \end{bmatrix}+ \begin{bmatrix} 0 \\ \dot{q_5} \\ 0 \\ \end{bmatrix} ωxbωybωzb=R500q6˙+0q5˙0
其中 R 5 R_5 R5是机体绕 Y Y Y轴旋转 q 5 q_5 q5度的旋转矩阵,表达式如下:
R 5 = [ cos ⁡ q 5 0 − sin ⁡ q 5 0 1 0 sin ⁡ q 5 0 cos ⁡ q 5 ] R_5= \begin{bmatrix} \cos q_5 & 0 & -\sin q_5 \\ 0 & 1 & 0 \\ \sin q_5 & 0 & \cos q_5\\ \end{bmatrix} R5=cosq50sinq5010sinq50cosq5
同理,在此基础上再进行最后一步旋转,即绕 X X X轴旋转 q 4 q_4 q4度,机体角速率的表达式如下:
[ ω x b ω y b ω z b ] = R 4 ⋅ R 5 ⋅ [ 0 0 q 6 ˙ ] + R 4 ⋅ [ 0 q 5 ˙ 0 ] + [ q 4 ˙ 0 0 ] \begin{bmatrix} \omega_{x_b} \\ \omega_{y_b} \\ \omega_{z_b} \\ \end{bmatrix}=R_4\cdot R_5\cdot \begin{bmatrix} 0 \\ 0 \\ \dot{q_6} \\ \end{bmatrix}+R_4\cdot \begin{bmatrix} 0 \\ \dot{q_5} \\ 0 \\ \end{bmatrix}+ \begin{bmatrix} \dot{q_4} \\ 0 \\ 0 \\ \end{bmatrix} ωxbωybωzb=R4R500q6˙+R40q5˙0+q4˙00
其中 R 4 R_4 R4是机体绕 X X X轴旋转 q 4 q_4 q4度的旋转矩阵,表达式如下:
R 4 = [ 1 0 0 0 cos ⁡ q 4 sin ⁡ q 4 0 − sin ⁡ q 4 cos ⁡ q 4 ] R_4= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos q_4 & \sin q_4 \\ 0 & -\sin q_4 & \cos q_4\\ \end{bmatrix} R4=1000cosq4sinq40sinq4cosq4
由机体角速率一般表达式继续推导
R 4 ⋅ R 5 ⋅ [ 0 0 q 6 ˙ ] = [ 0 0 − sin ⁡ q 5 0 0 sin ⁡ q 4 ⋅ cos ⁡ q 5 0 0 cos ⁡ q 4 ⋅ cos ⁡ q 5 ] ⋅ [ 0 0 q 6 ˙ ] = A ⋅ B R_4\cdot R_5\cdot \begin{bmatrix} 0 \\ 0 \\ \dot{q_6} \\ \end{bmatrix}= \begin{bmatrix} 0 & 0 & -\sin q_5 \\ 0 & 0 & \sin q_4\cdot \cos q_5 \\ 0 & 0 & \cos q_4\cdot \cos q_5\\ \end{bmatrix}\cdot \begin{bmatrix} 0 \\ 0 \\ \dot{q_6}\\ \end{bmatrix}= A\cdot B R4R500q6˙=000000sinq5sinq4cosq5cosq4cosq500q6˙=AB
R 4 ⋅ [ 0 q 5 ˙ 0 ] = [ 0 0 0 0 cos ⁡ q 4 0 0 − sin ⁡ q 4 0 ] ⋅ [ 0 q 5 ˙ 0 ] = M ⋅ N R_4\cdot \begin{bmatrix} 0 \\ \dot{q_5} \\ 0\\ \end{bmatrix}= \begin{bmatrix} 0 & 0 & 0 \\ 0 & \cos q_4 & 0 \\ 0 & -\sin q_4 & 0 \\ \end{bmatrix}\cdot \begin{bmatrix} 0 \\ \dot{q_5} \\ 0\\ \end{bmatrix}=M\cdot N R40q5˙0=0000cosq4sinq40000q5˙0=MN
[ q 4 ˙ 0 0 ] = [ 1 0 0 0 0 0 0 0 0 ] ⋅ [ q 4 ˙ 0 0 ] = P ⋅ Q \begin{bmatrix} \dot{q_4} \\ 0 \\ 0\\ \end{bmatrix}= \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix}\cdot \begin{bmatrix} \dot{q_4} \\ 0 \\ 0\\ \end{bmatrix}=P\cdot Q q4˙00=100000000q4˙00=PQ
由上述矩阵形态可以发现 ( A + M + P ) ⋅ ( B + N + Q ) = A ⋅ B + M ⋅ N + P ⋅ Q (A+M+P)\cdot (B+N+Q)=A\cdot B+M\cdot N+P\cdot Q (A+M+P)(B+N+Q)=AB+MN+PQ其他项均等于 0 0 0
所以机体角速率的最终表达式如下:
[ ω x b ω y b ω z b ] = ( A ⋅ B + M ⋅ N + P ⋅ Q ) = ( A + M + P ) ⋅ ( B + N + Q ) \begin{bmatrix} \omega_{x_b} \\ \omega_{y_b} \\ \omega_{z_b} \\ \end{bmatrix}=(A\cdot B+M\cdot N+P\cdot Q)=(A+M+P)\cdot (B+N+Q) ωxbωybωzb=(AB+MN+PQ)=(A+M+P)(B+N+Q)
[ ω x b ω y b ω z b ] = [ 1 0 − sin ⁡ q 5 0 cos ⁡ q 4 sin ⁡ q 4 ⋅ cos ⁡ q 5 0 − sin ⁡ q 4 cos ⁡ q 4 ⋅ cos ⁡ q 5 ] ⋅ [ q 4 ˙ q 5 ˙ q 6 ˙ ] \begin{bmatrix} \omega_{x_b} \\ \omega_{y_b} \\ \omega_{z_b} \\ \end{bmatrix}= \begin{bmatrix} 1 & 0 & -\sin q_5 \\ 0 & \cos q_4 & \sin q_4\cdot\cos q_5 \\ 0 & -\sin q_4 & \cos q_4\cdot\cos q_5 \\ \end{bmatrix}\cdot \begin{bmatrix} \dot{q_4} \\ \dot{q_5} \\ \dot{q_6} \\ \end{bmatrix} ωxbωybωzb=1000cosq4sinq4sinq5sinq4cosq5cosq4cosq5q4˙q5˙q6˙文章来源地址https://www.toymoban.com/news/detail-403346.html

到了这里,关于欧拉角速率与机体角速度转换详细推导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-4(1) 刚体的速度与角速度

    本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有帮助请引用 本文参考: . 食用方法 求解逻辑:速度与

    2024年02月02日
    浏览(96)
  • 史上最简SLAM零基础解读(8.1) - 旋转矩阵、旋转向量、欧拉角推导与相互转换

    本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始   文末正下方中心提供了本人 联系方式, 点击本人照片即可显示 W X → 官方认证 {color{blue}{文末正下方中心}提供了本人 color{red} 联系方式,color{blue}点击本人照片即可显示WX→官方认证} 文末正下方中心 提供了本人

    2024年02月13日
    浏览(38)
  • 浅谈牛顿-欧拉方程及其推导

    最近阅读课题论文时看到采用牛顿-欧拉方程来建立动力学方程,尝试系统学习一下这一知识,发现网上资源推导说明不清晰不利于新手入门理解,此文用于记录推导过程以加深理解。 若文中出现错误或误导内容,欢迎指正! 描述刚体的力学变化和运动过程有很多种方法,例

    2024年02月11日
    浏览(42)
  • 坐标系变换推导(欧拉角、方向余弦矩阵、四元数)+代码解析

    描述两个坐标系之间的变换关系主要有几个方法 1、欧拉角法(存在奇异性和万向锁而且三个轴旋转的顺序不好定) 2、方向余弦矩阵法(翻译为Directional cosine matrix,简称DCM,也称为旋转矩阵,看了很多博客写的是C11-C33的那个矩阵,没明白为什么也称之为一个方法,有知道的指导

    2024年02月08日
    浏览(95)
  • 前端性能优化——包体积压缩插件,打包速度提升插件,提升浏览器响应的速率模式

    –其他的优化可以具体在网上搜索 压缩项目打包后的体积大小、提升打包速度,是前端性能优化中非常重要的环节,结合工作中的实践总结,梳理出一些 常规且有效 的性能优化建议 ue 项目可以通过添加–report命令: \\\"build\\\": \\\"vue-cli-service build --report\\\" ,打包后 dist 目录会生成

    2024年02月12日
    浏览(56)
  • 欧拉角和旋转矩阵之间的转换

    在3D 空间中,表示物体的旋转可以由三个欧拉角来表示:  pitch围绕X轴旋转,叫俯仰角。  yaw围绕Y轴旋转,叫偏航角。  roll围绕Z轴旋转,叫翻滚角。  这三个角的顺序对旋转结果有影响。     此处得到结论: 自旋转的“先转的放前面”  将旋转矩阵表示如下:    则可以

    2024年02月13日
    浏览(38)
  • eigen旋转矩阵与欧拉角的转换

    2024年02月11日
    浏览(48)
  • 四元数,欧拉角和旋转矩阵相互转换

    打印输出: 在线转换网站:1、三维在线旋转变换网站 https://www.andre-gaschler.com/rotationconverter/ 2、 Rotation Conversion Tool https://danceswithcode.net/engineeringnotes/quaternions/conversion_tool.html 3、角度、弧度在线转换工具 https://www.osgeo.cn/app/sc210 参考链接:https://www.jianshu.com/p/4fda4c34b829 https://

    2024年02月14日
    浏览(43)
  • 将欧拉角转换为旋转矩阵(手眼标定)python版本

    1、欧拉角版 2、四元数版 3、旋转矩阵版本 4、齐次矩阵

    2024年02月16日
    浏览(43)
  • 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换

    由于在平时总是或多或少的遇到平移旋转的问题,每次都是现查资料,然后查了忘,忘了继续查,这次弄明白之后干脆写一篇文章,给人方便同时于己方便,后续如有扩充或变动也方便添加。 假设有两个向量 a 1 = ( x 1 , y 1 , z 1 ) a_1 = (x_1, y_1, z_1) a 1 ​ = ( x 1 ​ , y 1 ​ , z 1 ​

    2024年02月03日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包