【姿态解算初体验】(二)欧拉角、旋转矩阵、轴角与四元数四种旋转方式的区别及使用

引言

  emmm之前这篇文章 《终于理解,飞行姿态控制中,为什么要用旋转矩阵的方式不停地转换来获取姿态误差 》如今看来写并不清晰而且可能有错误。温故而知新,经过最近复习,现总结其旋转方式,并结合实际描述理论过程。
PS:
  文中地理坐标系指NED,绕机体x轴旋转角度定为r(roll),绕y轴旋转角度定为p(pitch),绕z轴旋转角度定为y(yaw)

欧拉角

定义为:绕坐标轴的 旋转角
当用以表示姿态时,一般定义为:从初始坐标系按照某一顺序旋转一次,所旋转的角度。

特别注意:
1、旋转角不是与水平面或固定坐标系(地理坐标系)的夹角;
2、旋转角所绕的旋转轴是被旋转坐标系的轴,而不是固定坐标系(地理坐标系)的轴;
3、是有严格顺序的,一般都会先绕z轴旋转,其次再是yx(具体原因可了解万向锁);

特点:
1、直观,是一种符合人们直觉的姿态表示方法,因此无人机期望的姿态输入输出往往用姿态角表示;
2、

要解决的问题:
1、当机体产生角速度时,对应姿态角的变化如何?
这里就直接参考全权教授的书吧
在这里插入图片描述

2、当已知机体旋转的角度时,对应姿态角的变化如何?
  例如:在第一次旋转后(初始位置一般就是地理坐标系,记为姿态0),根据ZYX的旋转顺序及旋转角度(r1,p1,y1),我们知道机体的姿态角度就可以直接表示为(r1,p1,y1),记为姿态1。随后机体在姿态0处,接着按zyx的旋转顺序旋转(r2,p2,y2),姿态2记为第二次旋转后的姿态.那么问,现在表示姿态2的话,其r,p,y值是多少呢?

  答:不能直接相加。因为理论上根据欧拉角表示姿态角的定义为,按某一顺序旋转一次所得的角度,这里共旋转了两次。实际上,姿态0到姿态2经过一次旋转的角度也并不等于0到1加上1到2的角度。那么姿态2的姿态角的值应该怎么得到呢?(不依赖旋转矩阵等工具的话,我也不知道怎么求)

旋转矩阵

其实就是欧拉角旋转的矩阵形式,描述的旋转过程与欧拉角相同,都是按照某一顺序进行旋转的,一般会用T、C或R表示。
具体公式推导网上已经有很多了,就不多阐述了。一般过程如下:
图片来自全权教授的书籍
图片来自于全权教授的书籍
总之,他描述的是,将一个坐标系的向量旋转到另一个坐标系进行表示,注意向量的矢量方向和模值都不会被改变。

那么回到欧拉角表述的第二个问题当中,有了旋转矩阵这个工具后,姿态2的姿态角应该怎么得到呢?
:从0到1的姿态,我们根据角度值(r1,p1,y1)可以计算得到0→1的旋转矩阵C01。根据1→2的旋转角度(r2,p2,y2)可以计算得到1→2的旋转矩阵C12。那么0→2的旋转矩阵C02 = C12 × C01。这样根据C02矩阵的数值反解出(r,p,y)就可以得到姿态角了。

问:为什么C02 = C12 × C01?
:设有一向量r,在姿态0坐标系下的表示为r0,在姿态1坐标系下的表示为r1,在姿态2坐标系下的表示为r2,根据旋转矩阵的定义有:
r1 = C01 × r0
r2 = C12 × r1
那么r2 = C12 × C01 × r0
因r2 = C02 × r0
所以C02 = C12 × C01

轴角与四元数

其实用法和旋转矩阵类似,只不过旋转方式不同。《四元数姿态总结》这篇是之前的用法总结,这里再阐述一下它的通俗理解。
四元数及轴角的旋转方式都是,坐标系绕着空间中的一个向量旋转一定角度,仅需要一次旋转。

问:这个空间向量以及旋转角度是怎么获取到的呢?
假设:还是以上面的假设为例,机体从姿态1→2,转过的姿态角为(r2,p2,y2),那么这个向量方向在机体上的表示就是(r2,p2,y2),旋转角就是这个转轴向量的模值。

:有了转轴和转角就可以转换成四元数了,与旋转矩阵类似(只不过旋转的是坐标系,旋转矩阵的物理意义还是旋转的向量),这个四元数的意义即为将机体姿态1旋转到姿态2,记为q12。同理可以得到q01.那么,现在只需要q12*q01得到的新四元数就是q02了,然后根据q02的值,就可反解出欧拉角了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yoldfish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值