로드리게스 회전에 대한 기하학적 이해
로드리게스 회전은 3차원 공간상의 물체의 회전을 회전축과 그 각도로 설명합니다. 아래 그림은 단위 벡터인 회전축 n 과 벡터 v, 그리고 v 가 n 에 대해 θ 만큼 회전한 벡터 v′ 를 보여주고 있습니다.
회전된 벡터 v′ 는 아래와 같이 두가지 성분으로 분해할 수 있습니다.
식 v′=v′∥n+v′⊥n 에서 v′∥n 는 회전하기 이전의 벡터 v 의 n 에 대한 투영인 v∥n 와 같습니다. 따라서 v′=v∥n+v′⊥n 입니다.
v′ 의 n 에 대한 직교 투영인 v′⊥n 을 구하기 위해 아래 그림을 살펴보겠습니다.
벡터 v′⊥n 은 두가지 성분으로 분해할 수 있습니다. ∥v′⊥n∥=∥v⊥n∥ 이고 v′⊥n 의 가로 성분은 아래와 같이 쓸 수 있습니다.
vhorizontal′⊥n=∥v⊥n∥cosθ⋅∥v⊥n∥v⊥n=v⊥ncosθ
세로 성분을 구하기 전에 n×v 를 생각해 보겠습니다. n×v 의 방향은 v⊥n 에 수직이고 ∥n×v∥=∥n∥∥v∥sinϕ=∥v∥sinϕ 이므로 v⊥n 와 크기가 같습니다.
∥v′⊥n∥=∥n×v∥ 이고 세로 성분은 아래와 같이 쓸 수 있습니다.
vvertical′⊥n=∥n×v∥cos(90−θ)⋅∥n×v∥n×v=(n×v)sinθ
v′⊥n 의 가로와 세로 성분을 이용해 다음과 같이 쓸 수 있습니다.
v′⊥n=v⊥ncosθ+(n×v)sinθ
종합하면 v′=v∥n+v⊥ncosθ+(n×v)sinθ 이고 이를 다음과 같이 정리할 수 있습니다.
v′=v∥n+v⊥ncosθ+(n×v)sinθ=v∥n+(v−v∥n)cosθ+(n×v)sinθ=(1−cosθ)v∥n+vcosθ+(n×v)sinθ=(1−cosθ)n⋅nv⋅nn+vcosθ+(n×v)sinθ=(1−cosθ)(v⋅n)n+vcosθ+(n×v)sinθ
로드리게스 회전 행렬
로드리게스 회전 식 v′=(1−cosθ)(v⋅n)n+vcosθ+(n×v)sinθ 을 이용해 회전 행렬을 구해보겠습니다. 회전 식은 아래와 같이 다시 쓸 수 있습니다.
v′=(1−cosθ)nnTv+cosθ v+sinθ (n×v)
먼저 n×v 을 행렬-벡터 곱셈으로서 표현해 보겠습니다.
n×v=⎣⎢⎡nyvz−nzvynzvx−nxvznxvy−nyvx⎦⎥⎤=⎣⎢⎡0nz−ny−nz0nxny−nx0⎦⎥⎤⎣⎢⎡vxvyvz⎦⎥⎤
위 식에서 행렬 ⎣⎢⎡0nz−ny−nz0nxny−nx0⎦⎥⎤ 을 K 라 하고 K2 을 구해보겠습니다.
K2=⎣⎢⎡0nz−ny−nz0nxny−nx0⎦⎥⎤⎣⎢⎡0nz−ny−nz0nxny−nx0⎦⎥⎤=⎣⎢⎡−nz2−ny2nxnynxnznxny−nz2−nx2nynznznxnynz−nx2−ny2⎦⎥⎤
K2 의 형태를 자세히 보면 다음과 같이 다시 쓸 수 있습니다.
K2=⎣⎢⎡nx2−1nxnynxnznxnyny2−1nynznznxnynznz2−1⎦⎥⎤=nnT−I(∵nx2+ny2+nz2=1)
위 식에 의하면 nnT=K2+I 입니다.
nnT=K2+I 와 n×v=Kv 을 이용해 v′=(1−cosθ)nnTv+cosθ v+sinθ (n×v) 을 다시 정리해보겠습니다.
v′=(1−cosθ)nnTv+cosθ v+sinθ (n×v)=((1−cosθ)(K2+I)+cosθ I+sinθ K)v
따라서 v 를 회전축 n 에 대해 θ 만큼 회전시키는 것은 v 에 아래 행렬을 곱하는 것과 같습니다.
(1−cosθ)(K2+I)+cosθ I+sinθ K=I+(1−cosθ)K2+sinθ K
참고