659.1 좌표 프레임의 개념과 필요성

1. 좌표 프레임의 정의

좌표 프레임(coordinate frame)은 3차원 공간에서 물체의 위치와 방향을 수학적으로 기술하기 위한 기준 체계이다. 하나의 좌표 프레임은 원점(origin)과 세 개의 직교 단위 벡터(orthonormal unit vectors)로 구성되며, 이를 통해 공간상의 임의의 점에 대해 유일한 좌표 표현을 부여한다.

좌표 프레임 \{F\}는 다음과 같이 정의된다.

\{F\} = \{O_F, \hat{x}_F, \hat{y}_F, \hat{z}_F\}

여기서 O_F는 프레임의 원점이고, \hat{x}_F, \hat{y}_F, \hat{z}_F는 각각 x, y, z 축의 단위 벡터이다. 이 세 단위 벡터는 상호 직교(mutually orthogonal)하며, 각각의 크기는 1이다.

\hat{x}_F \cdot \hat{y}_F = 0, \quad \hat{y}_F \cdot \hat{z}_F = 0, \quad \hat{z}_F \cdot \hat{x}_F = 0

\|\hat{x}_F\| = \|\hat{y}_F\| = \|\hat{z}_F\| = 1

2. 좌표 프레임의 역할

로봇 공학에서 좌표 프레임은 다음과 같은 근본적인 역할을 수행한다.

2.1 공간적 기준의 확립

모든 물리적 측정과 제어 명령은 특정 좌표 프레임에 대해 상대적으로 정의된다. 센서가 측정하는 거리, 각도, 가속도 등의 물리량은 해당 센서가 정의하는 좌표 프레임에 대한 상대적 값이며, 모터에 인가되는 제어 명령 역시 특정 좌표 프레임에서의 속도, 위치, 힘 등으로 표현된다. 좌표 프레임이 없이는 이러한 물리량의 의미를 명확하게 정의할 수 없다.

2.2 이종 데이터의 통합

현대 로봇 시스템은 LiDAR, 카메라, IMU(Inertial Measurement Unit), GPS/GNSS, 초음파 센서 등 다양한 센서를 동시에 탑재한다. 각 센서는 자체 좌표 프레임에서 데이터를 생성하므로, 서로 다른 센서에서 수집된 데이터를 통합(fusion)하기 위해서는 모든 데이터를 공통의 좌표 프레임으로 변환해야 한다. 이 과정을 좌표 변환(coordinate transformation)이라 하며, 좌표 변환의 정확성은 센서 융합(sensor fusion)의 품질을 결정하는 핵심 요소이다.

2.3 운동 기술과 제어

로봇의 운동학(kinematics)과 동역학(dynamics)은 좌표 프레임 간의 관계로 기술된다. 예를 들어, 다관절 매니퓰레이터(multi-joint manipulator)의 순방향 운동학(forward kinematics)은 각 관절에 부착된 좌표 프레임들 간의 변환을 순차적으로 합성하여 말단 장치(end-effector)의 위치와 자세(pose)를 계산하는 과정이다. Denavit-Hartenberg(D-H) 파라미터 규약은 이러한 관절 프레임 간의 변환을 체계적으로 표현하기 위한 대표적인 방법론이다.

2.4 위치 추정과 지도 생성

자율 이동 로봇(AMR)의 위치 추정(localization)과 동시 위치 추정 및 지도 생성(SLAM, Simultaneous Localization and Mapping)에서는 글로벌 좌표 프레임(global frame)과 로봇 로컬 좌표 프레임(local frame) 간의 관계를 지속적으로 추정해야 한다. 로봇의 위치는 글로벌 좌표 프레임에서의 위치와 방향으로 표현되며, 센서 관측은 로봇 로컬 프레임에서 수행되므로, 두 프레임 간의 좌표 변환은 위치 추정 알고리즘의 핵심 연산이다.

3. 로봇 시스템에서 다중 좌표 프레임의 필요성

실제 로봇 시스템에서는 단일 좌표 프레임만으로 모든 공간 정보를 표현하는 것이 불가능하다. 다중 좌표 프레임이 필요한 이유는 다음과 같다.

3.1 센서 장착 위치의 다양성

