四元数转方向余弦矩阵介绍


四元数转方向余弦矩阵介绍

时间:2025-03-13  作者:Diven  阅读:0

2.1 欧拉定理

欧拉定理是刚体定点转动理论中的一个重要定理,它表明刚体绕固定点的任何位移都可以通过绕通过此点的某一轴转过一个角度来实现。在单位时间间隔Δt内,假设刚体的角速度为ω,则该转动轴的方向e及绕该轴转过的角度φ分别为:e = ω/|ω|,φ = |ω|Δt。

c36f2ed8-232b-11ee-962d-dac502259ad0.png

相应四元数表示式为:

c386ef78-232b-11ee-962d-dac502259ad0.png

满足约束条件

c398112c-232b-11ee-962d-dac502259ad0.png

以超复数形式表示有:

c3a56188-232b-11ee-962d-dac502259ad0.png

满足约束条件

c3b1d828-232b-11ee-962d-dac502259ad0.png

利用三角公式:

c3c23c86-232b-11ee-962d-dac502259ad0.png

可将四元数转化成姿态矩阵 b系到R系

c3d1e726-232b-11ee-962d-dac502259ad0.png

可将四元数转化成姿态矩阵 R系到b系

c3de3a26-232b-11ee-962d-dac502259ad0.png

Tips:R系是一种用于描述空间中点位置的导航坐标系,其中的坐标值表示相对于地球的位置。b系是一种用于描述载体(例如航空器、船舶等)位置的坐标系,其中的坐标值表示相对于载体的位置。

3. Matlabe四元数转方向余弦矩阵

API

function[y1,...,yN]=myfun(x1,...,xM)声明名为myfun的函数,该函数接受输入x1,...,xM并返回输出y1,...,yN

q2mat(),qua2dcm(),quat2dcm()将四元数转换矩阵

c3f7fb64-232b-11ee-962d-dac502259ad0.png

c4163f98-232b-11ee-962d-dac502259ad0.png

4.C语言实现四元数转方向余弦矩阵

基于 QMI8658 姿态传感器实现四元数转换为方向余弦矩阵的过程如下:

STEP1: 根据传感器获取到的四元数数据,我们可以得到四元数的四个分量:q0、q1、q2、q3。

STEP2: 我们可以根据四元数的定义,将其转换为方向余弦矩阵。具体的转换公式如下:

| C11 C12 C13 || C21 C22 C23 || C31 C32 C33 |其中,C11、C12、C13、C21、C22、C23、C31、C32、C33 分别表示方向余弦矩阵的九个元素。

STEP3: 我们可以通过串口将获取到的四元数和方向余弦矩阵输出。

以下是基于 QMI8658 姿态传感器获取到的静止放置在水平面,Z轴向上的四元数和方向余弦矩阵数据:

c42dc1f4-232b-11ee-962d-dac502259ad0.png

我可以使用Wolfram Alpha计算器进行计算和校验,并给出结果。

c443ad34-232b-11ee-962d-dac502259ad0.png


审核编辑:刘清