android - android "linear acceleration"的准确性与加速度计的手动处理?

标签 android accelerometer sensors

阅读此处:Android Sensors - Which of them get direct input? ,

我想知道是否有人有关于线性加速度的准确性与仅手动处理加速度原始数据的经验或技术上的详细链接。例如,新手机是否有专门的硬件芯片来过滤重力,或者大多数设备只是过滤相同的原始来源?

更新,建议某人确认他们是否拥有此类设备(Xoom、Nexus S、?)的答案: “如果设备有陀螺仪,或者可能有多个加速度计,那么重力 (G) 与外部线性加速度 (L) 的返回值从根本上说比单独处理加速度计数据更准确。没有额外的传感器,例如在大多数手机上,原则上可以对加速度 (A) 进行后处理,以尝试像设备为 A = G+L 返回的一样准确地分离”

最佳答案

看来,万有引力/lin。加速度可以通过低通滤波器计算 - 正如 Android-Documentation 中所述.

但是只过滤最后一个值是不行的。我通过平均 ca 的加速度计值得到可接受的结果。 200 毫秒(对于适度的移动,这仍然会搞砸,例如,当您在手指之间快速翻转手机时)。

您建议的答案很可能是正确的。

您可以在Android fragmentation上查看多个智能手机型号的统计数据。 . 对于许多模型,lin 的功耗。加速度和重力传感器只是加速度计、陀螺仪和磁力计的总和。

陀螺仪可让您识别快速的角运动,并可用于改善重力值,这仅靠低通滤波器是无法实现的。对于磁力计,我不确定它是否真的能为您提供更多信息。

在我的手机 (HTC One S) 上,重力传感器使用的功率与加速度计一样多,但仍然比我的简单过滤器要好。因此,要么它是另一个硬件传感器,要么它们可能使用不同的权重。如果 acc-data 的绝对值更接近重力,我尝试给它们赋予更大的权重,这很好,但仍然不如实际的重力传感器。

出于兼容性原因,我建议尽可能对重力使用低通滤波器,因为仍然不是每个智能手机都有陀螺仪或提到的传感器。

关于android - android "linear acceleration"的准确性与加速度计的手动处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216985/

相关文章:

ios - 使用CMDeviceMotion获取绝对旋转?

python - 使用 Python 分析大量传感器数据

android - 如何检查字符串是否只有指定字符之一?

Android 开发 - 使用 ArrayList<String> 与带 ArrayAdapter 的字符串数组

Android:SensorManager.getRotationMatrix 和 SensorManager.getOrientation() 的算法

c++ - 如何对陀螺仪数据进行离散积分?

python - 心电信号滤波

android - 使用录音机录制音频,然后将其上传到服务器android

android - RecyclerView overdraw 项目

java - 如何制作一个完美的延迟时间,使其只计算一次