Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 给定加速度计的加速度,如何建模模块在空间中的位置?_Java_Modeling_Java 3d_Orbital Mechanics_Grovepi+ - Fatal编程技术网

Java 给定加速度计的加速度,如何建模模块在空间中的位置?

Java 给定加速度计的加速度,如何建模模块在空间中的位置?,java,modeling,java-3d,orbital-mechanics,grovepi+,Java,Modeling,Java 3d,Orbital Mechanics,Grovepi+,我得到了grove pi模块的三维值, acc_向量=(accX、accY、accZ) 每100毫秒。 我想要的是,使用java,演示我对模块所做的移动…但我的问题不是如何显示它:p 为此,我需要计算位置的值 位置向量=(x,y,z) 对应于加速度值。但我不知道怎么做 这是我尝试过的,但它总是给出奇怪的结果(初始位置、速度和加速度为(0,0,0)): position_vector=0.5f*acc_vector*t 位置向量+=acc向量 position\u vector=acc\u ve

我得到了grove pi模块的三维值, acc_向量=(accX、accY、accZ) 每100毫秒。 我想要的是,使用java,演示我对模块所做的移动…但我的问题不是如何显示它:p

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

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

  • position_vector=0.5f*acc_vector*t
  • 位置向量+=acc向量
  • position\u vector=acc\u vector*(t-t\u就在前面)

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

position[0] += velocity[0] * timeStep + 0.5 * acceleration[0] * timeStep * timeStep;
velocity[0] += acceleration[0] * timeStep;
您必须对
y
z
组件执行相同的操作


为了得到更准确的结果,您可能需要更复杂的技术。你可以查阅数值方法,例如。

你了解这背后的物理原理吗?加速度、速度和位置之间的关系?是的,我想我理解它们。但是当加速度不是我们可以推导的适当函数时,我不理解如何找到位置值。这里的加速度值只是准时值。如果你有一些解决方案或提示,我会非常高兴……即使你认为我不懂什么,你能帮我一下吗?什么类型的
位置向量
?这是一个
双[]
?A
javax.vecmath.Vector3d
?我所有的向量都是表:float[3]。如果只在常规采样点提供加速度,龙格-库塔法或单步法不会有多大帮助。您需要能够评估(相对)任意状态下的加速度。您可以使用显式多步骤方法()来获得更高的错误顺序。