본문 바로가기

Robotics

1강 좌표 변환 기초 - 회전 행렬 (Rotation Matrix)

안녕하세요 오늘은 좌표 변환 기초에 대해서 포스팅을 할까 합니다.

좌표 변환은 로보틱스를 공부하거나 구현하고 싶을 때, 빼놓을 수 없는 이론입니다.

 

우선 제일 기초인 회전 변환에 대해서 먼저 공부해보도록 하겠습니다.

 

회전 변환은 점을 옮기고 싶거나 좌표를 옮기고 싶을 때, 행렬이라는 것을 이용해서 수행할 수 있습니다.

 

2차원 회전 행렬

 

 

2차원에서는 위와 같이 좌표계 원점이 동일할 때, 간단하게 증명할 수 있습니다.

이는 예전 고교 과정 중에서 기하와 벡터에서 배운 회전 변환과 동일합니다. 이 과정을 theta라는 변수로 일반화해서 생각해볼 수도 있을 것입니다.

 

제일 중요한 키포인트는 아래와 같은데.. 매번 헷갈리기 때문에 반드시 기억하고 있어야 합니다.

 

회전 행렬 R01을 해석하면 다음과 같습니다.

1. {1} 좌표계에서 {0} 좌표계로 변환해주는 회전 행렬

2. {0} 죄표계에서 바라본 {1} 좌표계의 각도

3. {0} 좌표계를 기준으로 {1} 좌표계만큼 회전시켜서 얻은 회전 행렬

4-1 (회전 각도 관점). 기준 : {0}, 대상 : {1}

4-2 (좌표 변환 관점) 변환 전 : {1}, 변환 후 : {0}

 

 

3차원 회전 행렬

이를 3차원으로 확장하면 위와 같다.

각 축 X,Y,Z 에 대해서 표현하면 위와 같이 일반화된 회전 행렬을 구할 수 있다.

 

오일러 각도 (Euler Angle)

3차원 회전 행렬을 각 x,y,z 축에 대해서 표현을 할 수 있다면, 우리는 이제부터 어느 물체가 기준 좌표계 기준으로 회전이 되어 있는 상태라면 회전 변환을 통해서 표현할 수 있을 것입니다.

 

무엇을 기준으로 그리고 어떤 순서로 회저 변환을 곱했는지에 따라서 결과가 바뀝니다.

(기본적으로 행렬은 교환 법칙이 성립하지 않기 때문에...)

 

고정 좌표계 vs 연속 좌표계

1, 2 차이를 보면 무엇을 기준으로 회전 행렬을 곱했는지 차이를 볼 수 있습니다.

1. 고정 좌표계 경우, 처음 좌표계를 기준으로 해석을 해야합니다. 회전 행렬을 뒷 방향으로 곱해주면 됩니다.

2. 연속 좌표계 경우, 새로 갱신된 좌표계를 기준으로 해석을 해야합니다. 회전 행렬을 앞 방향으로 곱해주면 됩니다.

 

실제로 좌표계를 돌려서 확인해보면 무엇을 기준으로 어느 순서로 곱했는지에 따라서 중간에 회전되는 모습은 다르지만 결과적으로 같은 모습인 것을 확인할 수 있습니다.

 

3차원 표현법을 단순하게 표현하는 방법

바로 그 방법을 오일러 표현법이라고 합니다.

오일러 각도 표현법은 순서에 따라서 표기법이 달라집니다.

 

https://en.wikipedia.org/wiki/Euler_angles

 

Euler angles - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Description of the orientation of a rigid body Classic Euler angles geometrical definition.   Fixed coordinate system (x, y, z)   Rotated coordinate system (X, Y, Z) The Euler angl

en.wikipedia.org