2016-11-22 6 views
1

grove pi 모듈의 3dimensional 값을 얻고 있습니다. acc_vector = (accX, accY, accZ) 각 100 밀리 초. 내가 원하는이며, 나는 모듈을 만드는 움직임을 diplaying, 자바를 사용하여 ...하지만 내 문제는 표시하는 방법을되지 않습니다 : P가속도계의 가속도가 주어지면 모듈의 공간에서 위치를 모델화하는 방법은 무엇입니까?

이를 위해 나는 위치 position_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);
+1

당신은 이것의 뒤에있는 물리학을 이해합니까? 가속도, 속도 및 위치 간의 관계? – bradimus

+0

그래, 나는 그들을 이해할 것 같아.하지만 가속이 우리가 파생시킬 수있는 적절한 함수가 아닌 경우 위치 값을 찾는 방법을 이해할 수 없다. 가속 값은 시간 제한적인 값이다. 만약 당신이 어떤 해결책이나 힌트를 가지고 있다면, 나는 정말로 행복 할거야 .... –

+0

그리고 당신이 내가 뭔가를 이해하지 못한다고 생각한다고해도, 나를 도울 수 있겠 니? –

답변

1

가속도를 어떻게 보간 할 것인가에 따라 다릅니다. 가장 쉽지만 (아마도 가장 정확하지는 않지만) 샘플간에 일정한 가속을 가정하는 것입니다. 그 상황에서, x 구성 요소에 대한 코드는

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

당신은 yz 구성 요소에 대해 동일한 작업을 수행해야 할 것이다 유사합니다.

보다 정확한 결과를 얻으려면보다 정교한 기술이 필요할 수 있습니다. Runge-Kutta과 같은 숫자 방법을 조회 할 수 있습니다.

+1

고맙습니다 :) 당신은 내 하루를 보냈습니다. –

+0

Runge-Kutta 또는 단일 단계 방법은 가속이 일반 샘플 지점에서만 제공되는 경우별로 도움이되지 않습니다. 당신은 (상대적으로) 임의의 상태에서 가속도를 평가할 수 있어야합니다. 더 높은 오류 오더를 얻으려면 ** 다단계 방법 ** ([Adams-Bashforth 방법] (https://en.wikipedia.org/wiki/Linear_multistep_method#Adams.E2.80.93Bashforth_methods))이 있습니다. – LutzL

관련 문제