在这里阅读:Android Sensors - Which of them get direct input?,
我想知道是否有人有关于线性加速度的准确性的经验或技术上详细的链接,而不仅仅是手动处理加速原始数据。例如,新手机是否有专用的硬件芯片来过滤掉重力,或者大多数设备只是过滤相同的原始来源?
更新,建议给某人确认他们是否有这样的设备(Xoom,Nexus S,?): “如果设备有陀螺仪,或者可能有多个加速度计,则重力(G)与外部线性加速度(L)的返回值基本上可以比单独使用加速度计数据的任何处理更准确。没有额外的传感器,例如在大多数手机上,原则上可以对加速度(A)进行后处理,以便像设备返回的那样准确地进行分离A = G + L“
答案 0 :(得分:2)
看起来,重力/林。加速度可以通过低通滤波器计算 - 正如Android-Documentation中所述。
但是只过滤最后一个值不会这样做。通过平均ca.的加速度计值,我得到了可接受的结果。 200毫秒(对于中等移动,这仍然会搞砸,例如当你用手指快速翻动手机时)。
您提出的答案很可能是正确的。
您可以在Android fragmentation上查看多个智能手机型号的统计信息。 对于许多型号的林的功耗。加速度和重力传感器只是加速度计,陀螺仪和磁力计的总和。
陀螺仪可让您识别快速角度移动,并可用于改善重力值,而低通滤波器无法实现这一点。对于磁力计,我不确定它是否真的能为您提供更多信息。
在我的手机(HTC One S)上,重力感应器使用的功率与加速度计一样多,但仍然比我的简单过滤器更好。所以它要么是另一个硬件传感器,要么就是它们使用不同的权重。如果他们的绝对值更接近重力,我试图对acc数据进行加权,这很好,但仍然不如实际的重力传感器好。
出于兼容性原因,我建议尽可能使用低通滤波器来控制重力,因为仍然不是每个智能手机都有陀螺仪或提到的传感器。