Android上加速度计、陀螺仪和磁力计之间样本数量不均问题

5
我正在开发一款Android应用程序,它记录智能手机上的惯性数据,并进一步处理该数据。不同的Android设备根据固件与Android接口的惯性传感器有不同的行为,这是显而易见的。然而,我无法回答的一个问题是,为什么只有moto g 2nd gen在录制应用时,显示出的传感器样本数量明显不同?
例如,录制几秒钟,我看到:
~6000个陀螺仪样本
~5200个加速度计样本
~2000个磁力计样本
同样假设我记录的活动会影响所有传感器,并且我期望onSensorChange功能被平均调用。这对我试过的每个其他智能手机都发生了(5或6个不同的智能手机)。
你有什么建议吗?为什么磁力计似乎大多数情况下不像其他传感器那样经常更改值以记录onSensorChange?
很明显,答案是由于固件,但你有没有任何想法来缓解我所看到的效果?
谢谢!
1个回答

2
这个问题很久了,但我觉得为了社区的利益还是回答一下:
我在一家专注于智能手机传感器处理的初创公司担任应用程序开发人员。我们有几个第二代Moto G手机,并且发现它们在单个传感器以及跨传感器提供均匀采样率方面的表现非常糟糕。
为了缓解这些问题,我们每次从加速度计获得样本时都会一次性写入一整行最新数据的样本。如果自上次加速度计样本以来其他传感器没有收到新的样本,则相同的值会打印两次。
例如:
Accel (3-axis) | Gyro (3-axis)
0,0,0|0,0,0
<new accelerometer sample>
1,1,1|0,0,0
<5 gyro samples and 1 accelerometer>
2,2,2|5,5,5
...

无论如何,希望这能帮助到一些人!

总结一下:第二代Moto G在一个传感器和多个传感器之间的采样率不一致。


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