对于开始接触惯性导航的人来说,姿态矩阵是必经之路。我在开始学习惯导的过程中,只是用姿态矩阵,但没具体去研究其对应欧拉角旋转方式,最近把自己绕晕了,所以推导完后记录一下自己对欧拉角与旋转矩阵理解,重点针对自己以往忽视的地方,防止再次遗忘,所以全文可能不会很通顺。在讲姿态矩阵之前,需要先了解一下姿态的基础知识。常用的姿态表示有三种形式:欧拉角、旋转矩阵、四元数,下图来自百度百科,分别表示了飞机的横滚角、俯仰角与偏航角,这就是欧拉角所表示的姿态,将三个欧拉角按照一定的顺序旋转,就可以将一个坐标系下的坐标变换到对应的另一个坐标系下。但是,欧拉角存在万向节死锁问题(详见欧拉角万向节死锁 - 知乎),所以,很多时候会用三维旋转矩阵或者四元数来代替欧拉角进行计算,这也意味着它们之间是可以相互转换的。

欧拉角是由Leonhard Euler 提出的概念,用来描述刚体/移动坐标系在一个固定坐标系中的姿态.简单的说是使用XYZ三个轴的旋转分量,来描述一个6自由度的旋转。

欧拉角一般具有两大类表示方式,每类按照旋转次序的不同分为6小类:

Proper Euler angles (z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y)

Tait–Bryan angles (x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z).

每个大类都使用了3个变量描述三次旋转过程中的旋转角度,差别在于Proper Euler angles只涉及两个转轴,而Tait–Bryan angles涉及三个转轴。一般在导航中用的的是Tait–Bryan angles,这种旋转方式对应的三个轴的转角也就是我们上文所提及的姿态角:横滚角、俯仰角与偏航角。

除了旋转顺序,欧拉角的旋转还需要注意的是旋转方式,即内旋和外旋。如下图所示,两行都是按照Z-Y顺序旋转,不同的是上面一行的第二次旋转是按照旋转之后的Y轴旋转,而下面一行是按照绕Z轴旋转之前的Y轴进行的旋转,所以,上面一行的旋转被称为内旋(按照坐标系自己的轴向旋转),而下面则被称为外旋(按照参考坐标系的轴向旋转)。

这样,按照旋转角,旋转顺序,旋转方式便能确定一组欧拉角的旋转。

关于旋转角与旋转矩阵的对应关系,需要注意的是坐标旋转和坐标系旋转的区别,两个矩阵互为转置,一定要搞明白坐标旋转与坐标系旋转的区别_https://github.com/heatMa-CSDN博客_坐标旋转写的比较清楚,这里直接给出二维坐标系的旋转矩阵:

该矩阵表示坐标系a顺时针旋转得到坐标系b。将之拓展至三维坐标系下,可以得到对于右手坐标系的三维旋转矩阵:

(1)绕X轴顺时针旋转

(2)绕Y轴顺时针旋转

(3)绕Z轴顺时针旋转

上述旋转矩阵中,同样是顺时针旋转,Y轴的旋转矩阵与X、Z轴不同,有兴趣的读者可以自己旋转一下,看看为什么不同。将三个旋转矩阵按照Z-Y-X的顺序进行连乘,就可以得到三维坐标系的最终旋转矩阵:

在惯性导航中,姿态角就是n系旋转到b系的角度。按照上文求取旋转矩阵的方法,现有姿态角,将n系按照Z-Y-X轴旋转顺序,内旋 ,即可得到n系到b系的旋转矩阵。该矩阵即惯性导航中定义的姿态矩阵,该矩阵对应姿态角(  )(有些学者会将该矩阵的转置矩阵记作姿态矩阵)。 已知n系下的姿态角,b系到n系的旋转则是按照X-Y-Z轴分别旋转()。

在载体运动过程中,b系固联于载体,所以b系是不断变化的,而n系是不变的,所以,通过矩阵就可以惯导测得的b系下运动变化量转换到n系下,从而得到导航所需要的n系坐标和速度。

参考:

[1]百度百科-欧拉角

[2]严恭敏. 捷联惯导算法及车载组合导航系统研究[D]. 西北工业大学.

[3]欧拉角细节/旋转顺序/内旋外旋 - 知乎

