【问题标题】:What is the best beta value in Madgwick filter?Madgwick 过滤器的最佳 beta 值是多少?
【发布时间】:2017-12-01 08:20:12
【问题描述】:
当我使用默认值 0.0041 或 0.033 时,当我将四元数数据发送到 Unity 3D 时,旋转很奇怪。当我将 beta 值更改为 0.001 时,旋转很好,但随着时间的推移会有轻微的漂移。我正在使用 LSMD9S0 IMU 传感器。
这是我的代码Madgwick_Arduino
【问题讨论】:
-
欢迎来到StackOverflow,请在提问时更具体一点:到目前为止,您对代码示例进行了哪些尝试? / 您有什么期望? / 您遇到什么错误? *请查看“How to ask”
标签:
filter
beta
sensor-fusion
【解决方案1】:
查看original article written by Sebastian Madgwick,我们可以找到以下关于beta值的段落:
β是{^S_E}q_ω的发散率,表示为a的大小
陀螺仪测量误差对应的四元数导数。
后来,它说:
滤波器将{^S_E}q_est 计算为陀螺仪测量的方向变化率{^S_E}q_ω,其中陀螺仪测量误差的幅度β在估计的方向上被移除误差,{^S_E}q_e,由加速度计和磁力计测量计算得出。
因此,beta 幅度与陀螺仪的误差直接相关(我将偏差理解为这里最重要的误差来源),但直接在四元数梯度的分量上表示。这意味着它没有可理解的单位,也没有直观的最佳幅度。
另一方面,Madgwick 滤波器假设加速度计测量重力。这意味着它受到水平加速度的影响。需要根据您的具体情况调整滤波器参数(它具有的两个参数),在陀螺仪偏差校正和对水平加速度的灵敏度之间进行权衡。
根据经验:增加 beta 会导致 (a) 更快的偏差校正,(b) 对横向加速度的更高灵敏度。
我之前使用此过滤器的经验需要几个小时的实验 + 手动调整,直到我们达到令人满意的结果。我们再也不需要触及这些价值观了。