Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解释android加速计值以获取手机';真实世界中的s轴平移_Java_Android_Accelerometer_Direction_Acceleration - Fatal编程技术网

Java 解释android加速计值以获取手机';真实世界中的s轴平移

Java 解释android加速计值以获取手机';真实世界中的s轴平移,java,android,accelerometer,direction,acceleration,Java,Android,Accelerometer,Direction,Acceleration,我确实搜索了一下,但找不到答案;在解释android加速计值时,如何将这些值转换为沿X/Y/Z轴的真实手机转换 我希望这是有意义的-我只是不能确切地掌握我们如何摆脱重力?我们需要吗 我在想,如果我们取加速度计返回的三维矢量的大小,它应该是9.8或更大,然后我们减去重力,得到实际的加速度大小。但是,由于手机的运动+重力方向分布在所有3个轴上,加速计事件返回的矢量会不准确吗 请帮忙 谢谢免责声明:我不知道任何安卓系统的细节,它可能也是特定于手机的。我只是从物理背景讲的 您需要将加速度积分到速度,并将

我确实搜索了一下,但找不到答案;在解释android加速计值时,如何将这些值转换为沿X/Y/Z轴的真实手机转换

我希望这是有意义的-我只是不能确切地掌握我们如何摆脱重力?我们需要吗

我在想,如果我们取加速度计返回的三维矢量的大小,它应该是9.8或更大,然后我们减去重力,得到实际的加速度大小。但是,由于手机的运动+重力方向分布在所有3个轴上,加速计事件返回的矢量会不准确吗

请帮忙


谢谢

免责声明:我不知道任何安卓系统的细节,它可能也是特定于手机的。我只是从物理背景讲的

您需要将加速度积分到速度,并将速度积分到位移(位置)

你会受到积分漂移的影响。每次积分时,都会引入一个积分常数。多重积分加剧了这一错误

你还需要担心角加速度。 也就是说,当手机旋转,但保持在相同的物理位置时会发生什么

有一些方法可以帮助减少这些错误源

如果有多个加速度计,您可以比较它们,以尝试确定任何角度分量

如果有陀螺仪,你可以用陀螺仪来抵消角度分量

如果指南针足够精确,可以尝试至少取消水平面中的组件

GPS可用于尝试消除位移积分误差。 当GPS显示停止时,将积分常数归零

你需要开始研究数值积分和滤波算法。 如果没有硬件加速,这可能在计算上很昂贵

在这一点上,你真的需要开始问自己,你的问题真的需要精确的位移测量吗?GPS位移是否足够?你能只用加速就达到同样的效果吗

您应该尝试阅读以下内容:


谢谢!嗯,GPS太宽了,我想捕捉大约1米范围内的运动(这是最大值),可能是在封闭区域内。问题-如果有两个力作用在加速计上:我的手移动加速计和重力-我如何解释加速度矢量?我可以从星等中减去重力,但我想我需要知道哪条路是“向下的”?没有额外的传感器我能做到吗?顺便说一下,我认为我只需要速度(少一个积分),累积误差根本不是问题;我只需要运动方向的粗略速度…为什么你甚至需要减去重力呢?当您尝试测量位移时,您的设备是否处于自由落体状态?如果不是,那么它所附的任何物体(你的手、桌子、口袋)都会施加一个相等的相反的力;牛顿第三定律。编辑您的原始问题,并更具体地说明您试图完成的任务,以便我们知道您实际需要什么。一旦你试图推导速度和位移,累积积分误差就是整个问题。加速计甚至不能告诉你你停止了,只是你没有加速。丹,作用在设备上的加速力分布在X、Y和Z轴上。如果只是重力作用在设备上,并且它位于工作台上,则Z轴报告重力拉力。如果我把手机滑到一边——代表加速度的X、Y和Z矢量的大小会更大,但力的方向矢量会在重力和我手的力之间插值。这使得很难得到加速度的方向,特别是重力可以作用在任何轴上(取决于手机的方向)。因此,我希望重力从方程中消失。坦率地说,丹,我想我在问一些不可能的问题。在给定加速度矢量的情况下,无法将重力与作用在装置上的其他力区分开来。我想我可能需要寻找其他方法来完成我想做的事情。。谢谢你的帮助!在没有其他传感器帮助的情况下,最好的方法是假设设备在移动时将保持相对固定的方向。当您确定设备“未移动”时,您将加速计数据归零。只需记录XYZ分量,并继续从所有后续读数中减去它们,直到您确定您不再“移动”,然后重复。您需要确定什么是“不移动”,因为不清楚您计划如何使用速度/位移。(即移动的汽车、移动的地球、移动的太阳系、移动的星系、膨胀的空间/宇宙)…续