Android 用带低通滤波器的线加速度计计算G力减速度
全部 所以基本上我是在用加速计来计算重力加速度。为此,我决定使用带有低通滤波器的Android 用带低通滤波器的线加速度计计算G力减速度,android,accelerometer,Android,Accelerometer,全部 所以基本上我是在用加速计来计算重力加速度。为此,我决定使用带有低通滤波器的线性加速度计(因为我将测试汽车的驾驶行为) 可在此处找到实现代码: 现在我得到x,y,z值。我要做的是使用以下公式计算G力: sqrt(x*x + y*y + z*z) / 9.8 无论何时我走路,我都会得到0.3到0.6克的力,但我不确定这是否是计算力的正确方法。 我试着试驾,每当我急刹车时,我都不能得到负加速度(当我急刹车时,我应该得到的)。而且,获得0.3-0.6 G的力量不是太多吗 我觉得计算过的力太大了
线性加速度计(因为我将测试汽车的驾驶行为)
可在此处找到实现代码:
现在我得到x,y,z值。我要做的是使用以下公式计算G力:
sqrt(x*x + y*y + z*z) / 9.8
无论何时我走路,我都会得到0.3到0.6克的力,但我不确定这是否是计算力的正确方法。
我试着试驾,每当我急刹车时,我都不能得到负加速度(当我急刹车时,我应该得到的)。而且,获得0.3-0.6 G的力量不是太多吗
我觉得计算过的力太大了。这是真的吗?我的解决方案中缺少什么吗
一般的想法是,不仅要捕捉加速度,还要捕捉减速,这应该是负值。我觉得计算的力太大了
看起来你需要一些方法来检查和校准。是否可以将加速计倾斜90度?你应该得到一个精确的1G绝对读数
如果x+y+z的和为负数,可能在此之后您可以更改sqrt结果的符号。sqrt(x*x+y*y+z*z)
产生一个幅值。它不可能是消极的sqrt()
无法返回负数。你需要测量相对于某个轴的加速度。请参阅。@greeble31感谢您指出我的公式产生了一个量级。从你的链接我了解到我需要的是水平加速度?好的,这包括sqrt(),它仍然会导致非负数,对吗?也许小示例代码可以帮助我更好地理解。抱歉,这是一个漫长的夜晚,hahaThat链接不会直接解决您的问题;我理解。我没有任何好的例子能准确地告诉你你在寻找什么。我的建议是,当你用手移动手机时,将x/y/z加速度值转储,并尝试了解它们的确切含义。这只是你必须解决的许多问题中的第一个问题。我不知道你的库是在设备坐标系还是世界坐标系下产生加速度。如果坐标系不合适,您可能必须立即放弃该库。祝你好运