Android线性加速度计的值在多种设备上是不同的
我正在开发 Android 导航应用程序,它使用复杂的传感器来确定位置变化。在某些情况下,设备暂时无法接收 GPS 信号(隧道或多层停车场),我想使用 INS 方法来补偿这些差距。
是的,我知道还有其他方法,例如小区 ID 或从设备运营商获取的数据,但目前我专注于传感器。
嗯,INS 方法可以分为两大任务:
1.姿态确定(陀螺仪或加速度计+磁力计或某种组合)
2.速度和距离计算。在这里,我对线性加速度计值进行了双重积分。
现在我尝试解决第二个任务。 我准备了所有计算并对不同 Android 设备上的线性加速度计获得的数据进行了对比分析:Sensation、Motorola Xoom 和 Nexus S。我将所有设备放在一个平台上,并以 Y 轴加速度在 8 个平面上移动平台。
之后我构建了图形,它们真的让我很困惑 - 所有 3 个图形都有相同的幅度,但峰值不同。
例如,在同一时刻,我在 Xoom 上的速度为 0.2 m/s^2,在 Sensation 上的速度为 1.2 m/s^2。
因此经过计算,我的距离相差很大。
官方文档没有解释。我上网浏览但没有找到有关该问题的任何答案。
所以我的问题是:有人面对它吗?或者也许您知道可以帮助我解决问题的建议?
另外,android Sensor类的参数很少。我发现 Sensation 和 Xoom 有不同的 RESOLUITON 值 - Sensor.getResolution()。
感觉 - 1.0
Xoom - 0.009576807
我很喜欢它,所以任何帮助都会非常好! 提前致谢。
I'm working on Android navigation app which uses complex of sensors to determine position changes. In some cases device cannot achieve GPS signal for a while (tunnel or multilevel parking) and I want to compensate these gaps using INS approach.
Yes I know that there're another approaches like cell-id or data got from device's carrier, but currently I'm focused on sensors.
Well, INS approach can be divided into two big tasks:
1. attitude determination (gyro or accelerometer + magnetometer or some combination)
2. velocity and distance calculation. Here I double integrate linear accelerometer values.
Now I try to resolve the second task.
I prepared all calculation and made contrastive analysis of data got from linear accelerometer on different Android devices: Sensation, Motorola Xoom and Nexus S. I put all devices on a platform and moved the platform on 8 meeters with an acceleration on Y axis.
After that I built graphics and they really confused me - all 3 graphics has the same amplitude but peak values are different.
For example at the same moment I have 0.2 m/s^2 on Xoom and 1.2 m/s^2 on Sensation.
Hence after calculation I had a big difference in distance.
Official documentation doesn't explain it. I surfed the web but didn't find any answer about that issue.
So my question is: did someone faced to it? Or maybe you know an advice which will help me to solve it?
In addition, android Sensor class has few parameters. I found that Sensation and Xoom has different RESOLUITON values - Sensor.getResolution().
Sensation - 1.0
Xoom - 0.009576807
I'm stack with it, so any help will be really good!
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法使用 MEMS 传感器解决第二个任务。
您需要一个光纤陀螺仪 或 环形激光陀螺仪来解决你的第二个任务。
尽管我在上面链接的答案中讨论了计算位置,但速度也是如此。
You cannot solve your second task with MEMS sensors.
You would need a fibre optic gyroscope or a ring laser gyroscope to solve your second task.
Although I talk about calculating position in the above linked answer, the same holds for velocity.