로봇에 장착된 각 센서는 로봇 본체에 대해 고유한 위치와 방향을 가진다. 예를 들어, 전방 LiDAR는 로봇 상단 전면에, 후방 카메라는 로봇 후면에, IMU는 로봇 무게 중심(center of mass) 근처에 장착될 수 있다. 각 센서의 측정값을 정확하게 해석하기 위해서는 센서 고유의 좌표 프레임과 로봇 본체 프레임 간의 정확한 공간적 관계(외적 캘리브레이션, extrinsic calibration)를 알아야 한다.

3.2 관절 구조의 계층성

매니퓰레이터나 다리 보행 로봇(legged robot)과 같이 관절 구조를 가진 로봇에서는 각 링크(link)에 고유한 좌표 프레임을 부착하여 관절의 운동을 기술한다. n개의 관절을 가진 매니퓰레이터에는 최소 n+1개의 좌표 프레임(각 링크에 하나씩과 기저 프레임)이 필요하며, 추가적으로 말단 장치, 공구(tool), 작업 대상(workpiece) 등의 프레임이 더 요구될 수 있다.

3.3 글로벌 참조 프레임의 분리

로봇의 위치 추정에서는 글로벌 참조 프레임(global reference frame)과 로봇 로컬 프레임을 분리하여 관리하는 것이 일반적이다. ROS2의 표준 규약(REP 105, Coordinate Frames for Mobile Platforms)에서는 map, odom, base_link 등의 프레임을 계층적으로 정의하며, 각 프레임은 서로 다른 위치 추정 알고리즘의 출력을 독립적으로 표현하는 역할을 한다.

3.4 작업 공간과 센서 공간의 분리

로봇의 작업 계획(task planning)은 작업 공간(task space) 좌표 프레임에서 수행되는 반면, 센서 관측은 센서 공간(sensor space) 좌표 프레임에서 이루어진다. 예를 들어, “테이블 위의 물체를 집어라“라는 작업 명령은 작업 공간인 세계(world) 프레임이나 테이블 프레임에서 정의되지만, 카메라가 물체를 인식하는 것은 카메라 프레임에서 이루어진다. 두 공간 간의 변환은 좌표 변환을 통해 수행된다.

4. 좌표 프레임 관리의 복잡성

로봇 시스템의 규모가 커질수록 좌표 프레임의 수와 프레임 간 관계의 복잡성은 급격히 증가한다. 단순한 이동 로봇에서도 map, odom, base_link, base_footprint, laser_frame, camera_link, camera_optical_frame, imu_link 등 10개 이상의 프레임이 필요하며, 매니퓰레이터가 장착된 모바일 매니퓰레이터(mobile manipulator)에서는 프레임 수가 수십 개로 증가한다.

이러한 복잡성을 체계적으로 관리하기 위해 TF2와 같은 전용 라이브러리가 필요하다. TF2는 프레임 간의 관계를 트리 구조로 관리하고, 임의의 두 프레임 간 변환을 자동으로 계산하며, 시간에 따른 변환의 변화를 추적함으로써, 개발자가 좌표 변환의 세부 구현에 대해 직접 관여하지 않고도 정확한 공간 정보를 활용할 수 있도록 지원한다.

5. 좌표 프레임의 표기법

본 서적에서는 좌표 프레임의 표기에 다음과 같은 규약을 따른다.

  • 좌표 프레임 \{A\}에서 관측된 점 p의 좌표: {}^{A}p
  • 좌표 프레임 \{A\}에서 \{B\}로의 변환: {}^{A}T_{B}
  • 좌표 프레임 \{A\}에 대한 \{B\}의 위치: {}^{A}p_{B}
  • 좌표 프레임 \{A\}에 대한 \{B\}의 회전: {}^{A}R_{B}

이러한 표기법은 Craig의 Introduction to Robotics: Mechanics and Control (Craig, 2018)에서 제안한 방식을 따르며, 프레임 간의 관계를 명확하게 기술할 수 있도록 한다.


참고 문헌 및 출처:

  • Craig, J.J., Introduction to Robotics: Mechanics and Control, 4th ed., Pearson, 2018.
  • Siciliano, B., Sciavicco, L., Villani, L., Oriolo, G., Robotics: Modelling, Planning and Control, Springer, 2009.
  • Foote, T., “tf: The transform library,” 2013 IEEE Conference on Technologies for Practical Robot Applications (TePRA), pp. 1-6, 2013.
  • REP 105, “Coordinate Frames for Mobile Platforms,” Open Robotics, 2010. https://www.ros.org/reps/rep-0105.html