谈谈四元数

  作为从未学过惯性导航的小白,四元数折磨了我很长时间,至今也是似懂非懂的。下面说的不正确的,希望大神指点。

  四元数说起来很好理解,即表示绕着瞬时轴n旋转θ角度。瞬时轴n=cosαi+cosγj+cosβk。

  四元数的表示即Q=cos(θ/2)+sin(θ/2)(cosαi+cosγj+cosβk)=q0+q1i+q2j+q3k。姿态矩阵是如何和四元数对应的呢?θ和n是多少呢?

  先摆出一个很重要的性质:坐标系旋转,矢量固定不变。坐标系OXYZ按照四元数Q转动,得到新坐标系OXbYbZb,设矢量V在两坐标系中的坐标分别为Ve,Vb。那么有,Vb=Q-1VeQ。具体见http://www.doc88.com/p-893241688972.html

这就是四元数得到旋转矩阵的由来。

这篇文章写的太好了,我就直接复制过来了,感谢作者。

四元数表示旋转矩阵,四元数的微分都说的很清楚了,然而我还是不知道q0,q1,q2,q3跟姿态角到底有什么关系。我想了很久,不知道下面的理解是不是对的。

n的方向就是陀螺仪测得的(wx,wy,wz)矢量和的方向,θ就是(wx,wy,wz)矢量和的长度!!!

wx,wy,wz是飞机绕三个轴旋转的角速度,飞机我们认为是分步骤绕三个轴旋转后到达最终位置的,四元数旋转我们认为是一步旋转到最终位置的。那么这两种旋转肯定有关系啊!四元数是绕一个向量旋转,n表示的是旋转方向,θ表示的是旋转量。wx,wy,wz的旋转其实也是绕三个向量旋转,即(wx,0,0)(0,wy,0)(0,0,wz)。它们最终都到达了同一个位置,那么n当然是(wx,0,0)(0,wy,0)(0,0,wz)三个向量的矢量和啦!

在这里我们一定要认清,向量是与坐标系没有关系的!向量就是向量,是固定的!它只是在不同的坐标系表示的坐标不同罢了!

我们被很多书上的图误导了

就像这样的图,先入为主的认为n是在地理坐标系的,然后去想飞机是怎么旋转的,怎么想也想不明白!当我们谈到向量,我们一定要认为他是独立的存在空间的,跟坐标系什么关系都没有!

四元数的本质就是,飞机可以看成绕三个向量x,y,z三步旋转到最终位置,也可以看成绕一个向量n一步旋转到最终位置。那么当然n=x+y+z啦,这里是矢量和。

我们始终要牢记:向量是独立的!跟坐标系没有任何关系!

时间: 2024-10-14 00:42:03

谈谈四元数的相关文章

Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵

http://blog.csdn.net/janeky/article/details/17272625 今天我们来谈谈关于Unity中的旋转.主要有三种方式.变换矩阵,四元数和欧拉角. 定义 变换矩阵 可以执行任意的3d变换(平移,旋转,缩放,切边)并且透视变换使用齐次坐标.一般比较少用到.Unity中提供了一个Matrix4x4矩阵类 四元数 “四元数是最简单的超复数. 复数是由实数加上元素 i 组成,其中i^2 = -1. 相似地,四元数都是由实数加上三个元素 i.j.k 组成,而且它们有

谈谈对CAP定理的理解

谈谈对CAP定理的理解 CAP定理的常规解释是任何分布式系统只能在一致性(Consitency),可用性(Availability)和分区容忍性(Partition Tolerance)中三选二.这个解释很让人费解,笔者在看了一些文章后谈谈我对它的理解,还请斧正. 从问题出发 假设我们用一台服务器A对外提供存储服务,为了避免这台服务器宕机导致服务不可用,我们又在另外一台服务器B上运行了同样的存储服务.每次用户在往服务器A写入数据的时候,A都往服务器B上写一份,然后再返回客户端.一切都运行得很好,

