安卓系统:如何应对不准确的气压计?

4

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

不幸的是,返回的高度比实际高度高了大约20米。我确信气压计返回的压力值太低,因此SensorManager.getAltitude返回更高的高度。我甚至开车去过一次机场,获取海平面气压值,并将我的手机放置在跑道上,以证明这一点。

检查气压计的准确性(使用SensorEvent的accuracy字段)时,它返回零,这意味着“传感器不可靠”或“需要校准” (https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE)。

具体来说,我的问题如下:

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

  2. 是否有任何方法可以校准传感器?理想情况下,我可以检查用户的气压计的准确性,然后进行校准(假设我知道气压值的偏差有多大)。

1个回答

0
我用的校准方法是调整P0,使海拔与校准点处的已知海拔相匹配。我使用各种方法来获取已知高度,但最自动化的方法是获取GPS位置,然后使用在线服务之一来查找高度。

采用这种方法论,我不必太担心气压计的绝对精度。如果气压计始终高出0.5%,那并不重要。只要在静止时可以获得相对稳定的读数,我就很满意。我应用各种过滤器,特别是在计算累积上升和下降数字时,这些数字是我为我的用户收集的最重要的统计数据。


嗨!谢谢你的回答。我对此的问题是,如果返回值不是1.005*实际压力,而是比实际压力高0.6英寸汞柱怎么办?使用你的解决方案处理前者通常会得到良好的高度;但在后者上使用它将导致测量高度在更高的高度偏离。一旦系统告诉你“传感器不能被信任”,你如何知道误差会如何表现?你的答案是一个很好的补丁,但我希望有些东西可以理想地修复传感器的校准。也许这种方法不存在。 - Probity
我拥有很多使用压力传感器手机的用户,并且没有收到任何关于此方面的具体投诉。自己去年也没有适当测试过高度。我确实让用户意识到气压高度的不确定性,但他们中的大多数人都明白,尤其是在你需要了解上升和下降情况时,它比GPS更好。如果您想要更准确的数据,则需要将温度和相对湿度输入计算中,这在我了解的规格中可能在S4上实现。 - Ifor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接