鉴于加速度计的加速度,如何模拟模块的空间位置?

时间:2016-11-22 13:35:55

标签: java modeling java-3d orbital-mechanics grovepi+

我正在获取grove pi模块的3dimensional值, acc_vector =(accX,accY,accZ)  每100毫秒。 我想要的是,使用java,diplaying我用模块做的运动...但我的问题不是如何显示它:p

为此我需要计算位置的值 position_vector =(x,y,z) 对应于加速度值。但我不清楚如何做到这一点。

这是我尝试过的,但它总是给出奇怪的结果(初始位置,速度和加速度是(0,0,0)):

  • service.GetService<IContentService>().SaveAndPublishWithStatus(item);
  • position_vector = 0.5f*acc_vector*t;
  • position_vector += acc_vector;

1 个答案:

答案 0 :(得分:1)

这取决于您想要如何插值加速度。最简单(但可能最不准确)的是假设样本之间的持续加速。在这种情况下,x组件的代码应该类似于

position[0] += velocity[0] * timeStep + 0.5 * acceleration[0] * timeStep * timeStep;
velocity[0] += acceleration[0] * timeStep;

您必须对yz组件执行相同的操作。

要获得更准确的结果,您可能需要更复杂的技术。您可以查找Runge-Kutta等数值方法。