4

我一直在使用三星 Galaxy S3 开发一个使用气压计估计用户高度的应用程序。我使用 SensorManager.getAltitude(p0, p),并设置 p0 等于最近机场报告的海平面压力。我设置 p 等于气压计返回的值。

不幸的是,返回的高度系统性地比实际高度高出 20 米左右。我确定气压计返回的压力值太低,因此 SensorManager.getAltitude 正在返回更高的高度。为了证明这一点,我什至开车去了一个机场,从那里我得到了海平面压力,并将我的手机与跑道齐平。

在检查气压计的精度时(使用 SensorEvent 的精度字段),它返回值为零,表示“传感器不可信”或“需要校准”(https://developer.android.com/参考/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE)。

具体来说,我的问题是:

  1. 这是正常的吗?我没有其他带气压计的设备,所以无法检查。手机如何确定其传感器“不可信”?

  2. 有什么方法可以校准传感器吗?理想情况下,我可以检查用户气压计的准确性,然后对其进行校准(假设我知道气压值偏离了多少)。

4

1 回答 1

0

我用于校准的方法是调整 P0 以使高度与校准点的已知高度相匹配。我使用各种方法来获取已知高度,但最自动的是获取 gps 位置,然后使用其中一种在线服务来查找高度。

使用这种方法,我不必太担心气压计的绝对精度。如果压力总是高出 0.5%,那就不重要了。只要我能在静止时获得相对稳定的读数,我就很高兴。我应用了各种过滤,尤其是在计算累积上升和下降数字时,我认为这是我为用户收集的最重要的统计数据。

于 2013-07-26T09:03:04.583 回答