2018년 1월 24일 수요일

Rodrigues's rotation 공식

1. Rodrigues's rotation 공식이란



- u 는 단위 벡터로 길이가 1이다
- v 는 회전시킬 벡터로 u가 회전축이된다. 여기선 오른손 좌표계를 쓸것이므로 회전축 u의 관점에서 봤을때 v는 θ 만큼 반시계 방향으로 회전한다.
- a 는 u에 v가 사영한 벡터이다.
- b 는 u에 직각인 어느 벡터에 v가 사영한 벡터이다. 즉 a+b = v 다.
- w 는 u x v 의 결과이다(외적). 오른손 좌표계이기 때문에 위와같은 방향을 가진다.

위와 같은 조건으로 벡터들이 놓여있을때, u를 회전축으로 보고 v를 θ만큼 회전한 결과 v_rot



로 표현된다.

2. 증명 


위와같이 벡터 a, b, v가 놓였을때 a, b, v의 길이가 같다면



v는 위와같이 표현된다.  즉 v = ta + kb 에서 스칼라값 t = cosθ 이고 k = sinθ 란 것이다. 왜냐하면



직선에 대한 사영공식에 따라 vab에 사영한 결과는 위와 같고




위에 언급했듯 a, b, v의 길이는 같으므로 결국



가 되기 때문이다. 당연하지만 둘은 사영된 결과와 같기때문에 더하면 v가 된다. 이제 위의 사실을 알았으면 다시 아래의 그림으로 넘어와


wb의 길이가 같은지를 증명해야된다. 만약 wb의 길이가 같다면 bw의 평면에 사영된 v_rotp라 한다면 p = bcosθ+wsinθ 일것이고 v가 회전시에 vu에 사영한 결과인 a는 변함이 없으므 결국 v_rot = a + bcosθ+ wsinθ 일것이다. ( v가 사영된 결과인 p는 당연히 b 와 길이가 같다. 애초에 bv가 사영한 결과이다.)



그런데 위 결과에서 보다시피 u x v 는 사실 u x b와 같다. ( ua의 각도는 0 이므로 u x a 의 결과는 0 이다 ) 그리고



u는 길이가 1인 단위벡터이고 sin π/2는 1이기 때문에 결국




가 된다. 그래서 위의 결과들을 정리하면




Rodrigues's rotation 공식이 나오게 된다.





댓글 없음:

댓글 쓰기