Coordinate Representation
좌표 표현(Coordinate Representation)이란 회전(Rotation)과 이동(Translation)을 결합하여 물체의 자세(Pose)를 표현하는 것입니다.
1. Coordinate Representation = Rotation + Translation
-
Transformation Matrix T는 보통 다음과 같이 구성됩니다:
T=[R ∣ t]
여기서 R은 회전 행렬, t는 평행이동 벡터입니다.
-
이 T는 물체의 상태(state)를 표현하는 데 사용되며, 전체적인 구조는 Special Euclidean Group에 속합니다.
- 이 그룹은 SE(n)이라 불리며, 회전과 평행이동을 함께 표현할 수 있는 군(group) 구조입니다.
- 2차원 이동이라면 SE(2), 3차원 이동이라면 SE(3)으로 표현합니다.
2. 2차원 공간에서의 3 자유도 상태 표현 (SE(2))
(1) SE(2)의 3×3 행렬:
- SE(2)는 2D 공간에서의 회전과 이동을 표현하는 3×3 행렬 그룹입니다.
Tvc=⎣⎢⎡cosθsinθ0−sinθcosθ0ΔxΔy1⎦⎥⎤
- 이때 상태 벡터는 X=[Δx,Δy,θ]로 표현됩니다.
- θ: 이동 평면에서의 방향 (heading)
3. 3차원 공간에서의 6 자유도 상태 표현 (SE(3))
(1) SE(3)의 4×4 행렬:

- 그림은 로봇의 본체 프레임과 기준 프레임 간의 위치 관계를 이 T 행렬로 표현하는 예시.
- 예를 들어 Tvc는 카메라 좌표계에서 로봇 본체 좌표계로의 변환을 나타냄.
- 상태는 x,y,z,r,p,h (roll, pitch, yaw)로 표현됩니다.
- 앞의 x,y,z는 위치
- 뒤의 r,p,h는 회전 (오일러 각으로 표현된 자세)

(3) 비교
- SE(3)의 4×4 변환 행렬 Tvc는 다음과 같은 4×4 SE(3) 형태로 표현됩니다.
Tvc=⎣⎢⎢⎢⎡0R00ΔxΔyΔz1⎦⎥⎥⎥⎤
- 6 DOF Vector Form은 위치 오프셋 Δx,Δy,Δz와 회전이 90도씩 있을 때 상태를 다음과 같이 표현합니다.
Xvc=[Δx,Δy,Δz,90∘,0,90∘]
3. 두가지 상태 표현의 선호도

(1) 매니퓰레이터(Manipulators)
-
변환 행렬 T=[R0t1]∈SE(3)를 선호
-
여러 관절(θ₁, θ₂, ...)의 조합을 통해 말단 위치를 계산하는 순방향 운동학(forward kinematics)을 수행하기 위해, 행렬 형태가 더 계산적으로 효율적
-
각 관절 회전을 행렬 곱으로 표현하기 때문에 상태를 행렬 형태로 유지하는 것이 자연스러움
(2) 모바일 로봇(Mobile Robots)
-
상태 벡터 X=[x,y,z,r,p,h] 형식을 더 많이 사용
-
로봇의 위치와 자세를 직접적으로 추적하기 위해서 벡터 형태가 직관적이고 유용
-
예: SLAM에서 상태 벡터를 확장 칼만 필터나 그래프 형태로 추적
4. 축 변환의 관계

