659.87 earth 프레임의 정의와 역할

1. 개요

earth 프레임은 REP 105에 의하여 정의된 **지구 고정 좌표 프레임(Earth-fixed coordinate frame)**이다. 이 프레임은 지구의 표면 또는 지구 중심에 고정된 절대 좌표계로서, 위성 항법 시스템(GNSS)에 의한 절대 위치 정보를 로봇 시스템의 TF2 변환 트리에 통합하는 역할을 수행한다. earth 프레임은 REP 105 표준 프레임 체인의 최상위에 위치하며, 다중 로봇 시스템에서 서로 다른 로봇의 map 프레임을 통합하는 공통 기준점으로 사용된다.

2. 정의

2.1 REP 105에 의한 정의

REP 105는 earth 프레임을 다음과 같이 정의한다.

earth 프레임은 map 프레임의 상위 프레임이다. 다중 map 프레임이 존재하는 경우(예: 다중 로봇 시스템), earth 프레임은 이러한 복수의 map 프레임을 연결하는 공통 프레임으로 사용된다.

2.2 완전한 프레임 체인

earth 프레임을 포함하는 완전한 프레임 체인은 다음과 같다.

earth → map → odom → base_link

2.3 핵심 특성

특성설명
절대 좌표계지구의 물리적 위치에 고정된 절대 기준을 제공한다
GNSS 기반GPS, GLONASS, Galileo, BeiDou 등의 위성 항법 데이터와 연동된다
다중 로봇 통합서로 다른 위치의 로봇이 공유하는 공통 좌표계를 제공한다
선택적 사용GNSS를 사용하지 않는 실내 시스템에서는 생략할 수 있다

3. 좌표계와 기준 체계

3.1 ENU 좌표계

ROS2에서 earth 프레임은 REP 103의 규약에 따라 ENU (East-North-Up) 좌표계를 사용한다.

  • X축: 동쪽(East) 방향
  • Y축: 북쪽(North) 방향
  • Z축: 상방(Up, 중력 반대 방향)

3.2 지구 좌표 체계

GNSS 수신기가 출력하는 좌표는 WGS84 (World Geodetic System 1984) 타원체 기반의 위도(latitude), 경도(longitude), 고도(altitude)이다. 이 지리적 좌표를 earth 프레임의 직교 좌표(Cartesian coordinates)로 변환하기 위하여 다음의 좌표 체계가 사용된다.

좌표 체계설명용도
ECEF (Earth-Centered, Earth-Fixed)지구 중심을 원점으로 하는 직교 좌표계절대 위치 표현
LLA (Latitude, Longitude, Altitude)경위도와 고도로 표현하는 지리적 좌표계GNSS 출력, 지도 서비스
UTM (Universal Transverse Mercator)지구를 60개 구역으로 나누어 투영하는 평면 좌표계대규모 실외 환경
로컬 ENU특정 기준점에서의 ENU 직교 좌표계earth 프레임의 실제 구현

3.3 로컬 ENU 좌표계의 설정

earth 프레임은 일반적으로 로컬 ENU (Local East-North-Up) 좌표계로 구현된다. 로컬 ENU 좌표계는 특정 기준점(datum)의 위도, 경도, 고도를 원점으로 설정하고, 그 지점에서의 동쪽, 북쪽, 상방을 좌표축으로 하는 평면 직교 좌표계이다.

기준점 ({\phi_0}, {\lambda_0}, {h_0})에서의 위치 (\phi, \lambda, h)를 로컬 ENU 좌표 (e, n, u)로 변환하는 과정은 다음과 같다.

  1. 두 지점의 LLA 좌표를 ECEF 좌표로 변환한다.
  2. ECEF 좌표의 차이를 계산한다.
  3. 기준점에서의 회전 변환을 적용하여 ENU 좌표를 산출한다.

$$
\begin{bmatrix} e \ n \ u \end

\begin{bmatrix}
-\sin\lambda_0 & \cos\lambda_0 & 0 \
-\sin\phi_0\cos\lambda_0 & -\sin\phi_0\sin\lambda_0 & \cos\phi_0 \
\cos\phi_0\cos\lambda_0 & \cos\phi_0\sin\lambda_0 & \sin\phi_0
\end{bmatrix}
\begin{bmatrix}
X - X_0 \ Y - Y_0 \ Z - Z_0
\end{bmatrix}
$$

여기서 (X, Y, Z)(X_0, Y_0, Z_0)는 각각 대상 지점과 기준점의 ECEF 좌표이다.

4. earth → map 변환

4.1 변환의 의미

earth → map 변환은 지구 좌표계에서 로컬 지도 좌표계로의 좌표 변환을 나타낸다. 이 변환은 지도의 원점이 지구상의 어디에 위치하는지를 정의한다.

4.2 변환 유형

유형조건구현
정적 변환지도 원점의 지리적 좌표가 사전에 알려진 경우static_transform_publisher
동적 변환GNSS 데이터를 실시간으로 처리하여 변환을 갱신하는 경우robot_localizationnavsat_transform_node

4.3 robot_localization을 이용한 구현

robot_localization 패키지의 navsat_transform_node는 GNSS 데이터를 수신하여 자동으로 earth → map 변환에 필요한 기준점을 설정하고, GNSS 좌표를 로컬 좌표로 변환한다.

# navsat_transform_node 설정
navsat_transform_node:
  ros__parameters:
    frequency: 30.0
    delay: 3.0
    magnetic_declination_radians: 0.0
    yaw_offset: 0.0
    zero_altitude: true
    broadcast_utm_transform: true
    broadcast_utm_transform_as_parent_frame: false
    publish_filtered_gps: true
    use_odometry_yaw: true
    wait_for_datum: false

    # 기준점 설정 (선택적)
    datum: [37.5665, 126.9780, 0.0]  # 위도, 경도, 고도

