首页 > 解决方案 > 如何避免使用四元数的万向节锁定

问题描述

我正在使用 LSM6DSO32 我使用卡尔曼滤波器,效果很好,但是在某些位置,特别是当我在俯仰角接近 90° 时,我的滚动跳跃并且我得到了错误的值。所以我在网上搜索过,我发现欧拉角有问题,为了避免这种情况,有些人说要使用四元数。我在这里找到了一个带有四元数的 MadgwickAHRS 算法,但是当我将四元数转换为度角时我遇到了同样的问题,这正常吗?我应该做些什么来避免这个问题吗?

编辑:也许我应该只使用四元数而不转换为欧拉角,但是我如何用我的四元数(q0、q1、q2、q3)检测我的滚动或俯仰移动到 50°,例如?我不关心偏航 z 轴,我只对滚动和俯仰感兴趣。

编辑 2:如果我打印到我的序列 q0 到 q3 所有值都会发生变化,但是如果我打印欧拉角,角度值不会改变?我不知道如何只使用四元数来计算没有欧拉的角度旋转......

标签: quaternionsgyroscopeeuler-anglesimu

解决方案


推荐阅读