GNSS/INS组合导航(1)-- 姿态矩阵相关推荐

  1. 关于GNSS/INS组合导航开源软件GINav

    GINav 理论资料 参考<GNSS/INS组合导航软件开发> <组合导航从入门到精通>--1 绪论 <组合导航从入门到精通>--2 高精度GNSS定位模型 < ...

  2. GNSS/INS组合导航实习面试

    GNSS/INS组合导航面试 美团无人机.云创智行.阿里达摩院.图森蔚来组合导航.来牟创新. 腾讯地图出行事业部.百度地图 持续更新 文章目录 GNSS/INS组合导航面试 1.GNSS方面的问题 模 ...

  3. GNSS/INS组合导航笔记

    文章目录 问题1:不可交换误差 问题2:划桨运动 问题3:关于卡尔曼滤波器效果判断(INS/GPS) 问题4:失准角理解 问题5:关于feedback反馈矫正 问题6:组合导航精度结果主要依赖于GNS ...

  4. GNSS/INS组合导航(八):INS/GPS组合导航

    INS/GPS组合导航 对比INS与GPS导航方法,二者都有其各自的优缺点. 惯性导航系统INS是一种全自主的导航系统,可以输出超过200Hz的高频信号,并且具有较高的短期测量精度.除了提供位置与速度 ...

  5. GNSS/INS组合导航学习-GINAV(一)

    从今天开始整理一下,最近半年学习的组合导航算法 目前开源程序 1.严老师PSINS工具箱 (MATLAB--卡尔曼滤波算法) 2.GINAV (MATLAB--卡尔曼滤波算法 ) 3.KF-GINS ...

  6. GNSS/INS组合导航(七):卡尔曼滤波

    Kalman滤波 导航系统的精度受到 惯性传感器初始化以及算法的误差影响.低成本MEMS传感器由于严重的随机误差,INS输出可能迅速漂移.因此低精度的IMU基本上不能作为导航独立传感器进行使用. 在之 ...

  7. GNSS/INS 组合导航(一):定位技术分类与介绍

    一.文档学习连接 https://download.csdn.net/download/yongjinfeiba/10761520 一. 定位技术分类 1.1 基于相对测量的定位(航位推算) (1)轮 ...

  8. GNSS/INS组合导航(四):惯性导航系统

    可以结合下面连接看: https://blog.csdn.net/hltt3838/category_10500565.html 惯性导航理论依据: 牛顿第一定律(在不受外力作用下,物体将保持静止或匀 ...

  9. GNSS/INS组合导航(三):GPS全球定位系统

    全球定位系统(GPS)由美国国防部在20世纪70年代开发.GPS的定位基础是24颗卫星组成的网络.每颗卫星发送一个包含伪随机噪声(PRN)码与导航信息的无线电信号.接收机通过PRN码获得无线电信号的传 ...

最新文章

  1. java 庖丁解牛api_Java Restful API Best Practices
  2. ES6中的promise、async、await用法详解
  3. 小米6发布,雷军亲手终结小米低价时代,低价竞争还能走多远?
  4. 分析输入url到页面返回的过程(查询返回过程)
  5. distcc源码研究三
  6. Go go-metrics
  7. 前端学习(1921)vue之电商管理系统电商系统之绘制基本布局并且获取数据
  8. 深入实践Spring Boot1.3 使用Spring Boot
  9. oracle DataGuard停机和启动顺序
  10. EntityFramework 如何查看执行的 SQL 代码?
  11. rapidminer员工离职分析_员工一言不合就离职怎么破?我有Python员工流失预警模型...
  12. html编写回到顶部,html回到顶部代码
  13. 读《About Face 4 交互设计精髓》4
  14. 数据结构保研面试题整理(自用)
  15. vue 判断设备是手机端还是pc端
  16. php做后端的优势,【后端开发】php和java的优势
  17. java 压缩jar_Java基础之实现解压和压缩jar、zip、rar等源码分享
  18. mysql安装流程以及各类问题解决
  19. Matlab绘制隐函数总结-二维和三维
  20. linux 射击 游戏,Ubuntu下安装第一人称射击游戏 Nexuiz 2.4.2(图)

热门文章

  1. QQ/微信里被禁止访问的网页怎么处理 如何检测域名是否被QQ/微信 屏蔽
  2. A站工具姬pc电脑版
  3. android 高性能框架,高性能架构
  4. Android 辅助服务实战-游戏点击器
  5. Web应用程序,简单的日志系统解决方案
  6. 5.系统设计的工作内容与技能工具有哪些?
  7. 微信小程序订阅消息记录坑
  8. 数学建模竞赛 经验分享
  9. 进化三部曲,从互联网大脑发育看产业互联网的未来
  10. SDN — OpenvSwitch 常用指令和应用示例