关于陀螺仪数据处理(得到姿态)的一些方法(1)

来源:互联网 发布:java 运算符 编辑:程序博客网 时间:2024/06/05 02:51

  1. 关于姿态描述
  2. 欧拉角与四元数
  3. 实际使用过程中的问题
  4. 解决方法与代码实现
  5. 我自己的问题

姿态描述

对于一个物体来说,如果我们要描述他的姿态,我们需要有一套标准来描述他的姿态,对于我们的设备来说我们需要用几个数来表示我们设备的姿态。

欧拉角与四元数

在我们使用的过程中,我们常常使用的几种描述方式:
1.欧拉角
2.四元数
3.方向余弦

这里我们只讨论欧拉角以及四元数,因为后面的我们实际使用的主要只涉及欧拉角和四元数。

什么是欧拉角呢?

这里我们可以从百度上百到一堆定义,可能会有部分朋友看了以后不明所以,在这里我简单说一下。所谓的欧拉角其实就是物体围绕自己的三个轴旋转的角度(三个相互垂直的轴),然后这里的旋转是有先后顺序的,也就是说欧拉角的描述方式需要规定旋转的顺序,也就是先绕哪个轴转,后绕哪个轴转,这里大家想再多了解一些可以多看看网上的例子,这里我就不赘述了。

什么是四元数?

据百度说四元数是一种超复数,具体什么是超复数对我们后面主要要解决的东西没有什么关系。

在姿态描述中四元数是用来描述物体姿态的一种方式,四元数会描述一个旋转轴和旋转角度,表示物体通过绕这个旋转轴旋转这个旋转角度,一个四元数由四个数构成,具体这四个数如何表示旋转轴和旋转角度大家百度就知道了。

为什么不用欧拉角?

欧拉角是一种特别直接而且容易被我们接受的方式,但是我们会发现在计算角度的时候网上很多算法都会采用四元数而不是欧拉角,四元数比起欧拉角来说特别的不直观,我么为什么要用呢?

仔细查过的同学会发现欧拉角有如下问题
1.计算量大
2.万向节死锁
3.奇点,不连续

查过之后先不说第一点就说第二点,什么事万向结死锁呢?为什么会有奇点和不连续呢?

其实这个问题大家可以先不考虑(如果要考虑的话大家可以多看看网上的资料),如果你先‘’借鉴‘’网上的算法(这里我最后也会附上),把姿态计算出来了之后在考虑这些问题会直观很多,因为如果你之前没学过欧拉角还有四元数,这一下子就要你理解他们,明白他们的不同和优劣是很难的。反倒不如把东西求出来了之后你回过去站在一个比较高的位置看这个问题,再来解决这个问题。

实际开发过程

现实总是很残酷的。

我们看了一堆东西后想把这些东西用到自己的项目上去的时候,会发现很多问题。(待续 )

1 0
原创粉丝点击