이 노드는 다음의 과정을 수행한다.

  1. 첫 번째 유효한 GNSS 수신 지점을 기준점(datum)으로 설정한다(또는 사전 정의된 기준점을 사용한다).
  2. 이후 수신되는 GNSS 데이터를 기준점 기반의 로컬 ENU 좌표로 변환한다.
  3. 변환된 좌표를 주행 측정 데이터와 통합하여 earth → map 관계를 유지한다.

5. earth 프레임의 활용

5.1 다중 로봇 시스템에서의 통합

서로 다른 위치에서 운행되는 복수의 로봇이 각자의 map 프레임을 갖는 경우, earth 프레임이 이들을 연결하는 공통 좌표계 역할을 한다.

earth
  ├── robot1/map
  │     └── robot1/odom
  │           └── robot1/base_link
  └── robot2/map
        └── robot2/odom
              └── robot2/base_link

이 구조에서 earth → robot1/mapearth → robot2/map 변환을 통하여, 한 로봇의 관점에서 다른 로봇의 위치를 계산할 수 있다.

// robot1에서 robot2의 위치 조회
auto transform = tf_buffer_->lookupTransform(
    "robot1/base_link", "robot2/base_link",
    tf2::TimePointZero);

5.2 실외 항법

드론, 자율 주행 차량, 농업 로봇 등 실외에서 운행되는 로봇은 earth 프레임을 통하여 GPS 기반의 절대 위치 항법을 수행한다. 미리 정의된 GPS 경유점(waypoint)은 earth 프레임의 좌표로 변환되어 내비게이션에 활용된다.

5.3 지리 참조 데이터 통합

지리 정보 시스템(GIS) 데이터, 위성 영상, 지형 모델 등의 지리 참조 데이터를 로봇 시스템에 통합할 때 earth 프레임이 기준 좌표계로 사용된다.

6. earth 프레임 운용 시 주의 사항

6.1 GNSS 정확도

GNSS의 위치 정확도는 수신 환경에 따라 크게 변동한다.

수신 환경정확도 (수평)정확도 (수직)
개활지 (단독 GPS)2~5 m5~10 m
RTK-GPS1~2 cm2~5 cm
도심지 (멀티패스 환경)10~30 m20~50 m
실내/터널이용 불가이용 불가

GNSS 정확도의 변동은 earth 프레임의 위치 정보에 직접적으로 반영되므로, 정밀한 위치 제어가 필요한 경우 RTK-GPS와 같은 고정밀 GNSS 솔루션을 사용하여야 한다.

6.2 좌표계 혼동 방지

항공 분야에서 널리 사용되는 NED (North-East-Down) 좌표계와 ROS2의 ENU 좌표계 사이의 혼동에 주의하여야 한다. MAVLink 프로토콜을 사용하는 비행 제어기(예: PX4, ArduPilot)와 연동할 때에는 NED-ENU 변환을 명시적으로 수행하여야 한다.

6.3 지구 곡률 고려

로컬 ENU 좌표계는 지구를 기준점 근방에서 평면으로 근사하므로, 기준점으로부터 먼 거리(수 km 이상)에서는 곡률에 의한 오차가 발생한다. 대규모 실외 환경에서는 UTM 좌표계의 사용이나 곡률 보정을 고려하여야 한다.

로컬 ENU 근사에 의한 위치 오차는 대략 다음과 같이 추정된다.

\epsilon \approx \frac{d^2}{2R}

여기서 d는 기준점으로부터의 거리, R은 지구의 반경(약 6.371 \times 10^6 \, \text{m})이다. 예를 들어, 기준점으로부터 10 km 떨어진 지점에서의 높이 오차는 약 7.8 m이다.

6.4 사용 여부 판단

시나리오earth 프레임 필요 여부사유
실내 로봇 (GNSS 미사용)불필요map이 최상위 프레임
단일 실외 로봇 (GNSS 사용)권장절대 위치 기준 제공
다중 로봇 (같은 지도 공유)선택적map 공유로 충분할 수 있음
다중 로봇 (다른 지도 사용)필수로봇 간 좌표 통합 필요
광역 실외 항법필수GPS 경유점 기반 항법

7. 요약

earth 프레임은 지구 고정 좌표계로서 REP 105 프레임 체인의 최상위에 위치하며, GNSS 기반의 절대 위치 정보를 TF2 변환 트리에 통합하는 역할을 수행한다. 로컬 ENU 좌표계로 구현되며, robot_localization 패키지의 navsat_transform_node를 통하여 GNSS 데이터를 로컬 좌표로 자동 변환할 수 있다. 다중 로봇 시스템에서 서로 다른 map 프레임을 통합하는 공통 기준으로 특히 유용하며, GNSS를 사용하지 않는 실내 시스템에서는 생략할 수 있다.


참고 문헌 및 출처

  • T. Foote, “REP 105 – Coordinate Frames for Mobile Platforms,” ROS Enhancement Proposals, https://www.ros.org/reps/rep-0105.html (2010, 최종 갱신 2022)
  • T. Moore, D. Stouch, “A Generalized Extended Kalman Filter Implementation for the Robot Operating System,” Advances in Intelligent Systems and Computing, vol. 302, pp. 335–348, 2016.
  • National Imagery and Mapping Agency, “Department of Defense World Geodetic System 1984,” NIMA TR8350.2, Third Edition, 2000.
  • robot_localization 공식 문서, https://docs.ros.org/en/humble/p/robot_localization/ (ROS2 Humble Hawksbill)