我有从Android手机上计算出来的传感器数据。我使用xyz坐标上的矩阵进行转换。然后,我用手机得到的加速度来求出速度和位移。这是我用来求位移和速度的代码。它始终是对应的前一个值:
velocity[e] = (accel[e-3]) * (time[i]-time[i-1])+velocity[e-3];
velocity[e+1] = (accel[e-2]) * (time[i]-time[i-1]) +velocity[e-2];
velocity[e+2] = (accel[e-1]) * (time[i]-time[i-1])+ velocity[e-1];
displacement[e] = (velocity[e-3])*(time[i]-time[i-1])+.5*(accel[e-3])*pow((time[i]-time[i-1]),2) + displacement[e-3];
displacement[e+1] = (velocity[e-2])*(time[i]-time[i-1])+.5*(accel[e-2])*pow((time[i]-time[i-1]),2) + displacement[e-2];
displacement[e+2] = (velocity[e-1])*(time[i]-time[i-1])+.5*(accel[e-1])*pow((time[i]-time[i-1]),2) + displacement[e-1];然而,我得到了像-3436.0,19206.2,11373.5这样的位移数字,这应该不是很高。我甚至制作了一个测试文件来测试我的公式,从我得到的数字来看,一切都是正确的。然而,对于真实数据,它的工作原理并不相同。另外,我读到了一些关于从加速度,速度和位移中去掉平均值的内容,但我不太理解,所以有人能解释一下获得正确数字的解决方案吗?
发布于 2012-07-02 04:27:23
It won't work,这些传感器不够精确,无法计算位置。
令人惊讶的是,这个问题被提到了多少次。
https://stackoverflow.com/questions/11285227
复制相似问题