如何避免四元数的万向节锁定

问题描述

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)