세 프레임 {a},{b},{c} 사이의 관계를 SE(3) 행렬 곱으로 계산하는 과정을 보여줍니다.
1. 회전 관계:
Rac=RabRbc
즉, a→b→c의 회전은 각각의 회전을 곱한 결과입니다.
2. 위치 관계:
변수 이해
- 벡터 v는 프레임 {b} 기준에서 {c}의 위치를 나타내는 벡터입니다. 이 벡터를 vb라고 부릅니다.
- 하지만 우리는 이 벡터를 프레임 {a} 기준에서 표현하고 싶습니다. 이걸 va라고 부릅니다.
- {b}는 {a}에 대해 회전한 좌표계이기 때문에, {b}에서 본 벡터 vb를 단순히 더할 수는 없고, 회전을 먼저 적용해야 합니다.
왜 va=Rabvb인가?
-
Rab는 프레임 {b} 기준 벡터를 프레임 {a} 기준으로 변환해주는 회전 행렬입니다.
-
따라서 프레임 {b} 기준의 벡터 vb를 프레임 {a}에서 표현하려면:
va=Rabvb
-
즉, 좌표 변환의 기본 원칙:
벡터가 표현된 좌표계에서 목표 좌표계로 바꾸려면 회전 행렬을 곱한다.
비유적 예
- 예를 들어 {b} 프레임이 {a} 프레임에 대해 90도 회전했다면,
{b} 기준에서 오른쪽 방향 벡터는 {a} 기준에서는 위쪽이 된다.
이 변화는 Rab에 의해 이루어진다.
전체 변환 관계
이 회전이 포함되기 때문에 전체 위치 관계는 다음처럼 이어집니다:
wa=ua+va=ua+Rabvb
- 여기서:
- ua: 프레임 {a} 기준에서 프레임 {b}의 위치
- vb: 프레임 {b} 기준에서 프레임 {c}의 위치
- wa: 프레임 {a} 기준에서 프레임 {c}의 위치
3. 정리:
벡터 v가 프레임 {b}에서 표현된 것이므로, 이를 프레임 {a}로 바꾸려면 회전 변환이 필요합니다.
그래서 va=Rabvb가 되는 것입니다.
SE(3) 행렬 곱 표현:
전체적인 변환은 다음과 같은 SE(3) 행렬 곱으로 표현됩니다:
[Rac0wa1]=[Rab0ua1]⋅[Rbc0vb1]
이 식은 "프레임 a에서 프레임 c까지의 변환"은 "a→b 변환"과 "b→c 변환"을 차례로 곱해주면 된다는 것을 의미합니다.
5. 축 변환의 예시

핵심 개념: 좌표계가 바뀌면 벡터의 성분값도 달라진다
왼쪽 수식 설명
-
벡터 v는 두 좌표계 {a}, {b} 기준으로 각각 다음처럼 표현됩니다:
v=va1e1+va2e2+va3e3=vb1f1+vb2f2+vb3f3
여기서:
- ei: 좌표계 {a}의 기저 벡터
- fi: 좌표계 {b}의 기저 벡터
- va=(va1,va2,va3): {a} 기준 성분
- vb=(vb1,vb2,vb3): {b} 기준 성분
-
같은 벡터라도 좌표계가 바뀌면 벡터의 성분값이 달라집니다. 실제 방향은 변하지 않습니다.
변환 행렬 사용
-
벡터 성분을 {a} 기준에서 {b} 기준으로 바꾸는 회전 행렬이 Rba입니다.
-
그러면 다음 관계가 성립합니다:
vb=Rbava또는va=Rabvb
Rab=Rba−1=RbaT, 즉 역행렬은 전치 행렬
행렬로 표현된 기저 변환
유도 과정
- v는 공간상 고정된 벡터이며, 두 좌표계에서 기저 벡터와 좌표 성분으로 표현할 수 있습니다.
v=[e1 e2 e3]va=[f1 f2 f3]vb
- 두 성분 벡터 사이에는 회전 관계가 있습니다:
vb=Rbava⇒va=Rba−1vb=Rabvb
-
위 두 표현을 같은 v에 대해 등식으로 둡니다:
[e1 e2 e3]va=[f1 f2 f3]vb
-
이제 vb=Rbava를 대입:
[e1 e2 e3]va=[f1 f2 f3]Rbava
-
좌변과 우변 모두 va에 대해 선형 연산이므로, 행렬이 같아야 합니다:
[e1 e2 e3]=[f1 f2 f3]Rba
의미
- 이 결과는 좌표계 a의 기저 벡터들을 좌표계 b의 기저 벡터들로 표현하는 관계입니다.
- 다시 말해, {a}의 기저 벡터들을 {b}의 기저 벡터들을 회전시켜 얻을 수 있다는 뜻입니다.
오른쪽 그림 설명
- 로봇 본체 {v}와 카메라 좌표계 {c}가 주어졌고,
- 카메라 기준 방향 벡터 zc를 로봇 본체 좌표계에서 표현한 것이 zv입니다.
- 관계식:
zv=Rvczc 이는 카메라에서의 방향을 본체 좌표계로 변환한 것입니다.
핵심 요약
| 용어 | 설명 |
|---|
| va, vb | 동일한 벡터의 다른 좌표계에서의 성분 표현 |
| Rba | 좌표계 {a}에서 {b}로의 회전 변환 행렬 |
| 목적 | 기준 좌표계 변경에 따른 벡터 표현 변환 |
좋습니다. 이 두 슬라이드는 "Change of Basis", 즉 좌표계 변경(root shifting)의 실제 적용을 보여줍니다. 특히 포인트 클라우드 데이터를 글로벌 좌표계 {G}에서 로컬 좌표계 {v}로 변환하는 과정을 다루고 있습니다.

