Wayhome Chen
2018-11-29 13:55
采纳率: 100%
浏览 2.5k
已采纳

手机加速度传感器测得的重力加速度数值不正常

本人手机是小米5S plus,在玩加速度传感器时发现所测重力加速度不正常,数值不在9.8左右,
而是24左右!不知是单位的问题还是传感器的问题?
以下是手机水平朝上放置时的截图:
图片说明
本人没有C币,各位大爷行行好,谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 风中之哨 2019-11-29 17:09
    已采纳

    你做的APP中画蛇添足了不需要的算法,驱动上报的数据已经是校准后的正确值了,你什么都不要做,拿来用就好了。以下内容可以参考:来自https://source.android.com/devices/sensors/sensor-types

    加速度计

    报告模式:连续模式

    getDefaultSensor(SENSOR_TYPE_ACCELEROMETER) 会返回一个非唤醒传感器

    加速度计传感器可报告设备沿 3 个传感器坐标轴的加速度。测量的加速度包括物理加速度(速度变化)和重力加速度。测量结果在 sensor_event_t.acceleration 的 x、y 和 z 字段中报告。

    所有值均采用国际单位制单位 (m/s^2),测量结果为设备加速度减去沿 3 个传感器坐标轴的重力加速度。

    示例如下:

    自由落体时,(x, y, z) 的范数应接近于 0。
    当设备平放在桌子上并从其左侧向右推动时,x 轴加速度值为正。
    当设备平放在桌子上时,z 轴上的加速度值为 +9.81,相当于设备的加速度 (0 m/s^2) 减去重力加速度 (-9.81 m/s^2)。
    当设备平放在桌子上并向上抬起时,加速度值大于 +9.81,相当于设备的加速度 (+A m/s^2) 减去重力加速度 (-9.81 m/s^2)。
    

    读数根据以下参数进行校准:

    温度补偿
    在线偏差校准
    在线尺度校准
    

    仅当传感器已禁用时,才可更新偏差校准和尺度校准,以避免流式传输时出现值激增。

    加速度计还通过 sensors_event_t.acceleration.status 报告其预测的读数精度。要详细了解此字段的可能值,请参阅 SensorManager 的 SENSOR_STATUS_* 常量。

    点赞 打赏 评论
  • dabocaiqq 2018-11-29 17:21
    点赞 打赏 评论
  • Wayhome Chen 2018-11-30 12:11

    我去掉抵消重力的逻辑(滤波器法,迭代计算,alpha=0.8)后,改回原来的逻辑——输出原始数据,但是:

    图片说明

    它居然自己变正常了!是不是加速度传感器它自己会校准?

    点赞 打赏 评论

相关推荐 更多相似问题