java-解释android加速度计值以获取沿真实世界中的轴的电话平移
作者:互联网
我进行了搜索,但是找不到答案.解释android加速度计值时,如何将这些值沿X / Y / Z轴转换为现实世界中的电话转换?
我希望这是有道理的-我只是无法确切掌握如何摆脱重力?我们需要吗?
我在考虑是否要使用加速度计返回的3D矢量的大小-等于9.8或更大,然后减去重力以获得实际的加速度大小.但是由于手机重力方向分布在所有3个轴上,因此加速度计事件返回的矢量会不准确…
请帮忙!
谢谢
解决方法:
免责声明:我不知道任何Android细节,它可能也针对手机.我只是从物理学背景讲.
您将需要将加速度与速度集成,并将速度与位移(位置)集成.
您将遭受积分漂移的困扰.每次集成时,都会引入一个集成常数.多次集成使此错误更加严重.
您还需要担心角加速度.
即.旋转听筒但保持在相同的物理位置会发生什么?
有多种方法可以减少这些错误源.
如果有多个加速度计,可以将它们进行比较,以尝试确定任何角度分量.
如果有陀螺仪,则可以使用陀螺仪来消除角度分量.
如果指南针足够准确,则可以尝试至少取消水平面中的分量.
GPS可用于尝试消除位移积分误差.
当GPS指示您停止时,将积分常数清零.
您将需要开始研究数值积分和滤波算法.
没有硬件加速,这可能在计算上很昂贵.
在这一点上,您真的真的需要开始问自己,您的问题真的需要精确的位移测量吗? GPS位移足够吗?仅加速就能达到相同的结果吗?
您应该尝试阅读以下内容:
http://en.wikipedia.org/wiki/Inertial_navigation_system
标签:direction,acceleration,accelerometer,java,android 来源: https://codeday.me/bug/20191102/1995025.html