quaternions - 如何避免使用四元数的万向节锁定
问题描述
我正在使用 LSM6DSO32 我使用卡尔曼滤波器,效果很好,但是在某些位置,特别是当我在俯仰角接近 90° 时,我的滚动跳跃并且我得到了错误的值。所以我在网上搜索过,我发现欧拉角有问题,为了避免这种情况,有些人说要使用四元数。我在这里找到了一个带有四元数的 MadgwickAHRS 算法,但是当我将四元数转换为度角时我遇到了同样的问题,这正常吗?我应该做些什么来避免这个问题吗?
编辑:也许我应该只使用四元数而不转换为欧拉角,但是我如何用我的四元数(q0、q1、q2、q3)检测我的滚动或俯仰移动到 50°,例如?我不关心偏航 z 轴,我只对滚动和俯仰感兴趣。
编辑 2:如果我打印到我的序列 q0 到 q3 所有值都会发生变化,但是如果我打印欧拉角,角度值不会改变?我不知道如何只使用四元数来计算没有欧拉的角度旋转......
解决方案
推荐阅读
- java - 移动到下一个片段时如何停止当前片段媒体播放器?
- spring - Spring Boot Cloud Hystrix
- javascript - React Native Text Input Blur Focus on Tap Touchable
- ubuntu - 如何使用适用于 Windows 的 Ubuntu (20.04 LTS) 终端运行 ROS?
- python - 使用 kde 绘制 3D 数据等高线图
- dart - 飞镖 | Flutter:如何在 null 安全下从 Map 传递函数?为什么需要 bang 运算符?
- django - 用户头像未在 Django 中显示
- javascript - HTML:如何在执行函数之前获取计算结果
- spacy - Spacy token.lemma_ 不识别名词和代词
- python - 是否可以创建不在外部窗口中运行的 GUI?