9.76 좌표 변환의 센서 데이터 처리 응용
1. 센서 데이터와 좌표계
로봇의 모든 센서 데이터는 특정 좌표계에서 측정된다. 카메라의 픽셀 좌표, LiDAR의 점군, IMU의 가속도와 각속도 등이 모두 각자의 센서 좌표계에서 표현된다. 이 데이터를 통합하여 의미 있는 정보를 추출하려면, 서로 다른 센서 좌표계 사이의 변환과 공통 좌표계로의 통합이 필수적이다. 좌표 변환은 센서 데이터 처리의 기초이다.
2. 다중 좌표계의 필요성
로봇 시스템에는 일반적으로 여러 좌표계가 동시에 존재한다.
2.1 월드 좌표계 (\{W\})
전역 기준 좌표계로, 환경에 고정되어 있다. 절대 위치와 자세의 기준이 된다.
2.2 본체 좌표계 (\{B\})
로봇의 본체에 고정된 좌표계이다. 로봇의 자세와 운동을 본체 기준으로 표현한다.
2.3 센서 좌표계 (\{S_i\})
각 센서에 고정된 좌표계이다. 카메라 좌표계, LiDAR 좌표계, IMU 좌표계 등이 있다.
2.4 작업물 좌표계 (\{O\})
매니퓰레이터가 다루는 작업물에 고정된 좌표계이다.
이러한 다양한 좌표계 사이의 관계가 좌표 변환 행렬로 기술된다.
3. 좌표 변환의 응용 사례
3.1 카메라 데이터의 월드 좌표화
카메라가 촬영한 이미지에서 검출된 객체의 3차원 위치를 월드 좌표계로 변환하는 과정이다.
3.1.1 단계 1: 이미지 좌표에서 카메라 좌표계로
카메라 내부 매개변수를 사용하여 픽셀 좌표를 카메라 좌표계의 광선으로 역사영한다.
\mathbf{p}_C = K^{-1}\begin{bmatrix}u \\ v \\ 1\end{bmatrix}
3.1.2 단계 2: 카메라 좌표계에서 본체 좌표계로
카메라-로봇 외부 매개변수 {}^B\mathbf{T}_C를 사용한다.
\mathbf{p}_B = {}^B\mathbf{T}_C \mathbf{p}_C
3.1.3 단계 3: 본체 좌표계에서 월드 좌표계로
로봇의 현재 자세 {}^W\mathbf{T}_B를 사용한다.
\mathbf{p}_W = {}^W\mathbf{T}_B \mathbf{p}_B
이 세 단계의 연쇄 곱으로 카메라 데이터가 월드 좌표계에서 표현된다.
3.2 LiDAR 점군의 통합
LiDAR가 측정한 점군을 로봇의 본체 좌표계 또는 월드 좌표계로 변환한다.
\mathbf{p}_W = {}^W\mathbf{T}_L \mathbf{p}_L
여러 시각에 측정된 점군을 모두 월드 좌표계로 변환하면, 환경의 3차원 모델을 누적적으로 구축할 수 있다(매핑).
3.3 다중 카메라 데이터 융합
여러 카메라가 같은 환경을 다른 시점에서 촬영할 때, 각 카메라 데이터를 공통 좌표계로 변환하여 융합한다. 스테레오 비전, 3D 재구성, 다중 카메라 추적 등에 사용된다.
3.4 IMU 데이터의 본체 좌표화
IMU는 자체 좌표계에서 가속도와 각속도를 측정한다. 이를 본체 좌표계로 변환해야 자세 추정에 사용할 수 있다.
\mathbf{a}_B = \mathbf{R}_{B,I}\mathbf{a}_I, \quad \boldsymbol{\omega}_B = \mathbf{R}_{B,I}\boldsymbol{\omega}_I
여기서 \mathbf{R}_{B,I}는 IMU에서 본체로의 회전 행렬이다. IMU의 위치 오프셋이 있으면 가속도에 추가 보정이 필요하다.
3.5 매니퓰레이터의 작업물 좌표 처리
매니퓰레이터의 작업이 작업물 좌표계 기준으로 명시되는 경우가 많다. 작업물 좌표계와 베이스 좌표계 사이의 변환이 필요하다.
{}^0\mathbf{T}_O = \text{캘리브레이션 결과}
작업 명령은 작업물 좌표계에서 주어지고, 매니퓰레이터의 베이스 좌표계로 변환된 후 역기구학으로 관절 명령이 산출된다.
4. 점과 방향 벡터의 변환 차이
좌표 변환에서 점(point)과 방향 벡터(direction vector)는 다르게 처리된다.
4.1 점의 변환
점은 위치 정보를 가지므로 회전과 병진 모두에 영향을 받는다.
\mathbf{p}_B = \mathbf{R}\mathbf{p}_A + \mathbf{t}
4.2 방향 벡터의 변환
방향 벡터(예: 표면 법선, 속도 벡터)는 위치와 무관하므로 회전에만 영향을 받는다.
\mathbf{v}_B = \mathbf{R}\mathbf{v}_A
이 차이는 동차 좌표에서 네 번째 성분(점은 1, 방향은 0)으로 자동으로 처리된다.
5. 시간 변화하는 좌표 변환
로봇이 움직이면 본체 좌표계가 월드에 대해 시간에 따라 변한다. 따라서 {}^W\mathbf{T}_B(t)가 시간의 함수이다. 센서 데이터 처리에서 이러한 시간 의존성을 정확히 처리해야 한다.
5.1 시간 동기화
서로 다른 시각에 측정된 데이터를 같은 시각으로 시간 동기화해야 한다. 이때 자세 보간이 사용된다.
5.2 모션 보상
LiDAR가 점군을 스캔하는 동안 로봇이 움직이면, 점군의 각 점이 다른 시각에 측정된다. 이를 보정하여 단일 시각의 점군으로 만드는 것이 모션 보상(motion compensation)이다.
6. 시각 SLAM에서의 좌표 변환
시각 SLAM(Simultaneous Localization and Mapping)은 카메라가 움직이면서 환경을 지도화하고 자체 위치를 추정한다. 이 과정에서 다양한 좌표 변환이 필수적이다.
6.1 카메라 자세
각 시각의 카메라 자세 {}^W\mathbf{T}_C(t)가 SLAM의 핵심 추정 변수이다.
6.2 특징점 위치
검출된 시각 특징점이 카메라 좌표계에서 측정되며, 월드 좌표계의 3D 점으로 추정된다.
6.3 재투영
월드 좌표계의 3D 점을 카메라 좌표계로 변환하고 이미지 평면에 투영한 결과(재투영)와 실제 측정점의 차이가 SLAM 최적화의 잔차이다.
6.4 로컬-글로벌 전환
지역 카메라 자세 추정과 글로벌 지도 구축 사이의 좌표 변환이 SLAM의 정확도를 결정한다.
7. 손-눈 캘리브레이션
매니퓰레이터의 손목에 카메라가 부착된 경우, 카메라와 매니퓰레이터의 상대 자세를 결정하는 것이 손-눈 캘리브레이션이다.
7.1 표준 방정식
\mathbf{A}\mathbf{X} = \mathbf{X}\mathbf{B}
여기서 \mathbf{A}는 매니퓰레이터의 두 자세 사이의 변환, \mathbf{B}는 카메라의 두 자세 사이의 변환, \mathbf{X}가 손-눈 변환(미지수)이다. 여러 자세 쌍의 데이터를 사용하여 \mathbf{X}를 추정한다.
7.2 결과의 활용
캘리브레이션 결과는 카메라가 본 객체의 위치를 매니퓰레이터의 좌표계로 변환하는 데 사용된다. 이는 비전 기반 그립이나 작업의 핵심이다.
8. TF 트리와 다중 좌표계 관리
ROS의 TF/TF2 프레임워크는 로봇 시스템의 다중 좌표계를 트리 구조로 관리한다.
8.1 트리 구조
각 좌표계가 노드, 좌표계 사이의 변환이 에지로 표현된다. 트리의 루트가 통상 월드 좌표계 또는 베이스 좌표계이다.
8.2 변환의 자동 계산
임의의 두 좌표계 사이의 변환이 트리 경로를 따라 자동으로 계산된다. 사용자가 일일이 행렬 곱을 수행할 필요가 없다.
8.3 시간 동기화
TF는 각 변환의 시각 정보를 기록하므로, 다른 시각의 데이터에 대한 변환을 보간으로 제공한다.
9. 좌표 변환의 오차 전파
좌표 변환에는 여러 오차 원인이 있다.
9.1 캘리브레이션 오차
외부 매개변수의 캘리브레이션이 부정확하면 모든 변환에 체계적 오차가 발생한다.
9.2 측정 노이즈
센서 데이터 자체의 노이즈가 변환된 결과에 전파된다.
9.3 시간 동기화 오차
서로 다른 센서의 시각이 정확히 일치하지 않으면 변환에서 추가 오차가 발생한다.
이러한 오차를 정량적으로 평가하고 최소화하는 것이 정확한 센서 데이터 처리의 핵심이다.
10. 좌표 변환의 효율성
실시간 로봇 시스템에서 좌표 변환은 매우 빈번히 수행된다. 효율성을 위한 기법은 다음과 같다.
10.1 사전 계산
자주 사용되는 변환 행렬을 사전 계산하여 캐싱한다.
10.2 일괄 변환
여러 점에 대한 동일한 변환을 일괄적으로 처리한다(예: 점군 전체를 한 번의 행렬-행렬 곱으로 변환).
10.3 효율적 데이터 구조
좌표 변환 트리를 효율적으로 검색할 수 있는 데이터 구조(해시 테이블, 트리)를 사용한다.
10.4 SIMD 활용
행렬-벡터 곱을 SIMD 명령으로 최적화한다. 행렬 라이브러리가 자동으로 처리한다.
11. 참고 문헌
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
- Hartley, R., & Zisserman, A. (2003). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge University Press.
- Thrun, S., Burgard, W., & Fox, D. (2005). Probabilistic Robotics. MIT Press.
- Foote, T. (2013). “tf: The Transform Library.” 2013 IEEE Conference on Technologies for Practical Robot Applications (TePRA), 1–6.
- Newcombe, R. A., et al. (2011). “KinectFusion: Real-time Dense Surface Mapping and Tracking.” IEEE ISMAR, 127–136.
version: 1.0