谈谈我眼中的安徽企腾信息技术集成有限公司

在这里工作一段时间后,说说自己眼中的安徽企腾,我尽量本着客观的原则,不带任何主观因素与感情色彩. 首先,先说说规模,所谓的分成售前与售后,其实就是虚张声势,售前不过是一些笔记本的售后维修,售后与售前基本上没什么关系.而售后,销售加上技术,最多时也不过7个人.平时一些项目,大一点,一些不能做的直接外包出去,小一点的项目,所谓的"施工队",就是全体总动员. 公司里做了好几块业务,其中一块是飕飕商用路由,刚开始,想的是多么好,但是最后却被浇了一盆冷水,市场根本不接受,唯一做了一家宾馆,还是连

谈谈JS里的{ }大括号和[ ]中括号的用法

谈谈JS里的{ }大括号和[ ]中括号的用法,理解后就可以看懂JSON结构了. 一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数. 如:var LangShen = {"Name":"Langshen","AGE":"28"}; 上面声明了一个名为"LangShen"的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性, 所以访问时,应该用.(点)来层层访问:LangShe

基于四元数的姿态解算算法图解

下面的两个地址是我存放在百度云网盘的附件,分别是基于四元数的互补滤波法的图解和梯度下降法的图解.笔者采用MindManager思维导图软件对上述两种算法进行详细的解释,非常形象. 希望这种方式能够让大家快速.准确的理解这两种算法的流程. 互补滤波法: http://pan.baidu.com/s/1c0b8qJ2 梯度下降法: http://pan.baidu.com/s/1sjI1l5F

《谈谈认同》这个文章有点晦涩 写的不太好

认同是一个人主观能动性的一个影响因素.至于人的主观能动性还有什么影响因素,先不讨论,而且我也没学过也没想过.在可选择事物的主观能动性上,认同应该算最基本也是影响最大的了.回到主题,我们来谈谈认同.        认同有三个表现:第一.口头认同.第二.行动认同.第三.心理认同.简单的理解,就是口头认同只说认同,但不做,事前一套事后一套.行动认同就是说也说了,干也干了,但心里不这样想.心理认同就是口手心合一.但我们都清楚认同其实从本质上讲只有一种,就是心理认同.只有心理认同才是真正的认同.但是在工作

谈谈vector容器的三种遍历方法

说明:本文仅供学习交流,转载请标明出处,欢迎转载! vector容器是最简单的顺序容器,其使用方法类似于数组,实际上vector的底层实现就是采用动态数组.在编写程序的过程中,常常会变量容器中的元素,那么如何遍历这些元素呢?本文给出三种遍历方法. 方法一:采用下标遍历 由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operator [] (size_type n);所以我们可以采用类似于数组的方式来访问vector容

谈谈怎么使用JSONP

JSONP是什么,其实它是目前主流的实现跨域通信的解决方案. 因为我们都知道,在我们使用ajax去发起HTTP请求的时候,是不可以跨域的.也就是不能在不同域名下.端口等去请求.如果我们强行这么做的话,它是会报错. 这里举个例子. function createXHR() { var xhr = new XMLHttpRequest(); return xhr; } function ajax(url) { var xhr = createXHR(); xhr.onreadystatechange

你读到了什么:谈谈阅读的空与实

開始写点文字后,有些文章有人留言评论说:「都是些空话,正确的废话」,而有些文章有人又会留言评论说:「就喜欢这种.满满的干货.实在」. 究竟什么是空还是实蛮让我困惑的,思考了一段时间后今天就想谈谈我从阅读文章中究竟读到了些什么? 不管是别人评价是空话还是实在,于写作者我而言仅仅负责将自己思考后的观点清晰的表达,而至于是用「干货」还是「湿货」的形式来表达事实上取决于支撑观点的内容本身. 代入去想我知道评论说文章太空的人本身对阅读的期待是能从中收获实用甚或立马用的上的东西.凡是怀有相似期待的读者多半是