Math 如何使用传感器数据计算移动设备的移动路径?

Math 如何使用传感器数据计算移动设备的移动路径?,math,3d,gdscript,sensor-fusion,Math,3d,Gdscript,Sensor Fusion,我想用加速计、陀螺仪和其他智能手机传感器绘制设备在3D空间的运动 经过一点研究,我发现了一个方程,它可以通过对a*t^2方程进行双重积分来实现,但这会带来巨大的累积误差和漂移。我的解决方案是跳过二重积分,而是计算梯形的面积-((a(t)-a(t-1))*dt/2)+(dt*a(t)),但是这会给出离散的结果,这些结果加起来并不能提供正确的路径(即使没有应用重力过滤器,并且在平面上移动设备) 有没有一种更精确的方法来实时执行这些计算,因为我有一个增量时间的常数,并且在每个时间间隔上都有一个传感器数

我想用加速计、陀螺仪和其他智能手机传感器绘制设备在3D空间的运动

经过一点研究,我发现了一个方程,它可以通过对
a*t^2
方程进行双重积分来实现,但这会带来巨大的累积误差和漂移。我的解决方案是跳过二重积分,而是计算梯形的面积-
((a(t)-a(t-1))*dt/2)+(dt*a(t))
,但是这会给出离散的结果,这些结果加起来并不能提供正确的路径(即使没有应用重力过滤器,并且在平面上移动设备)


有没有一种更精确的方法来实时执行这些计算,因为我有一个增量时间的常数,并且在每个时间间隔上都有一个传感器数据样本,其中N个样本是在时间N*dt处采集的。

不幸的是,如果你只是使用加速计和陀螺仪数据,那么你通常会看到相当多的漂移你的数据的时间。您还使用了哪些传感器?您有权访问GPS数据吗?你有没有一个数学模型来描述你期望智能手机会经历的运动

这就是说,如果你被IMU困住了,那么有各种各样的过滤器可以给你提供比简单集成更好的估计。其中最简单的可能是a,实现起来很简单,只需将线性加速度计和陀螺仪数据结合起来。这里的一个重要收获是将陀螺传感器数据转换并更新为四元数

这给出了IMU数学模型的一个非常好的概述,以及一些可以测试的过滤器。最复杂的是它的类型和种类,就像,它们可能很难调谐,但一般都有很好的性能


对不起,你的问题没有一个简单的答案。但是你问了一个广泛的问题,答案很大程度上取决于你的申请。但我建议您使用该教程中列出的Madgwick或互补过滤器,它们非常简单,可能会使您的初始估计值快速提高。

谢谢您的回答。为了提供一些反馈,我可以使用移动设备(智能手机)上可用的所有传感器,但是使用GPS,我失去了室内跟踪的能力,这对我的用例至关重要。这实际上是我正在开发的更大的基于SLAM的跟踪和检测工具的一部分。预期的移动将是缓慢且可预测的(由于用户需要创建关键点的3D地图,因此不会出现快速或不协调的移动)。此外,更大的问题是,它必须实时工作,因此需要进行计算,实时过滤和预测,这不仅占用大量CPU,而且很难计算出数学。然后我肯定会研究Madgwick过滤器或类似的东西。就实现和计算时间而言,它们的成本非常低,并且可能会为您提供比集成更好的数据。无论您使用什么语言,都有开源的实现。