2016-12-02 1 views
0

쿼터니언을 사용하여 방향을 출력하는 IMU 센서가 있습니다. 먼저 표면에 평평하게 놓고 쿼터니온 (q_rest)을 검색합니다. 그런 다음 임의의 방향으로 회전을 시작합니다. 나는 그것이 y 축을 중심으로 90도에 도달했을 때를 알고 싶다. 그래서 q_target(cos (pi/4) 0 sin (pi/4) 0)과 같습니다. 내 센서의 방향이 내가 q_tq_target 사이의 상관 관계를 확인할 수있는 방법을 q_t 경우 주어진 시간 t에서강체의 방향이 목표 방향에 접근했는지 확인하는 방법

?

즉, 센서를 돌리는 사용자, 얼마나 더 회전하고 어느 방향으로 사용자에게 알려야합니까?

이미 무엇을 했습니까?

나는 회전 q_target의 벡터와 q_t WRT q_rest의 벡터를 계산했습니다. 그런 다음이 두 벡터 사이의 각도를 확인했습니다. 그러나 이것이 쿼터니언의 순환 벡터에 대한 나의 이해가 잘못되었다고 믿는 것은 효과가없는 것 같습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

1

다음과 같이 문제를 공식화 할 수

q_t * q_diff = q_target 

는 표현 q_diff을할지 여부에 따라 :

당신은 당신이 q_target에 도착하도록, 현재 방향으로 회전 q_diff을 적용 할 로컬 또는 글로벌 시스템의 경우 q_diff * q_t을 사용할 수도 있습니다. 분명히 그런

:

q_diff = q_t^(-1) * q_target 

q_diff은 기본적으로 다음 목표 회전까지의 거리입니다. 각도 구성 요소를 사용하여 얼마나 멀리 있는지 결정하고 축 구성 요소를 사용하여 회전해야하는 방향을 결정하십시오.

물론 사용자가 가장 익숙한 다른 표현으로 q_diff을 변환 할 수 있습니다.

관련 문제