본문 바로가기

SLAM

포즈와 좌표계 변환행렬 헷갈렸던 것

3차원 좌표계 간의 변환과 3D 포즈를 4x4 변환 행렬로 표현하는 것에서 회전 행렬과 평행 이동 벡터의 좌표계를 헷갈렸던 내용을 남기려고 한다.

일단, 프레임1($f_{1}$)에서의 포인트(혹은 포즈)를 프레임2($f_{2}$) 4x4 변환 행렬로 표현하면 다음과 같다.
$$ ^{f_{2}}T_{f_{1}} = \begin{pmatrix} ^{f_{2}}R_{f_{1}} & ^{f_{2}}t \\ 0^{T} & 1 \end{pmatrix} $$ $$ ^{f_{2}}p = ^{f_{2}}T_{f_{1}}\times^{f_{1}}p $$
이제 위 행렬을 보고, "$f_{1}$에서 $f_{2}$로 좌표계를 변환해주는 행렬이다."라고 읽으면 되고, 이를 이용해서 포즈차를 표현하려다가 헷갈리기 시작했었다.

결론부터 말하면, 일단 포즈차를 변환행렬로 만들 때에는 포즈가 어떻게 변화하는지를 변환행렬로 만드는게 아니고, 각 포즈 좌표계 상의 무언가들을 변환시키기 위한 행렬을 만든다라고 생각했어야 했다.

그래서 $f_{1}$에서의 포즈와 $f_{2}$ 포즈 차에 대한 변환행렬을 만드는 것은 어떤 좌표계(포즈)에서 어떤 좌표계(포즈)로 옮기는 것을 목표로 하고 있는가를 생각하면 위에서의 변환행렬 식을 이용해 쉽게 만들 수 있다.