结语:
“传感器融合”现在显然只是一个过程,即获取所有这些输入,并将它们连接到类似Kalman滤波器的东西上。请注意,我们想知道的是“真相数据”,不是我们的任何传感器直接测量的,“真相数据”是可以推断出来的。
Kalman滤波器之外的逻辑阶段是隐马尔可夫模型(HMMs),我们通过说有一个称为垂直高度的“隐藏”属性来调用它,而我们并没有直接观察到它(尽管有许多测量结果间接地表明了它是什么)。在收集了足够的证据之后,尽管样本数据很嘈杂,我们还是可以非常确定答案的真实性。
当你把所有的传感器数据拉到你的主微控制器里,然后在那里做数学运算,但是要非常小心时间混叠效应。如果一个传感器的时间相对于其他传感器偏移,那么融合结果会以奇怪的方式输出。
想一想,如果你有一个传感器块,你滑过一张桌子,但在一半的时候,你将它翻转90度。
IMU应该看到“侧向滑动,旋转90度,向上滑动”——将其整合到空间中的真实位置,你应该得到一条平坦的直线。但如果“翻转90”陀螺仪信号延迟(或只是时间戳不好),则加速度计矢量不会在每一瞬间都正确地旋转回工作台的平面上,当运动“泄漏”到错误的轴上时,会有一些垂直漂移。不是因为传感器的任何误差,而是纯粹因为处理顺序。
这就是为什么有些厂商做IMU要做全产线。陀螺仪和加速度计和外部磁强计都自己做,以保证时间不混叠。融合后,IMU向微控制器报告一个理想化的运动矢量,从而得到更一致的结果。当然,总有一个折衷:融合的运动更新(至少对于这个芯片来说)比原始值来得慢。
如果你认为控制过滤器过于复杂,更相信原始传感器,那么大可不必做融合。但如果你想要的是精确(或者你只关心最终答案),那就让芯片为你融合吧。