본문 바로가기
Coloring (Additional Study)/Robotics

3D geometry

by 생각하는 이상훈 2024. 10. 2.
728x90

Intro

실제 세계에서는 3차원의 움직임을 표현 할 수 있어야하기에 3D로 확장하여 살펴보고자 한다.

3차원은 아래와 같이 3개의 axis로 표현한다.

그리고 당연히 point의 좌표는 3차원 좌표계로 표현된다.

벡터는 아래와 같이 표현된다.

 


Pose

Pose도 2D때와 완전히 똑같고 z축만 추가로 고려해주면 된다.

composition을 통해 다른 좌표를 표현할 수 있는 것도 똑같다.


Rotation

3차원에서 새로운 축으로 구성된 좌표계 B는 A에 새로운 축을 곱해주는 식으로 표현할 수 있다.

 

회전은 3개의 축이 존재하니 아래의 세가지 회전으로 모두 표현할 수 있다.

 

이때 주의할 점은 3차원에서 rotation 과정은 순서에 따라 결과가 달라진다는 것이다. 예를들어 x축 중심으로 90도를 회전하고 y축 중심으로 90도를 회전한 결과와 y축 중심으로 90도를 회전하고 x축 중심으로 90도를 회전한 결과는 다르다는 것이다.


Rotation theorem

오일러의 회전 이론에 따르면 3번의 회전을 통해 모든 좌표계를 표현할 수 있다. 특히 오일러 각은 연속되지 않은 같은 두 축을 이용한다.

위와 같이 6개의 오일러 각이 있다. 따라서 어떤 오일러각을 사용할지 정확하게 정의하고 사용해야한다. 공학분야에서 흔히 쓰이는 ZYZ 오일러 각을 기준으로 얘기해보자면 어떻게 회전이 되어있는 좌표계든 Z축을 기준으로 a만큼 회전시키고 Y축을 기준으로 b만큼 회전시키고 다시 Z축을 기준으로 c만큼 회전 시키면 원하는 좌표계와 일치시킬 수 있다는 것이다.

 

또 다른 rotation seqeunce 집합으로는 Cardan angle이 있다.

위와 같이 서로 다른 축을 기준으로 3번 회전 시키는 것이다.

이를 Roll, Pitch, Yaw angle이라고도 한다.


Gimbal

짐벌은 하나의 축을 중심으로 회전할 수 있는 구조를 가진 장치로, 3차원 공간에서 물체의 회전을 제어하거나 측정하는 데 사용된다. 짐벌 시스템은 각 축이 독립적으로 움직일 수 있도록 고리 모양의 회전 틀을 사용하며, 보통 세 개의 고리로 구성된다. 첫 번째 고리는 외부 프레임에 고정되어 특정 축을 따라 회전할 수 있고, 두 번째 고리는 첫 번째 고리 내부에 장착되어 또 다른 축을 따라 회전하며, 세 번째 고리는 두 번째 고리 내부에 장착되어 마지막 축을 따라 회전할 수 있다. 이 구조를 통해 물체는 세 축을 중심으로 자유롭게 회전할 수 있다.


짐벌의 주요 역할은 물체가 고정된 회전 축을 따라 자유롭게 회전할 수 있도록 해주는 것이다. 예를 들어, 카메라나 자이로스코프 같은 장치를 짐벌에 장착하면 주변 환경의 움직임에도 불구하고 해당 장치가 일정한 방향을 유지할 수 있게 된다. 이러한 이유로 짐벌은 우주선, 드론, 촬영 장비 등 다양한 기기에 장착되어 회전 제어에 큰 도움을 준다.

짐벌 시스템에서 발생할 수 있는 치명적인 문제이자 중요한 개념 중 하나는 짐벌 록이다. 짐벌 록은 특정 각도에서 회전이 제한되는 현상으로, 두 개의 회전축이 정렬되면서 자유로운 3차원 회전이 불가능해지는 상태를 말한다. 이는 두 개의 축이 겹쳐져 더 이상 모든 방향으로 회전할 수 없게 되는 문제로 회전의 자유도가 감소하게 된다. 이 현상은 오일러 각을 사용하는 회전 표현 방식에서 발생할 수 있는 문제 중 하나로 특히 두 번째 회전 각도가 90도에 가까워질 때 발생할 수 있다.

Pitch가 90도가 되면 roll이후 90도 pitch이후 yaw를 진행하는 것이 roll, pitch 90도만 진행한 결과와 같게 되는 것이다. 이 때문에 3축을 기준으로 자유로운 회전이 불가능해지는 것이다.


Representation of rotation in 3D

3차원 공간에성의 rotation을 표현하는 3가지 방식에 대해서 살펴보자.

우선 2-vector representation이다.

위와 같이 세축을 벡터로 표현하면 normal vector인 n을 orientation vector와 approach vector의 외적으로 표현할 수 있기에 결국 o와 a 벡터만 있어도 전부 표현할 수 있다는 것이다.

 

다음으로는 Angle-axis representation이다.

위 그림과 같이 적절한 하나의 축만 찾으면 다른 좌표계로 변환하는 과정을 한축을 기준으로한 회전으로 표현할 수 있다는 것이다. 그 특별한 축을 찾는 방법은 아래의 Rodriguez 방정식에서 R의 3개의 eigenvector중 eigenvalue가 1이 되는 vector를 찾는 것이다.

마지막은 Quaternion representation이다. 이는 hyper-complex number를 이용한 표현법이다. hyper-complex number란 아래와 같이 각각의 제곱이 -1인 i,j,k로 표현되는 수이다.

Quaternion이란 hyper-complex number로 아래와 같이 표현할 수 있다.

Unit quaternion 즉, 단위 quaternion을 이용하여 아래와 같이 각, 축, 회전을 표현할 수 있다.


728x90

'Coloring (Additional Study) > Robotics' 카테고리의 다른 글

2D Geometry  (2) 2024.09.30