java - 给定加速度计的加速度,如何对模块的空间位置进行建模?

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

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

为此我需要计算位置的值 位置 vector = (x,y,z) 对应于加速度值。但我不知道该怎么做。

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

  • position_vector = 0.5f*acc_vector*t;
  • position_vector += acc_vector;
  • position_vector = acc_vector*(t-t_just_before);

最佳答案

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

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

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

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

关于java - 给定加速度计的加速度,如何对模块的空间位置进行建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40743266/

相关文章:

algorithm - 如何定位相机以使我的主要对象完全可见并适合屏幕?

Java Swing 应用程序,对话框检查范围内的数字

java - Java中在一行中间打印一个单词

java - 模拟的模拟 Actor

data-structures - 数据结构 3D 建模

database - 数据仓库 : Modelling a future schedule

Java3D 宇宙大小太小,无法容纳对象

java char 变量的字符串迭代

java - 在我们开始我们的移动+服务器项目之前,您能发表评论吗?

java - Java 3D 中的元胞自动机