我想使用加速度计,陀螺仪和其他智能手机传感器在3D空间中绘制设备的运动。
经过一番研究,我发现一个方程式说可以通过对该a*t^2
方程式进行二次积分来完成,但是引入了巨大的累积误差和漂移。我对此的解决方案是跳过双重积分,而是计算梯形的面积-((a(t) - a(t-1)) * dt / 2) + (dt * a(t))
但是,这会给出离散的结果,这些结果加起来并不能提供正确的路径(即使没有应用重力过滤器并且在平坦的表面上移动设备)。
假设我有一个恒定的增量时间值和每个时间间隔的传感器数据采样值,并且在时间N * dt采集了第N个采样值,是否有一种更准确的实时方式来执行这些计算。
不幸的是,如果您仅使用加速度计和陀螺仪数据,则通常会看到数据随时间的推移会有相当大的漂移。您还使用其他哪些传感器?您可以访问GPS数据吗?而且,您是否拥有希望智能手机执行的那种运动的数学模型?
就是说,如果您坚持使用IMU,那么会有各种各样的过滤器为您提供比简单集成更好的估计。其中最简单的可能是Madgwick滤波器,它实现起来很简单,并且只将线性加速度计和陀螺仪数据组合在一起。这里重要的一点是,陀螺仪传感器数据被转换并更新为四元数。
该教程实际上很好地概述了IMU的数学模型,以及一些您可以测试的过滤器。最复杂的是卡尔曼滤波器及其变种,如无味卡尔曼滤波器,它们可能很难调整,但总体上表现良好。
抱歉,您的问题没有简单的答案。但是您提出了一个广泛的问题,答案在很大程度上取决于您的应用程序。但是我建议您使用该教程中列出的Madgwick或Complementary过滤器,它们非常简单,可能会比您的初始估计值有一个快速的改进。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句