그림 설명
- 파란 점들은 포인트 클라우드로, {G} 좌표계에서 측정된 3D 점들입니다.
- 우리는 이 점들을 {v} 좌표계로 옮기고 싶습니다. 즉, 기준을 global에서 local로 바꾸는 것입니다.
- 위에서 유도했던 아래 두 식을 적용합시다.
[Rac0wa1]=[Rab0ua1][Rbc0vb1]
wa=ua+Rabvb
위 식을 이해하면, Pg와 관련된 정보로 Pv를 표현하는 아래 수식도 유추할 수 있습니다.
Pv=tvg+RvgPg
- 그러나 tvg와 Rvg는 {g}에서 측정한 값이 아니므로 우리가 알 수 없습니다.
- 따라서 이들을 각각 tgv와 Rgv에 관련된 식으로 바꾸어야 합니다.
- 그리고 이 관계가 최종적으로 반영된 수식은 아래와 같습니다.

Global 기준 포인트를 Local 기준으로 역변환 하기
- Pv: 로컬 기준에서 포인트의 상대적 위치
- Pg: 글로벌 기준에서 포인트의 상대적 위치
- Rgv: 글로벌 기준에서의 로컬 좌표계 {v}의 상대적 회전 각도
- tgv: 글로벌 기준에서의 로컬 좌표계 {v}의 상대적 위치
이므로 좌표계 {g}에서 {v}로 가는 변환 행렬을 다음과 같이 정의합시다:
Tgv=[Rgv0tgv1]
이제 이 변환의 역행렬은 좌표계 {v}에서 {g}로 가는 변환입니다:
Tvg=[Rvg0tvg1]
이 때 SE(3) 행렬의 역행렬이 아래와 같으므로:
T=[R0t1]⇒T−1=[R⊤0−R⊤t1]
해당 수식을 유도할 수 있습니다:
Tvg=[Rvg0tvg1]=Tgv−1=[Rgv⊤0−Rgv⊤tgv1]
여기서 해당 행렬의 대응 요소들의 의미를 짚고 넘어가자면,
-
Rvg=Rgv⊤: R은 회전 행렬이므로 R−1=R⊤이 자명
-
tvg=−Rgv⊤tgv: 위치 t는 회전된 좌표계를 기준으로 다시 기준점으로 돌려야 하므로, 단순히 부호를 바꾸는 게 아니라 다시 역회전한 후 뒤로 이동해야 합니다. 그래서 단순히 −t가 아니라 −R⊤t입니다.
따라서 이 두 연관관계를 이전 과정에서 얻은 수식에 대입하여 최종 식을 유도할 수 있습니다:
Pv=tvg+RvgPg,
Pv=−Rgv⊤tgv+Rgv⊤Pg=Rgv⊤(Pg−tgv)