本人手机是小米5S plus,在玩加速度传感器时发现所测重力加速度不正常,数值不在9.8左右,
而是24左右!不知是单位的问题还是传感器的问题?
以下是手机水平朝上放置时的截图:
本人没有C币,各位大爷行行好,谢谢!
你做的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_* 常量。
https://zhidao.baidu.com/question/583557554.html
我去掉抵消重力的逻辑(滤波器法,迭代计算,alpha=0.8)后,改回原来的逻辑——输出原始数据,但是:
它居然自己变正常了!是不是加速度传感器它自己会校准?