algorithm - DeviceMotion采用什么算法从加速度计和陀螺仪计算姿态?

标签 algorithm accelerometer gyroscope core-motion kalman-filter

根据引用资料, deviceMotion 属性仅适用于同时具有加速度计和陀螺仪的设备。这是因为它的子属性是传感器融合算法的结果,即两个信号一起评估以减少估计误差。

Emm,我的问题是 CMMotionManager 用于计算的内部实现或算法在哪里。我想要一些关于这个所谓的“传感器融合算法”的细节

流行的融合算法例如卡尔曼滤波器和衍生物,但我猜 CMMotionManager 的内部实现是基于更简单因此更快的算法。我希望根据来自加速度计和陀螺仪的传感器数据进行一些简单但足够好的数学计算,以最终计算出横滚、偏航和俯仰

最佳答案

不清楚what is actually implemented in Core Motion .

至于卡尔曼滤波器以外的滤波器:我已经为 Shimmer 2 实现了传感器融合。基于此的设备manuscript .

您可以在 Complementrary Filters 上找到这个答案也有帮助,请特别参阅 filter.pdf

出于两个原因,我不会使用滚动、俯仰和偏航:(1) it messes up the stability你的应用程序和 (2) 你 cannot use it for interpolation .

关于algorithm - DeviceMotion采用什么算法从加速度计和陀螺仪计算姿态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10646518/

相关文章:

android - 何时在 Android 上使用加速度计或陀螺仪

android - 获取单个加速度计值

javascript - iOS 上的 Devicemotion 事件

java - 非图求解器中的回溯似乎处于无限循环中

algorithm - 时间复杂度理论

java - Android 加速计每次返回相同的值

android - 我们可以在陀螺仪给出的两点之间在android Canvas 上画线吗?

neural-network - 可以使用一组向量作为神经网络的输入吗?

c# - 绘制图形的最佳方法是什么?

algorithm - 用于存储数千个向量的数据结构