传感器融合工具箱IMU过滤器一直为什么不提供相同的结果吗?

2视图(30天)
我试过几种不同的IMU过滤器中可用传感器融合MATLAB工具箱,发现他们不返回相同的回答每次尽管被给予相同的数据和实现之间没有设置被改变了,有人知道这是为什么吗?
过滤器/融合方法我有问题是:complementaryFilter ahrsfilter, imufilter
我测试了它们的方式(注意一个问题,我正在研究一个更大的部分代码)例如:
保险丝= complementaryFilter (SampleRate, 248.0159)
[complementary1, ~] =保险丝(IMU (1) .acc, IMU (1) .gyro, IMU (1) .mag);
[complementary2, ~] =保险丝(IMU (1) .acc, IMU (1) .gyro, IMU (1) .mag);
complementary1 = = complementary2;
人物,情节(ans)
IMU (1)。acc, IMU (1)。陀螺和IMU (1)。镁是加速度计、陀螺仪和磁强计值保存在一个结构体。从这个对比的答案是0。我测试了它与另外两个过滤器我也使用和俺们是1。这些过滤器/融合方法一致是ecompass(也可用的传感器融合工具箱)和开源Madgwick过滤器。我想明白为什么答案是不同的每一次这三个过滤器
2的评论
Nawsheen Tarannum Promy
Nawsheen Tarannum Promy 2021年2月26日
你好杰米,我使用Madgwick算法处理数据,我收集了从MATLAB的移动应用程序。你从移动应用程序收集样本吗?如果是这样,你能请分享你如何连接输入和madgwick算法?谢谢。

登录置评。

接受的答案

布莱恩Fanous
布莱恩Fanous 2021年1月19日
编辑:布莱恩Fanous 2021年1月19日
你好杰米
融合过滤器通常是保留的物体从一个调用到下一个状态。在示例代码中,第一次调用保险丝()估计complementary1取向,而且更新的内部状态和状态协方差融合对象。下一个调用保险丝()将开始从这些新的内部状态和状态协方差。这允许您通过过滤器流数据在小块但得到相同的答案如果你有美联储整个datastream数据。如果你想获得相同的答案从一个调用到下一个过滤器使用重置方法:
重置(保险丝);
恢复初始状态和协方差。ahrsfilter和imufilter 系统对象 这流行为是至关重要的。过滤器是不正确的系统对象但保留相同的流的设计理念。
ecompass算法是一个例外,因为它是一个函数。它不保留状态从调用调用,所以给你从一个调用到下一个相同的答案。

更多的答案(0)