회전 행렬은 3차원 공간 상에서 물체나 좌표계를 회전시키기 위해 사용되는 선형 변환 행렬입니다. 주로 로봇공학, 컴퓨터 비전, 그래픽스 등에서 좌표 변환을 수행할 때 자주 사용됩니다.
아래는 회전 행렬의 수학적 성질을 정리한 내용입니다.
1. 회전 행렬은 정규 직교 행렬(orthogonal matrix)
정규 직교 행렬이란 다음 조건을 만족하는 행렬이다:
각 열벡터는 단위 벡터 (norm = 1)
서로 직교 (dot product = 0)
전치 행렬이 곧 역행렬 (RTR=I 또는 RRT=I)
예를 들어 다음 행렬을 보자.
R=[100−1]
이 행렬의 두 열 벡터는 [1,0]T, [0,−1]T이다.
이 벡터들은 단위 벡터이다.
서로 내적하면 1⋅0+0⋅(−1)=0이므로 직교한다.
전치 행렬이 곧 역행렬이다.
RTR=[100−1]T[100−1]=[1001]=I
따라서 이 행렬은 정규직교행렬이다. 이 성질은 회전 행렬뿐 아니라 반사 행렬도 포함하는 조건이다. 그러나 det = -1이면 반사, det = +1이면 회전이다.
2. 역행렬이 전치행렬(transpose)
R⊤R=RR⊤=I
이는 회전 행렬이 정규 직교 행렬(orthogonal matrix)이라는 것을 의미합니다. 즉, 회전 행렬의 열 벡터들은 서로 직교하며, 길이가 1입니다 (정규화됨). 이 성질에 의해:
회전 행렬의 역행렬은 전치행렬과 같고,
전치(transpose)를 이용하여 좌표계를 다시 원래 상태로 되돌릴 수 있습니다.
즉, 회전 후에 다시 원래의 위치로 돌아가려면 단순히 전치행렬을 곱하면 됩니다.
3. 전치 행렬이 역행렬인 이유
역행렬의 정의: 어떤 행렬 R에 대해 R−1R=RR−1=I를 만족하는 행렬이 존재.
정규직교행렬은 RTR=I이므로, 곧 RT=R−1가 성립.
이 뜻은, 열 벡터들이 서로 직교하고 정규화되어 있기 때문에 행렬의 전치 연산만으로도 원래의 변환을 되돌릴 수 있다는 것이다.
이는 기하학적으로 보면 회전을 시킨 뒤 다시 역회전을 적용했을 때 처음 위치로 돌아오는 것과 같다. 예를 들어 90도 회전을 시켰다면, -90도 회전(또는 270도 회전)을 적용하면 원래대로 돌아오게 된다. 이처럼 전치 연산은 회전 행렬의 역변환 역할을 한다.
4. 정규 회전 행렬의 행렬식(determinant)은 +1이다
정규직교행렬은 det(R)=±1을 만족.
det(R)=1: 순수 회전 행렬.
det(R)=−1: 반사(reflection)가 포함된 변환.
올바른 회전행렬은 길이와 각도뿐만 아니라 방향성(오른손 좌표계)을 보존해야 한다.
반면 det(R)=−1인 경우는 대칭 면을 기준으로 뒤집는 변환이 포함되므로 방향성이 반전된다.
예를 들어, 거울에 비친 영상은 원래 사물의 방향과 반대 방향으로 나타난다. 이런 변환은 반사 성분을 포함한 변환으로, 단순한 회전이라고 부를 수 없다. 따라서 방향성과 모양을 유지한 채 회전만을 수행하는 변환을 회전행렬이라고 정의할 때는 반드시 det(R)=+1이어야 한다.
결론적으로, 정규직교행렬 중에서도 det=+1인 행렬만이 순수한 회전이며, 이런 행렬들의 집합을 특별 직교군, 즉 SO(n)이라 부른다.
5. 회전 행렬은 Special Orthogonal Group SO(3)에 속한다
R∈SO(3)
여기서:
SO(3): Special Orthogonal Group in 3D
"Special"은 det(R) = +1이라는 의미
"Orthogonal"은 RᵀR = I 조건을 만족함을 의미
"3"은 3차원 공간에서의 회전이라는 의미
즉, SO(3)는 3차원 공간에서 모든 가능한 회전을 나타내는 행렬들의 집합입니다.
정리
속성
설명
직교 행렬
각 열벡터의 크기가 1 & 각 열벡터의 내적이 0
R⊤R=I
회전 행렬의 역행렬은 전치행렬
det(R)=+1
회전 행렬의 행렬식은 +1
R∈SO(3)
Special Orthogonal Group of 3D 회전 집합에 속함
3가지 회전 행렬 표현법
1. Euler Angles (오일러 각)
정의
Euler 각은 3차원 공간에서의 회전을 세 개의 연속된 축 회전으로 표현합니다. 일반적으로 세 축 중 어느 순서로 회전할지 결정한 후, 각 축을 기준으로 특정 각도만큼 회전합니다.
표현 방식
R=Rz(γ)Ry(β)Rx(α)
이때 α,β,γ는 각각 x, y, z 축을 기준으로 한 회전 각이며, 각 Rx,Ry,Rz는 해당 축에 대한 회전 행렬입니다.
회전 행렬 예시
x축 회전:
Rx(α)=⎣⎢⎡1000cosαsinα0−sinαcosα⎦⎥⎤
y, z축도 이와 유사하게 구성됩니다.
장점: 회전을 x, y, z 축에 대한 세 개의 연속된 각도로 표현하기 때문에 사람이 이해하기 쉽고 시각화가 용이하다.
단점: 짐벌락(Gimbal lock) 문제가 발생할 수 있고, 계산이 느리다.
짐벌락이란 두 축이 정렬되면서 하나의 자유도가 사라지는 현상으로, 회전 표현의 안정성이 떨어진다.
응용분야: 로봇의 방향이나 자세를 표현하는 데에 직관적인 특성이 유용하므로 이동하는 로봇에 사용.
2. Screw Parameters (스크류 파라미터, 혹은 회전벡터)
정의
스크류 이론은 물체의 회전과 병진을 동시에 표현하는 기법입니다. 순수 회전만 표현할 때는 축(axis)과 각도(angle)로 표현할 수 있습니다. 이는 SO(3)의 리 대수 so(3)에 기반한 표현이며, 회전축 방향 벡터와 회전 각도를 곱한 회전 벡터(rotation vector)로 나타낼 수 있습니다.
표현 방식 (Rodrigues' Formula)
회전축 u^∈R3, 회전각 θ에 대해:
R=I+sinθ[u^]×+(1−cosθ)[u^]×2
여기서 [u^]×는 u^의 스큐 대칭 행렬 (skew-symmetric matrix)입니다.
스큐 대칭 행렬 예시
[u^]×=⎣⎢⎡0uz−uy−uz0uxuy−ux0⎦⎥⎤
장점: 순방향 운동학(forward kinematics)에 적합하다.
물체의 회전과 병진 운동을 하나의 축을 기준으로 결합해서 표현할 수 있기 때문에, 로봇 관절의 위치 계산에 효과적이다.
단점: 직관성이 떨어지고 시각화가 어렵다.
응용분야: 매니퓰레이터(Manipulator, 로봇 팔) 제어에 자주 사용된다.
3. Quaternion (쿼터니언)
정의
Quaternion은 복소수 개념을 확장한 4차원 수 체계로, 하나의 스칼라와 하나의 3차원 벡터로 구성됩니다. 단위 쿼터니언은 3D 회전을 나타낼 수 있습니다.
q=w+xi+yj+zk=(w,v)∈H
여기서 w=cos(θ/2), v=u^sin(θ/2)
회전 적용 방식
어떤 벡터 p∈R3를 회전시키기 위해, 그 벡터를 허수부만 있는 쿼터니언 p=(0,p)로 만들고,
p′=qpq−1
로 회전된 벡터를 계산합니다.
장점: 짐벌락이 발생하지 않으며, 계산 속도가 빠르다.
회전을 4차원 벡터로 표현하여 연산적으로 안정적이고 연속적인 회전 표현이 가능하다.
단점: 4개의 수(스칼라+벡터)로 구성되어 있어 사람이 이해하거나 해석하기 어렵다.
응용분야: 애니메이션, 게임, 가상현실 등에서 부드럽고 빠른 회전 처리가 필요하기 때문에 컴퓨터 그래픽스에서 많이 쓰인다.