姿态解算之四元数

一、四元数定义
顾名思义,四元数是由四个元构成的数。
这里写图片描述
其中,q0、q1、q2、q3是实数,i、j、k即使互相正交的单位向量,又是虚单位向量。
二、四元数的表达方式
复数式
这里写图片描述
可视为一个超复数,Q的共轭复数记为

矩阵式
这里写图片描述
三、四元数的大小——范数
四元数的大小用四元数的范数来表示:
这里写图片描述
若||Q||=1,则Q称为规范化四元数。
四、四元数的运算

这里写图片描述
1)加法
这里写图片描述
2)乘法
这里写图片描述
——以上来自《惯性导航》
四元数与姿态解算关系
——详细请看《惯性导航》中的9.2.2四元数与姿态阵间的关系 里面涉及到很多公式,我也没有真正看懂。只是明白一个单位四元数可以表示一个旋转。一个坐标系到另一个坐标系的变换可以通过绕一个定义在参考坐标系中的矢量的单次转动来实现,四元数提供了这种数学描述。捷联惯导中的姿态更新实质上是如何计算四元数Q。
其中转换公式如下:
这里写图片描述
从四元数q0-q3转成方向余弦矩阵:
这里写图片描述
再由方向余弦矩阵转换为欧拉角:
这里写图片描述

下面在看看四元数、方向余弦矩阵、欧拉角三者之间的关系吧
欧拉角
欧拉角的定义不仅仅和旋转角度有关系,还和旋转轴的旋转顺序有关系,任何一种旋转顺序都是合法的。根据定义,欧拉角有12种选择顺序(维基),一个物体通过任何一种旋转顺序都可以达到同样的姿态,在各个学科里所以为了统一,航空航天领域规定XYZ为欧拉角的旋转顺序。
欧拉角的定义很直观而且容易理解,也利于我们计算,因为我我们用的惯性器件也是按照单个轴向运动来测量的。定义上的欧拉角还和我们所说的Yaw、Pitch、Roll不是一回事。因为定义上的欧拉角就是刚体绕三个轴的旋转角度,欧拉旋转和外界的东西(参考系)是没有关系的。Yaw、Pitch、Roll是载体相对于参考系来说的。因为选定了参考系为地球,这样就产生了Gimbal Lock(万向节死锁)。这个我也没有弄明白不做什么说明。
方向余弦
一个向量在坐标系中的位置可以用方向余弦表示,也就是这个向量分别到三个坐标轴的夹角余弦值,实际上就是这个向量到各个坐标轴的投影啦。所以推广到载体坐标系和参考坐标系当中,我们就有了载体坐标轴xyz分别与参考轴XYZ的方向余弦。
三者的关系:
这里写图片描述
通过比较上述等式的各个元素,四元数可以直接用欧拉角或余弦表示,同样欧拉角也可用方向余弦或四元数表示。
用方向余弦表示四元数:
这里写图片描述
用欧拉角直接表示四元数:
这里写图片描述
用方向余弦表示欧拉角:
这里写图片描述

上面这些就是姿态解算用到的四元数及四元数求解欧拉角的方法了。基本思路是四元数—>方向余弦—>欧拉角。这样就又有问题了四元数的q0-q3数据来源是什么呢?又是如何填充q0-q3呢?(这个下次在继续搬砖吧)

  • 19
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
### 回答1: 捷联惯导姿态解算是指利用惯性测量单元(IMU)的数据,通过计算,得出装备的朝向姿态。姿态解算的结果是一个四元数。MATLAB是一种常用的科学计算软件,被广泛应用于数学建模、数据处理、信号处理、工程仿真等领域。 在MATLAB中进行捷联惯导姿态解算四元数需要先收集IMU从加速度计和陀螺仪获取的数据。然后将这些数据输入到MATLAB中的姿态解算算法里,从而得到四元数。 MATLAB有很多集成的工具箱,可以用于实现姿态解算算法,如机器人工具箱(Robotics Toolbox)、惯性测量单元工具箱(IMU Toolbox)等。在使用这些工具箱时,需要按照相应的接口规范来传递IMU数据,进行姿态解算。比如,在IMU Toolbox中,可以使用函数imufilter()来进行姿态解算,该函数需要传递IMU数据、采样率等参数,并返回四元数。 总之,MATLAB提供了多种工具和算法,可以方便地进行捷联惯导姿态解算四元数。通过合理的数据处理和输入参数,可以得到精确的姿态结果,为其他领域的应用提供支持。 ### 回答2: 捷联惯导姿态解算是航空、航天、船舶等应用领域中的重要技术,其中四元数姿态解算中常用的表达方式之一。Matlab是一种常用的计算机编程语言,其强大的数学计算和图形化界面使其成为捷联惯导姿态解算四元数的理想工具。 在Matlab中,可以使用矩阵运算和插值法来实现捷联惯导姿态解算四元数。首先需要收集传感器输出的角速度和加速度数据,并进行预处理和滤波以减小误差。然后,使用基于四元数姿态解算算法计算出当前时刻的四元数,以及四元数随时间变化的微积分方程。最后,使用插值法将四元数转化为欧拉角或其他形式的姿态表示,以提供更方便的应用接口。 值得注意的是,捷联惯导姿态解算四元数的精确度和稳定性受到多种因素的影响,如传感器精度、坐标系转换、噪声和温度等因素。因此,在实际应用过程中,需要对数据进行充分的分析和校准,以提高解算精度并降低误差。同时,使用Matlab进行仿真和验证是一种有效的方法,可以帮助设计和优化捷联惯导姿态解算四元数的算法和系统。 ### 回答3: 捷联惯导姿态解算四元数Matlab是一种计算方法,在机械、航空、导航等领域中常用的姿态解算方法之一。此方法将加速度计、陀螺仪等传感器的读数转换成四元数表示的姿态信息,从而得出物体在三维空间中的方向、位置等参数。通过MATLAB软件,可以非常方便地实现捷联惯导姿态解算四元数。 捷联惯导姿态解算四元数MATLAB程序主要包括数据输入、四元数初始化、姿态解算、最优化处理等步骤。数据输入部分将传感器读数导入程序,经过处理和滤波后得到用于姿态解算的信息。四元数初始化通过将初始状态的旋转矩阵与四元数之间的转换得到,以及确定四元数的初始值。姿态解算部分则是将传感器读数转换成四元数,再将四元数与前一时刻的状态初始值进行微调,最终得到当前时刻的姿态信息。最优化处理部分则是对姿态信息进行优化,提高其精度和准确性。 总之,捷联惯导姿态解算四元数MATLAB程序是一种非常有用和实用的姿态解算方法。在机械、航空、导航等领域中得到广泛应用,可大大提高相关工作的效率和精度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值