위키득계정 ↗
과학

강체 변환

강체 변환과학
영문명
Rigid transformation
거리 성질
점 사이 거리 보존
자세 변환 구성
회전과 평행이동
반사 없는 삼차원 변환군
SE(3)
강체 변환은 점 사이의 거리를 유지하는 기하 변환이다. 삼차원 자세를 다루는 로봇공학과 그래픽스에서는 보통 반사를 제외한 회전과 평행이동의 조합을 사용한다.

회전과 이동을 함께 표현한다

열벡터 좌표에서 반사 없는 강체 변환은 p′=Rp+t로 나타낼 수 있다. R은 직교 회전 행렬이고 t는 평행이동 벡터다. 두 점을 각각 변환해 빼면 이동 t가 소거되고 차이는 R(p−q)가 된다. 직교 행렬은 벡터 길이를 유지하므로 두 점 사이의 거리도 변하지 않는다. 확대와 전단은 일반적으로 이 조건을 만족하지 않는다.

같은 이동도 순서가 중요하다

점 (1,0,0)을 z축 주위로 90도 회전하고 (2,0,0)만큼 옮기면 (2,1,0)이다. 반대로 먼저 옮겨 (3,0,0)을 만든 뒤 같은 회전을 적용하면 (0,3,0)이 된다. 회전과 이동을 둘 다 했다는 정보만으로 결과를 정할 수 없고 적용 순서를 지정해야 한다. 이동 벡터가 어느 좌표계에서 표현됐는지도 함께 확인한다.

합성과 역변환

T_1(p)=R_1p+t_1, T_2(p)=R_2p+t_2라고 하자. T_2 다음 T_1을 적용하면 회전은 R_1R_2, 이동은 R_1t_2+t_1이다. 이동 벡터 둘을 그대로 더하는 식만으로는 부족하다. 역변환은 p=Rᵀp′−Rᵀt로 구할 수 있으므로 역이동도 단순히 원래 t의 부호만 바꾸는 것과 다를 수 있다.

좌표계와 반사의 구분

로봇의 관절과 카메라처럼 여러 좌표계를 연결할 때 어느 좌표에서 어느 좌표로 바꾸는 변환인지 기록해야 한다. 넓은 의미의 거리 보존 변환에는 반사도 포함될 수 있지만, SE(3)의 자세 변환은 행렬식이 1인 회전과 이동으로 제한된다. 센서의 단위가 다르거나 좌우 좌표계가 섞인 자료를 올바른 강체 변환 하나만으로 해결할 수 있다고 가정하지 않는다.

관련 문서

회전 행렬 / 회전 벡터 / 오일러 각 / 와바 문제 / 유클리드 거리 / 행렬