STATERA Library · Series 02 · Volume 04 · Chapter 09 · KR
Source: https://github.com/Statera-Library/02_Vol_04_Localization_Mapping_and_SLAM/blob/main/09_Graph_SLAM/09_Graph_SLAM_KR.md
Volume 04. Localization, Mapping, and SLAM
Chapter 09. Graph SLAM
09.1 Graph SLAM Basics
Graph SLAM은 현대 로봇 위치추정(Localization)과 지도작성(Mapping) 기술에서 가장 영향력 있는 접근 방법 중 하나이다. 이는 로봇의 자세(Pose)와 환경 관측 정보를 그래프(Graph) 구조 내의 노드(Node)와 제약조건(Constraint)으로 표현함으로써 SLAM(Simultaneous Localization and Mapping) 문제를 해결하는 수학적으로 우아한 프레임워크를 제공한다. 전통적인 필터 기반 SLAM 방식이 현재 상태를 순차적으로 추정하는 것과 달리, Graph SLAM은 위치추정과 지도작성을 하나의 전역 최적화(Global Optimization) 문제로 정의한다. 목표는 수집된 모든 측정값과 제약조건을 동시에 만족시키는 가장 일관성 있는 로봇 궤적과 지도 구조를 찾는 것이다.
오늘날 Graph SLAM은 자율주행 차량, 산업용 자율이동로봇(AMR), 실외 순찰 로봇, 물류 로봇, 대규모 환경 매핑 플랫폼 등 다양한 시스템에서 핵심 기술로 활용되고 있다. Graph SLAM은 단순한 센서 데이터 처리 기술을 넘어, 로봇이 장기간 안정적으로 자율주행을 수행할 수 있도록 지원하는 핵심 위치추정 기술로 자리 잡고 있다.
Graph SLAM이 등장하게 된 가장 중요한 이유는 로봇 이동 중 발생하는 누적 오차(Drift) 문제 때문이다. 로봇이 이동할 때 휠 엔코더, IMU, 카메라, LiDAR, GNSS 등의 센서는 지속적으로 위치와 환경 정보를 제공한다. 그러나 모든 센서 측정값에는 노이즈와 불확실성이 존재한다. 시간이 지남에 따라 이러한 작은 오차가 누적되면서 로봇이 계산한 위치는 실제 위치와 점점 멀어지게 된다.
특히 휠 오도메트리 기반 시스템에서는 수백 미터 이상 이동할 경우 상당한 위치 오차가 발생할 수 있다. Graph SLAM은 이러한 문제를 해결하기 위해 모든 측정 관계를 그래프 형태로 저장하고, 새로운 정보가 들어올 때마다 전체 그래프를 최적화하여 누적 오차를 보정한다.
Graph SLAM에서는 로봇의 이동 경로가 일련의 자세(Pose)로 표현된다. 각 자세는 특정 시점에서의 위치와 방향을 의미한다. 이러한 자세들은 그래프의 노드(Node)가 된다. 노드 사이를 연결하는 간선(Edge)은 센서 측정으로부터 생성된 제약조건을 의미한다.
예를 들어 휠 오도메트리가 "2m 전진 후 5도 회전"이라는 정보를 제공했다면 이전 자세와 현재 자세 사이에 해당 정보를 나타내는 제약조건이 생성된다. 또한 LiDAR나 카메라가 과거에 방문했던 장소를 다시 인식하면 현재 자세와 과거 자세를 연결하는 새로운 제약조건이 생성된다. 이러한 제약조건들이 모여 전체 그래프 구조를 형성한다.
Graph SLAM에서 가장 중요한 개념 중 하나는 제약조건(Constraint)이다. 제약조건은 두 노드 간의 관계를 센서 측정값으로 표현한 것이다. 각 제약조건은 "두 자세는 이러한 관계를 가져야 한다"는 정보를 제공한다.
예를 들어:
오도메트리 제약조건
LiDAR 스캔 매칭 결과
카메라 특징점 매칭
IMU 기반 자세 변화
GNSS 위치 정보
루프 클로저(Loop Closure)
등이 모두 제약조건으로 표현될 수 있다.
Graph SLAM의 중요한 장점은 데이터 수집과 최적화를 분리할 수 있다는 점이다. 로봇은 실시간으로 센서 데이터를 수집하면서 그래프를 생성할 수 있으며, 최적화는 별도의 스레드나 프로세스에서 수행할 수 있다. 이러한 구조는 실시간성을 유지하면서도 높은 지도 품질을 확보할 수 있게 해준다.
그래프 구조는 일반적으로 정점(Vertex)과 간선(Edge)으로 구성된다. 정점은 로봇 자세 또는 랜드마크를 나타내고, 간선은 측정 관계를 나타낸다. 결과적으로 그래프는 로봇이 관측한 환경의 공간적 관계를 압축적으로 표현하는 데이터 구조가 된다.
Graph SLAM은 확률론적(Probabilistic) 접근 방식을 기반으로 한다. 실제 환경에서 측정값은 항상 오차를 포함하므로, Graph SLAM은 모든 측정값을 절대적인 사실이 아니라 확률분포로 모델링한다. 각 제약조건은 공분산 행렬(Covariance Matrix) 또는 정보 행렬(Information Matrix)을 가진다.
정확도가 높은 센서는 강한 제약조건을 제공하며, 노이즈가 큰 센서는 상대적으로 약한 제약조건을 제공한다. 최적화 과정에서는 이러한 신뢰도 정보가 반영되어 보다 정확한 결과를 생성한다.
Graph SLAM의 최종 목표는 그래프 내의 모든 제약조건이 최대한 만족되도록 노드의 위치를 조정하는 것이다. 이를 위해 비용 함수(Cost Function)가 정의된다.
각 제약조건에 대해:
현재 추정된 자세 관계
실제 센서가 측정한 관계
사이의 차이를 오차(Error)로 계산한다.
전체 그래프의 오차 합계를 최소화하는 자세 집합을 찾는 것이 Graph SLAM 최적화의 목적이다. 결과적으로 최적화가 완료되면 가장 일관성 있는 로봇 궤적과 지도가 생성된다.
Graph SLAM은 EKF(Extended Kalman Filter) 기반 SLAM과 비교했을 때 중요한 차이점을 가진다. EKF 기반 방식은 현재 상태만 유지하면서 순차적으로 업데이트를 수행한다. 따라서 장거리 주행 시 오차가 누적되기 쉽다.
반면 Graph SLAM은 과거의 모든 정보를 유지하며 전체 경로를 동시에 최적화한다. 이러한 특성 덕분에 대규모 환경에서 훨씬 우수한 성능을 제공할 수 있다.
Graph SLAM의 핵심 기능 중 하나는 루프 클로저(Loop Closure)이다. 로봇이 이전에 방문했던 장소를 다시 방문하면 시스템은 현재 위치와 과거 위치가 동일한 장소임을 인식한다.
이 경우 새로운 루프 클로저 제약조건이 그래프에 추가된다. 이 제약조건은 지금까지 누적된 오차를 발견하는 역할을 한다. 이후 최적화가 수행되면 그래프 전체가 재조정되어 지도와 경로의 일관성이 크게 향상된다.
예를 들어 대형 물류창고를 순찰하는 AMR을 생각해 보자. 초기에는 오도메트리만으로도 비교적 정확한 위치 추정이 가능하다. 그러나 수백 미터를 이동한 후에는 상당한 드리프트가 발생할 수 있다. 이후 로봇이 출발 지점 근처로 돌아오면 LiDAR나 카메라가 해당 장소를 인식하고 루프 클로저를 생성한다. Graph SLAM 최적화는 이 정보를 활용하여 전체 경로에 분산된 오차를 수정하고 보다 정확한 지도를 생성한다.
Graph SLAM은 다양한 센서와 함께 사용할 수 있다. LiDAR 기반 Graph SLAM에서는 스캔 매칭 결과가 제약조건이 된다. Visual SLAM에서는 특징점 매칭과 Visual Odometry가 제약조건을 생성한다. Multi-Sensor SLAM에서는 LiDAR, Camera, IMU, GNSS, Radar, Encoder 등의 데이터를 동일한 그래프 구조 안에서 통합할 수 있다.
이러한 특성 때문에 Graph SLAM은 센서 융합(Sensor Fusion)에 매우 적합하다. 서로 다른 센서의 정보를 동일한 수학적 프레임워크 안에서 처리할 수 있기 때문이다.
Graph SLAM은 일반적으로 비선형 최적화(Nonlinear Optimization) 문제로 정의된다. 로봇 자세는 위치와 회전 정보를 포함하기 때문에 선형 모델로 표현하기 어렵다. 따라서 최적화 과정에서는 다음과 같은 알고리즘이 사용된다.
Gauss-Newton
Levenberg-Marquardt
Dogleg
Incremental Smoothing
이러한 알고리즘들은 반복적으로 그래프 오차를 최소화하며 최적의 자세를 찾는다.
Graph SLAM이 실용적인 이유 중 하나는 희소성(Sparsity) 때문이다. 실제로 로봇이 수집하는 데이터는 매우 많지만, 각 측정값은 소수의 노드와만 관련된다. 따라서 그래프는 대부분이 비어 있는 희소 행렬(Sparse Matrix) 구조를 가진다.
희소 구조는 대규모 그래프 최적화를 가능하게 하며, 수만 개 이상의 노드를 가진 환경에서도 효율적인 계산을 수행할 수 있도록 해준다.
현대 Graph SLAM에서는 랜드마크 기반 그래프보다 Pose Graph 방식이 더 널리 사용된다. Pose Graph에서는 노드가 로봇 자세를 나타내고, 간선은 자세 간 상대 변환 정보를 나타낸다.
Pose Graph 방식은:
계산량 감소
구현 단순화
최적화 효율 향상
대규모 환경 지원
등의 장점을 제공한다.
Graph SLAM에서는 잘못된 측정값에 대한 대응도 중요하다. 특히 루프 클로저 과정에서 서로 다른 장소를 같은 장소로 오인하는 경우(False Positive)가 발생할 수 있다.
이러한 문제를 방지하기 위해:
Outlier Rejection
Robust Cost Function
Geometric Verification
Consistency Checking
기법들이 활용된다.
실시간 시스템에서는 Incremental Graph Optimization이 매우 중요하다. 전체 그래프를 매번 다시 계산하는 대신 새롭게 추가된 부분만 갱신함으로써 계산량을 크게 줄일 수 있다.
실외 자율주행 로봇에서는 Graph SLAM과 GNSS RTK를 함께 사용하는 경우가 많다. GNSS는 절대 위치 정보를 제공하고, LiDAR와 카메라는 정밀한 상대 위치 정보를 제공한다. Graph 구조는 이러한 다양한 센서 데이터를 자연스럽게 통합할 수 있다.
산업용 AMR 분야에서는 창고, 병원, 물류센터, 공장, 터널, 항만, 철도시설 등 다양한 환경에서 Graph SLAM이 사용된다. 특히 귀하가 개발 중인 실외 자율주행 플랫폼이나 GPR 기반 지하시설물 검사 로봇과 같은 대규모 환경 매핑 시스템에서는 Graph SLAM이 핵심 기술 중 하나가 된다.
최근에는 Semantic Graph SLAM이 등장하여 단순한 기하학 정보뿐 아니라 객체 정보와 의미 정보까지 그래프에 포함하고 있다. 또한 AI 기반 장소 인식 기술과 딥러닝 기반 루프 클로저 검출 기술이 Graph SLAM과 결합되면서 더욱 강력한 성능을 제공하고 있다.
향후 Graph SLAM은 디지털 트윈, 클라우드 로보틱스, 멀티 로봇 협업, Embodied AI, World Model 기술과 융합될 것으로 예상된다. 미래의 Graph SLAM은 단순한 위치추정 시스템을 넘어 기하학적 정보, 의미 정보, 시간 정보, 학습된 지식을 모두 포함하는 지능형 공간 이해 플랫폼으로 발전할 것이다.
결론적으로 Graph SLAM은 로봇이 환경을 이해하고 스스로 위치를 추정하는 데 필요한 가장 강력한 프레임워크 중 하나이다. 특히 대규모 실외 자율주행 로봇, GPR 검사 로봇, 스마트 시티 로봇, 다중 로봇 시스템과 같은 복잡한 응용 분야에서 Graph SLAM은 정확성, 확장성, 장기 안정성을 제공하는 핵심 기술로 계속 활용될 것이다.
09.2 Pose Graph Representation
Pose Graph 표현 방식
Pose Graph Representation은 현대 Graph SLAM 시스템에서 가장 핵심적인 개념 중 하나이다. 이는 로봇의 이동 경로, 센서 관측 정보, 그리고 환경 내 공간적 관계를 구조적으로 표현하기 위한 수학적 프레임워크를 제공한다. Graph SLAM에서는 위치추정(Localization)과 지도작성(Mapping) 문제 전체를 그래프 최적화(Graph Optimization) 문제로 변환한다. 이때 Pose Graph는 로봇이 수집한 모든 정보를 저장하고 관리하는 핵심 데이터 구조 역할을 수행한다.
자율주행 로봇, 자율주행 차량, 물류 로봇, 실내 AMR, 실외 자율주행 플랫폼, 철도 및 지하시설물 검사 로봇과 같은 시스템에서 Pose Graph는 위치추정 정확성과 지도 품질을 결정하는 중요한 기반 기술이다.
Pose Graph의 개념은 로봇이 이동하면서 자신의 위치와 자세를 지속적으로 추정한다는 사실에서 출발한다. 로봇이 특정 시점에 존재하는 위치와 방향을 Pose라고 부른다.
2차원 환경에서는 일반적으로 다음과 같이 표현된다.
x : 위치
y : 위치
θ : 방향
3차원 환경에서는 다음과 같이 표현된다.
x, y, z : 위치
Roll
Pitch
Yaw
이러한 Pose들이 시간 순서대로 연결되면 로봇의 이동 경로(Trajectory)가 된다.
Pose Graph에서는 각 Pose가 그래프의 Node로 표현된다. 각 Node는 특정 시점에서의 로봇 상태를 저장한다. Node들 사이를 연결하는 Edge는 Pose들 사이의 공간적 관계를 나타낸다.
결과적으로 Pose Graph는 다음과 같은 형태를 가진다.
Pose → Node
관측 관계 → Edge
즉, 로봇이 이동하면서 생성되는 모든 위치 정보와 관측 정보를 하나의 네트워크 구조로 표현하는 것이다.
Pose Graph의 가장 중요한 목적은 Pose 간 상대 변환(Relative Transformation)을 표현하는 것이다.
예를 들어 로봇이:
2m 전진
5° 회전
했다고 가정하자.
이 경우 이전 Pose와 현재 Pose 사이에 상대 이동량이 존재하게 된다.
Pose_i → Pose_j
라는 관계를 나타내는 Edge가 생성된다.
이 Edge는 단순한 연결선이 아니라 다음 정보를 포함한다.
상대 이동 거리
상대 회전량
측정 오차
신뢰도
즉, Edge는 센서가 측정한 두 Pose 간 관계를 저장하는 데이터 구조이다.
Pose Graph는 단순한 Trajectory 저장 방식과는 근본적으로 다르다.
일반 Trajectory는 단순히 위치를 시간 순서대로 저장한다.
Pose1 → Pose2 → Pose3 → Pose4
반면 Pose Graph는 위치뿐 아니라 위치들 간의 관계를 저장한다.
Pose1 ↔ Pose2
Pose2 ↔ Pose3
Pose3 ↔ Pose4
Pose1 ↔ Pose4 (Loop Closure)
따라서 최적화 과정에서 Node의 위치는 변경될 수 있지만, 측정으로부터 생성된 관계는 그대로 유지된다.
Graph SLAM은 이 관계를 최대한 만족하도록 모든 Pose를 재배치한다.
Pose Graph는 크게 두 가지 요소로 구성된다.
첫 번째는 Node이다.
Node는 로봇의 상태(State)를 의미한다.
Node에는 일반적으로 다음 정보가 저장된다.
Position
Orientation
Timestamp
Sensor State
Velocity (선택사항)
두 번째는 Edge이다.
Edge는 두 Node 간 관계를 표현한다.
대표적인 Edge 종류는 다음과 같다.
Odometry Edge
Loop Closure Edge
Landmark Observation Edge
GNSS Constraint Edge
IMU Constraint Edge
LiDAR Matching Edge
Visual Feature Edge
이러한 Edge들이 모여 전체 Graph를 구성한다.
Pose Graph의 핵심 철학은 절대 위치보다 상대 위치를 신뢰한다는 것이다.
실제로 대부분의 센서는 절대 위치보다 상대 이동량을 더 정확하게 측정할 수 있다.
예를 들어:
GNSS 오차
- 수 m 수준
Odometry 상대 오차
- 수 cm 수준
따라서 Graph SLAM은 상대 관계를 중심으로 지도를 구축하고, 최적화를 통해 전체 위치를 계산한다.
수학적으로 Edge는 하나의 측정 방정식(Measurement Equation)으로 표현된다.
센서가 측정한 값과 현재 추정된 Pose 간 차이가 Error가 된다.
Graph Optimization은 전체 Graph의 Error 합계를 최소화하는 Pose를 찾는다.
각 Edge는 다음 정보를 가진다.
Measurement
Covariance Matrix
Information Matrix
Information Matrix는 측정 신뢰도를 의미한다.
신뢰도가 높은 센서는 최적화에 더 큰 영향을 미친다.
예를 들어:
RTK GNSS\
→ 강한 Constraint
저가 IMU\
→ 약한 Constraint
와 같이 표현될 수 있다.
Pose Graph의 가장 큰 장점 중 하나는 확장성(Scalability)이다.
대규모 환경에서는 수십만 개 이상의 Pose가 생성될 수 있다.
예를 들어:
스마트 시티
자율주행 자동차
철도 검사
GPR 지하시설물 검사
대규모 물류창고
등에서는 매우 긴 주행 경로가 생성된다.
Pose Graph는 Sparse Graph 구조를 사용하기 때문에 이러한 대규모 환경도 효율적으로 처리할 수 있다.
Sparse Graph란 대부분의 Node가 서로 직접 연결되지 않는 그래프를 의미한다.
일반적으로 하나의 Pose는 다음과만 연결된다.
이전 Pose
다음 Pose
Loop Closure Pose
따라서 계산량이 크게 감소한다.
Pose Graph에서 가장 중요한 기능 중 하나는 Loop Closure이다.
로봇이 처음 방문했던 장소를 다시 방문하면 시스템은 이를 인식한다.
이때 새로운 Edge가 생성된다.
예를 들면:
Pose1000 ↔ Pose50
과 같은 연결이 생성된다.
이 Edge를 Loop Closure Edge라고 부른다.
Loop Closure는 지금까지 누적된 Drift를 발견하는 역할을 한다.
최적화가 수행되면 Graph 전체가 재조정된다.
그 결과:
경로 왜곡 감소
지도 일관성 향상
위치 정확도 향상
이 이루어진다.
LiDAR 기반 시스템에서는 Scan Matching 결과가 Edge를 생성한다.
Visual SLAM에서는:
Feature Matching
Visual Odometry
결과가 Edge가 된다.
Visual-Inertial SLAM에서는:
Camera
IMU
정보가 함께 Edge를 생성한다.
실외 자율주행 시스템에서는:
RTK GNSS
LiDAR
Camera
IMU
정보가 모두 하나의 Pose Graph에 통합된다.
Pose Graph는 멀티 센서 융합에 매우 적합하다.
센서 종류와 상관없이 모든 정보를 동일한 Edge 형태로 표현할 수 있기 때문이다.
예를 들어 다음과 같은 센서 조합이 가능하다.
LiDAR + IMU
Camera + IMU
LiDAR + GNSS
Camera + GNSS
Radar + LiDAR
Multi-Sensor Fusion
모든 데이터가 동일한 Graph 구조 안에서 처리된다.
실시간 시스템에서는 Incremental Pose Graph가 사용된다.
새로운 측정값이 들어올 때마다:
Node 추가
Edge 추가
부분 최적화
를 수행한다.
이를 통해 로봇은 수 시간 또는 수일 동안 연속적으로 동작할 수 있다.
Pose Graph의 형태는 환경에 따라 달라질 수 있다.
단순 주행 환경에서는 선형 체인 구조가 된다.
Pose1 → Pose2 → Pose3 → Pose4
Loop Closure가 발생하면 교차 연결이 생성된다.
Pose1 ↔ Pose4
멀티 로봇 환경에서는 여러 개의 경로가 하나의 Graph로 연결될 수 있다.
Cloud SLAM 환경에서는 수십 대의 로봇이 동일한 Graph를 공유하기도 한다.
Pose Graph에서 또 다른 중요한 문제는 Data Association이다.
시스템은 관측된 정보가 동일한 장소인지 판단해야 한다.
만약 잘못된 장소를 같은 장소라고 판단하면 False Loop Closure가 발생한다.
이 경우 Graph가 심하게 왜곡될 수 있다.
이를 방지하기 위해 다음 기술들이 사용된다.
Place Recognition
Geometric Verification
Outlier Rejection
Consistency Checking
대규모 실외 환경에서는 Hierarchical Pose Graph가 사용되기도 한다.
이 구조에서는:
Local Graph
Regional Graph
Global Graph
를 계층적으로 구성한다.
이를 통해 도시 규모의 대규모 지도도 효율적으로 관리할 수 있다.
산업용 AMR에서는 Pose Graph가 매우 중요한 역할을 수행한다.
창고 AMR은 반복적인 랙 구조 속에서도 정확한 위치를 유지해야 한다.
병원 로봇은 복도와 병실 환경을 안정적으로 인식해야 한다.
실외 순찰 로봇은 수 km 이상의 주행 경로를 관리해야 한다.
특히 귀하가 개발 중인:
GPR 기반 지하시설물 검사 로봇
실외 자율주행 플랫폼
농업용 자율주행 로봇
철도 및 터널 검사 로봇
에서는 Pose Graph가 지도 생성과 장거리 위치추정의 핵심 기술이 된다.
현재 널리 사용되는 Graph SLAM 프레임워크들은 대부분 Pose Graph를 기반으로 한다.
대표적으로:
GTSAM
g2o
Cartographer
RTAB-Map
ORB-SLAM
LIO-SAM
FAST-LIO
등이 있다.
최근에는 Semantic Pose Graph가 등장하여 단순한 위치 정보뿐 아니라 객체와 의미 정보까지 Graph에 포함하고 있다.
예를 들면:
Building
Tree
Vehicle
Railway
Tunnel
Utility Pole
등을 Graph에 저장할 수 있다.
향후 Pose Graph는 Digital Twin, Cloud Robotics, World Model, Embodied AI와 결합될 것으로 예상된다.
미래의 Pose Graph는 단순한 위치 관계를 저장하는 것을 넘어:
Geometry
Semantics
Time
Context
Experience
를 모두 포함하는 지능형 공간 표현 구조로 발전할 것이다.
결론적으로 Pose Graph Representation은 Graph SLAM의 뼈대(Skeleton) 역할을 하는 핵심 데이터 구조이다. Node는 로봇의 Pose를 표현하고, Edge는 센서 기반 공간 관계를 표현한다. 이러한 구조를 통해 Graph SLAM은 대규모 환경에서도 높은 정확도와 확장성을 제공할 수 있으며, 현대 자율주행 로봇과 AMR 시스템의 핵심 기술로 활용되고 있다. 특히 대형 실외 자율주행 플랫폼과 GPR 기반 지하시설물 검사 로봇과 같은 장거리 운용 시스템에서는 Pose Graph가 전체 지도 생성 및 위치추정 시스템의 중심 역할을 수행한다.
09.3 Factor Graph Optimization
Factor Graph 최적화
Factor Graph Optimization은 현대 Graph SLAM 시스템에서 가장 강력하고 수학적으로 우아한 최적화 기법 중 하나이다. 이는 변수(Variable)와 측정값(Measurement)을 이분 그래프(Bipartite Graph) 구조로 표현하여 위치추정(Localization), 지도작성(Mapping), 센서 융합(Sensor Fusion), 상태 추정(State Estimation) 문제를 해결하는 확률 기반 프레임워크를 제공한다.
Pose Graph Optimization이 주로 로봇 자세(Pose) 간의 관계를 다루는 반면, Factor Graph Optimization은 측정 제약조건을 명시적으로 표현하는 Factor Node를 도입하여 보다 복잡한 관계를 모델링할 수 있다. 이러한 구조는 자율주행차, AMR, 드론, 철도 검사 로봇, GPR 기반 지하시설물 검사 로봇, 대규모 매핑 시스템 등에서 널리 사용되고 있으며, 최신 SLAM 기술의 핵심 기반이 되고 있다.
Factor Graph Optimization이 등장한 이유는 로봇이 사용하는 모든 센서가 불확실성(Uncertainty)을 포함하기 때문이다.
예를 들어,
Wheel Encoder → Slip 발생
IMU → Drift 누적
Camera → 특징점 매칭 오류
LiDAR → 가림(Occlusion) 및 노이즈
GNSS → Multipath 및 신호 열화
등의 문제가 존재한다.
Factor Graph는 이러한 다양한 센서 데이터를 하나의 확률적 프레임워크 안에서 통합하여 가장 가능성이 높은 상태(State)를 추정하는 방법을 제공한다.
Factor Graph는 두 종류의 노드로 구성된다.
Variable Node
추정해야 하는 상태 변수
예:
Robot Pose
Landmark Position
Velocity
Sensor Bias
Calibration Parameter
Factor Node
측정값 또는 제약조건
예:
Odometry
IMU
GNSS
LiDAR Matching
Camera Observation
Loop Closure
Factor Node는 Variable Node들 사이를 연결하면서 "이 변수들은 이러한 관계를 가져야 한다"는 정보를 제공한다.
결과적으로 Factor Graph는 로봇의 전체 상태 추정 문제를 그래프 구조로 표현한 것이다.
일반적인 SLAM 시스템에서는 Robot Pose가 Variable Node가 된다.
각 Pose는 다음 정보를 가진다.
Position
Orientation
그리고 다음과 같은 측정값들이 Factor Node가 된다.
Odometry Measurement
IMU Preintegration
LiDAR Scan Matching
Visual Feature Observation
GNSS Measurement
Factor는 자신과 관련된 Variable Node에 연결된다.
예를 들어 Odometry는:
Pose_i ↔ Pose_j
사이의 상대 이동량을 나타내므로 두 Pose를 연결하는 Factor가 된다.
Factor Graph의 가장 큰 장점은 유연성(Flexibility)이다.
Pose Graph는 주로 Pose 간 관계만 표현한다.
반면 Factor Graph는 다음과 같은 다양한 관계를 동시에 표현할 수 있다.
Pose ↔ Pose
Pose ↔ Landmark
Pose ↔ Sensor Bias
Landmark ↔ Landmark
Pose ↔ Semantic Object
따라서 매우 복잡한 센서 융합 시스템도 하나의 그래프 안에서 모델링할 수 있다.
Factor Graph Optimization의 수학적 기반은 확률 추론(Probabilistic Inference)이다.
목표는 다음과 같다.
"모든 측정값이 주어졌을 때 가장 가능성이 높은 상태를 찾는다."
이를 MAP(Maximum A Posteriori) 추정이라고 한다.
Posterior Probability는 여러 개의 Factor 함수들의 곱으로 표현된다.
각 Factor는 특정 측정값이 제공하는 정보를 나타낸다.
전체 Graph의 확률은 모든 Factor의 결합 결과가 된다.
최적화 과정은 이 확률을 최대화하는 상태를 찾는 것이다.
실제 구현에서는 음의 로그를 취하여 다음과 같은 비선형 최소자승 문제로 변환한다.
최소화:
Σ Error²
즉, 모든 측정 오차의 제곱합을 최소화하는 상태를 찾는다.
Factor Graph에서 가장 중요한 개념 중 하나는 Residual Error이다.
각 Factor는:
실제 측정값
현재 상태 추정값
을 비교한다.
그 차이가 Residual이 된다.
예를 들어 LiDAR가
"3m 전진"
을 측정했는데 현재 Pose 추정값은
"2.8m 전진"
이라면
Residual = 0.2m
가 된다.
최적화는 전체 Graph의 Residual을 최소화한다.
측정 불확실성은 Covariance Matrix 또는 Information Matrix로 표현된다.
Information Matrix는 측정 신뢰도를 의미한다.
예를 들어
RTK GNSS
→ 매우 높은 신뢰도
저가 IMU
→ 상대적으로 낮은 신뢰도
를 가진다.
최적화 과정에서 신뢰도가 높은 센서는 더 큰 영향을 미친다.
따라서 최종 결과는 여러 센서의 정보를 신뢰도에 따라 적절히 융합한 결과가 된다.
Factor Graph Optimization은 멀티 센서 융합에 매우 적합하다.
예를 들어 실외 자율주행 로봇에는 다음 센서가 탑재될 수 있다.
3D LiDAR
RGB Camera
IMU
Wheel Encoder
RTK GNSS
Radar
각 센서는 서로 다른 데이터 형식과 주기를 가진다.
Factor Graph는 이를 모두 동일한 형태의 Factor로 표현할 수 있다.
따라서 모든 센서가 하나의 통합 최적화 문제로 처리된다.
가장 기본적인 Factor 중 하나는 Prior Factor이다.
Prior Factor는 변수에 대한 초기 정보를 제공한다.
예를 들어 첫 번째 Pose는
Pose_0 = Origin
이라는 Prior Factor를 가진다.
이 정보가 없으면 그래프 전체가 어디에 위치해야 하는지 알 수 없게 된다.
Prior Factor는 그래프의 기준 좌표계를 정의하는 역할을 한다.
Odometry Factor는 가장 많이 사용되는 Factor이다.
Odometry Factor는:
Pose_i ↔ Pose_i+1
사이의 상대 이동량을 표현한다.
생성 가능한 데이터는 다음과 같다.
Wheel Encoder
Visual Odometry
LiDAR Odometry
INS
이러한 측정값들은 모두 Odometry Factor가 된다.
Loop Closure Factor는 SLAM에서 매우 중요한 역할을 한다.
로봇이 과거에 방문한 장소를 다시 방문하면 새로운 Factor가 생성된다.
예:
Pose_1000 ↔ Pose_50
이 Factor는 누적된 Drift를 발견하게 해준다.
최적화가 수행되면 전체 경로가 재조정된다.
결과적으로:
Drift 감소
지도 일관성 향상
위치 정확도 향상
이 이루어진다.
Landmark Factor는 Landmark 기반 SLAM에서 사용된다.
환경 내 특징점이 Variable Node가 된다.
예를 들어:
Corner
Pole
Marker
Sign
Building Edge
등이 Landmark가 된다.
카메라나 LiDAR 관측 결과는 Factor가 되어 Landmark와 Pose를 연결한다.
최적화는 Landmark 위치와 Robot Pose를 동시에 계산한다.
Visual SLAM에서는 Feature Observation이 Factor가 된다.
카메라가 관측한 특징점은 Reprojection Error 형태로 표현된다.
최적화는 다음을 동시에 수행한다.
Camera Trajectory 수정
Landmark Position 수정
이를 Bundle Adjustment라고 한다.
Bundle Adjustment는 사실상 Factor Graph Optimization의 특수한 형태이다.
LiDAR 기반 SLAM에서도 Factor Graph는 매우 중요하다.
Scan Matching 결과가 Factor가 된다.
대표적인 예는 다음과 같다.
LIO-SAM
FAST-LIO
LeGO-LOAM
이러한 시스템은
LiDAR
IMU
GNSS
Loop Closure
를 모두 Factor Graph 안에서 통합한다.
IMU Preintegration Factor는 최근 가장 중요한 기술 중 하나이다.
IMU는 초당 수백~수천 번 데이터를 생성한다.
모든 데이터를 그대로 최적화에 사용하면 계산량이 지나치게 커진다.
Preintegration은 다수의 IMU 측정값을 하나의 Factor로 압축한다.
이 방법은 정확도를 유지하면서 계산량을 크게 줄여준다.
Factor Graph 최적화에는 다양한 알고리즘이 사용된다.
대표적으로:
Gauss-Newton
Levenberg-Marquardt
Dogleg
Trust Region
등이 있다.
이 알고리즘들은 반복적으로 Error를 줄여 나가면서 최적의 상태를 찾는다.
Factor Graph의 또 다른 장점은 Sparse Structure이다.
각 Factor는 소수의 Variable만 연결한다.
따라서 Jacobian과 Hessian 행렬 대부분이 0으로 구성된다.
이를 Sparse Matrix라고 한다.
Sparse Matrix 기법을 활용하면:
메모리 사용량 감소
계산 속도 향상
대규모 Graph 처리 가능
이라는 장점이 있다.
최근에는 Incremental Optimization이 널리 사용된다.
대표적인 알고리즘은:
iSAM
iSAM2
이다.
새로운 측정값이 들어올 때마다 전체 Graph를 다시 계산하지 않고 필요한 부분만 갱신한다.
이를 통해 실시간 SLAM이 가능해진다.
Factor Graph Optimization은 SLAM 이외에도 다양한 분야에 사용된다.
예를 들어:
Autonomous Driving
Drone Navigation
Multi-Robot Mapping
Sensor Calibration
Digital Twin
Cloud Robotics
등이 있다.
실제 환경에서는 잘못된 측정값이 존재한다.
이를 Outlier라고 한다.
예를 들어:
잘못된 Loop Closure
Feature Matching Error
GNSS Spike
등이 발생할 수 있다.
이를 처리하기 위해 다음과 같은 Robust Kernel이 사용된다.
Huber Loss
Tukey Loss
Cauchy Loss
이들은 이상치의 영향을 줄여준다.
최근에는 Semantic Factor Graph가 등장하고 있다.
기존 Graph는 기하학 정보만 포함하였다.
새로운 시스템은 다음도 포함한다.
Building
Vehicle
Person
Railway
Tunnel
Utility Pole
즉, 공간의 의미(Semantics)를 Graph에 포함한다.
또한 AI 모델의 예측 결과도 Factor로 추가할 수 있다.
향후 Factor Graph는 다음 기술과 결합될 것으로 예상된다.
Embodied AI
World Model
Digital Twin
Cloud Robotics
Multi-Robot Intelligence
미래의 Graph는 단순한 위치 관계를 넘어서:
Geometry
Semantics
Time
Context
Experience
를 모두 포함하는 지능형 공간 모델로 발전할 것이다.
특히 귀하가 개발 중인:
GPR 기반 지하시설물 검사 로봇
실외 자율주행 플랫폼
철도 검사 로봇
농업용 자율주행 로봇
에서는 Factor Graph Optimization이 핵심 역할을 수행한다.
LiDAR, IMU, GNSS RTK, Camera, Radar, GPR 기반 위치 정보를 하나의 Graph에 통합함으로써 수 km 이상의 장거리 환경에서도 높은 정확도의 위치추정과 지도생성이 가능해진다.
결론적으로 Factor Graph Optimization은 현대 SLAM 기술의 핵심 엔진이라고 할 수 있다. Variable Node와 Factor Node를 활용하여 센서 측정값과 상태 변수 사이의 관계를 확률적으로 표현하며, 이를 최적화함으로써 가장 일관성 있는 위치와 지도를 계산한다. 높은 확장성, 강력한 센서 융합 능력, 우수한 확률적 모델링 능력 덕분에 Factor Graph Optimization은 자율주행 로봇과 차세대 지능형 로봇 시스템의 핵심 기반 기술로 자리잡고 있다.
09.4 Constraint-Based SLAM
Constraint-Based SLAM은 현대 SLAM(Simultaneous Localization and Mapping) 시스템에서 가장 중요한 접근 방식 중 하나이다. 이 방법은 로봇의 자세(Pose), 랜드마크(Landmark), 센서 관측값, 환경 내 공간 관계를 다양한 제약조건(Constraint)으로 표현하고, 이러한 제약조건들을 최대한 만족하도록 최적화함으로써 위치추정과 지도생성을 수행한다.
기존의 순차적 필터 기반 위치추정 방법이 최신 측정값을 중심으로 상태를 갱신하는 방식이라면, Constraint-Based SLAM은 지금까지 수집된 모든 측정값을 하나의 통합된 최적화 문제로 다룬다. 따라서 장거리 주행이나 대규모 환경에서도 높은 정확도와 일관성을 유지할 수 있다.
오늘날 Constraint-Based SLAM은 Graph SLAM, Pose Graph Optimization, Factor Graph Optimization의 핵심 기반 기술이며, 자율주행차, 산업용 AMR, 드론, 철도 검사 로봇, GPR 기반 지하시설물 검사 로봇, 스마트시티 매핑 플랫폼 등에 폭넓게 사용되고 있다.
Constraint-Based SLAM의 기본 개념
Constraint-Based SLAM의 핵심 아이디어는 매우 단순하다.
로봇이 이동하면서 수집하는 모든 센서 데이터는 환경과 로봇 상태 사이의 관계(Relationship)를 제공한다.
예를 들어:
휠 엔코더 → 이동 거리
IMU → 회전량
LiDAR → 주변 구조물 위치
Camera → 특징점 관측
GNSS → 절대 위치
Radar → 거리 및 속도
등의 정보를 제공한다.
이러한 정보들은 모두 "어떤 변수들이 어떤 관계를 가져야 하는가"를 설명하는 제약조건으로 표현될 수 있다.
Constraint-Based SLAM은 이러한 제약조건을 모두 모아 가장 일관성 있는 상태(State)를 찾는다.
왜 Constraint-Based SLAM이 필요한가
일반적인 위치추정 시스템은 현재 위치를 계산하는 데 집중한다.
하지만 실제 환경에서는:
Odometry Drift
Sensor Noise
Calibration Error
Wheel Slip
Environmental Change
등의 문제가 지속적으로 발생한다.
예를 들어 로봇이 5km를 주행했다고 가정해보자.
매 이동마다 0.1%의 오차가 발생하면 최종 위치 오차는 수 m 이상으로 커질 수 있다.
Constraint-Based SLAM은 과거 측정값을 모두 유지하고 최적화에 활용함으로써 이러한 누적 오차를 최소화한다.
Constraint란 무엇인가
Constraint는 두 개 이상의 변수 사이에 존재하는 측정 기반 관계를 의미한다.
예를 들어:
Pose_A → Pose_B
사이의 이동량이
전진 2m
좌회전 3°
라고 측정되었다면
이는 하나의 Motion Constraint가 된다.
Constraint는 다음과 같이 표현할 수 있다.
"Pose_B는 Pose_A로부터 2m 전방, 3° 회전된 위치에 있어야 한다."
즉 Constraint는 상태 변수들 사이의 관계를 정의하는 규칙이다.
State Variable
Constraint-Based SLAM에서는 추정해야 하는 변수들을 State Variable이라고 부른다.
대표적인 변수는 다음과 같다.
Robot Pose
Position
Orientation
Landmark Position
Corner
Pole
Building Edge
Sign
Velocity
Linear Velocity
Angular Velocity
Sensor State
IMU Bias
GNSS Bias
Calibration Parameter
Camera Calibration
LiDAR Calibration
Constraint들은 이러한 변수들을 서로 연결한다.
Soft Constraint의 개념
Constraint-Based SLAM은 모든 측정값을 절대적으로 신뢰하지 않는다.
실제 센서 데이터는 항상 오차를 포함하기 때문이다.
예를 들어:
LiDAR\
→ ±2cm
IMU\
→ Drift 존재
GNSS\
→ ±1~3m
따라서 시스템은
"이 측정값은 어느 정도 신뢰할 수 있는가"
를 함께 저장한다.
이를 Soft Constraint라고 한다.
최적화 문제
Constraint-Based SLAM은 궁극적으로 최적화 문제이다.
각 Constraint는 Error Function을 생성한다.
예를 들어:
실제 측정값
2.0m
현재 추정값
1.8m
라면
Error = 0.2m
가 된다.
전체 시스템의 목표는 다음과 같다.
모든 Constraint Error의 합을 최소화
즉,
Minimize
Σ Error²
를 수행하는 것이다.
Residual Error
Residual은 Constraint가 얼마나 잘 만족되는지를 나타낸다.
Residual =
Observed Measurement
Predicted Measurement
이다.
Residual이 작을수록 Constraint를 잘 만족한다.
최적화는 전체 Residual을 최소화하는 방향으로 진행된다.
Motion Constraint
가장 많이 사용되는 Constraint이다.
로봇의 연속된 Pose 사이를 연결한다.
생성 가능한 센서는:
Wheel Encoder
Visual Odometry
LiDAR Odometry
IMU
INS
등이다.
Motion Constraint는 로봇의 이동 경로를 형성하는 기본 골격 역할을 한다.
Observation Constraint
Observation Constraint는 환경을 관측하면서 생성된다.
예를 들어:
카메라가 특정 특징점을 관측
LiDAR가 기둥을 관측
하는 경우이다.
이 Constraint는:
Pose ↔ Landmark
관계를 정의한다.
Observation Constraint는 Localization 정확도를 향상시킨다.
Loop Closure Constraint
Constraint-Based SLAM에서 가장 중요한 Constraint 중 하나이다.
로봇이 과거에 방문했던 장소를 다시 방문하면 생성된다.
예를 들어:
Pose_2000
과
Pose_100
이 동일 장소임을 인식하면
새로운 Constraint가 생성된다.
Pose_2000 ↔ Pose_100
이 Constraint는 지금까지 누적된 Drift를 발견하게 해준다.
Loop Closure의 효과
최적화 이전:
경로 왜곡
지도 뒤틀림
발생
최적화 이후:
Drift 감소
경로 정렬
지도 일관성 향상
실제 산업용 AMR에서는 Loop Closure가 Localization 품질을 결정하는 핵심 요소이다.
Multi-Sensor Constraint
Constraint-Based SLAM은 멀티 센서 환경에 매우 적합하다.
예를 들어 실외 자율주행 플랫폼에서는
LiDAR
Camera
IMU
GNSS RTK
Wheel Encoder
Radar
등이 사용된다.
각 센서의 데이터는 모두 Constraint 형태로 표현된다.
결과적으로 모든 센서 정보가 하나의 최적화 문제 안에서 처리된다.
Pose Graph와의 관계
Pose Graph는 Constraint-Based SLAM의 대표적인 구현 방식이다.
Pose Graph에서는
Node
→ Pose
Edge
→ Constraint
를 의미한다.
Constraint-Based SLAM의 개념을 그래프 형태로 표현한 것이 Pose Graph라고 볼 수 있다.
Factor Graph와의 관계
Factor Graph는 Constraint-Based SLAM을 더욱 일반화한 형태이다.
Variable Node
→ 상태 변수
Factor Node
→ Constraint
로 표현된다.
Factor Graph는 다음을 동시에 처리할 수 있다.
Pose
Landmark
Sensor Bias
Calibration Parameter
따라서 최신 SLAM 시스템은 대부분 Factor Graph 기반으로 구현된다.
대규모 환경에서의 장점
Constraint-Based SLAM은 매우 큰 환경에서도 효과적으로 동작한다.
예를 들어:
스마트 시티
철도망
항만
공항
농장
산업단지
등의 수 km 규모 환경에서도 적용 가능하다.
이는 Constraint 구조가 Sparse Matrix를 생성하기 때문이다.
Sparse Matrix는 대부분이 0인 행렬이다.
이를 활용하면:
메모리 감소
계산량 감소
대규모 최적화 가능
이라는 장점이 있다.
Incremental Constraint Optimization
실제 로봇은 계속 움직인다.
따라서 Constraint도 지속적으로 추가된다.
이를 위해:
iSAM
iSAM2
와 같은 Incremental Optimization 알고리즘이 사용된다.
새로운 Constraint가 들어올 때마다 전체 Graph를 다시 계산하지 않고 필요한 부분만 갱신한다.
이를 통해 실시간 SLAM이 가능해진다.
Robust Constraint Handling
실제 환경에서는 잘못된 Constraint가 생성될 수 있다.
예를 들어:
잘못된 Feature Match
False Loop Closure
GNSS Spike
LiDAR Reflection
등이다.
이러한 문제를 해결하기 위해:
Huber Loss
Tukey Loss
Cauchy Loss
등의 Robust Kernel이 사용된다.
이를 통해 이상치(Outlier)의 영향을 줄일 수 있다.
실외 자율주행 로봇에서의 활용
실외 환경에서는 GNSS가 항상 안정적인 것은 아니다.
다음 환경에서는 GNSS가 크게 저하될 수 있다.
터널
철도 구조물
산업단지
도시 협곡(Urban Canyon)
지하시설물 주변
Constraint-Based SLAM은:
LiDAR Constraint
Camera Constraint
IMU Constraint
GNSS Constraint
를 동시에 사용하여 안정적인 위치추정을 제공한다.
GPR 검사 로봇에서의 활용
귀하가 개발 중인 GPR 기반 지하시설물 검사 로봇에서는 Constraint-Based SLAM이 매우 중요한 역할을 수행한다.
사용 가능한 Constraint는 다음과 같다.
Wheel Odometry Constraint
IMU Constraint
LiDAR Matching Constraint
GNSS RTK Constraint
Camera Constraint
GPR Landmark Constraint
이러한 정보를 통합하면 수 km 이상의 장거리 검사 환경에서도 높은 위치 정확도를 유지할 수 있다.
Semantic Constraint
최근에는 Semantic Constraint 개념이 등장하고 있다.
기존 Constraint는 기하학 정보만 사용했다.
새로운 시스템은 다음도 포함한다.
Building
Railway
Utility Pole
Vehicle
Tunnel
Road Sign
즉 환경의 의미 정보까지 Constraint로 활용한다.
미래 발전 방향
Constraint-Based SLAM은 앞으로 다음 기술과 결합될 것으로 예상된다.
Semantic Mapping
World Model
Embodied AI
Cloud Robotics
Multi-Robot Collaboration
Digital Twin
미래의 Constraint Network는 단순한 위치 관계를 넘어:
Geometry
Semantics
Time
Context
Experience
를 동시에 표현하는 지능형 공간 모델로 발전할 것이다.
결론
Constraint-Based SLAM은 모든 센서 관측 정보를 제약조건으로 표현하고, 이를 전역 최적화를 통해 해결하는 현대 SLAM의 핵심 패러다임이다. Motion Constraint, Observation Constraint, Loop Closure Constraint, GNSS Constraint, Semantic Constraint 등을 하나의 통합된 프레임워크에서 처리할 수 있으며, 높은 정확도와 강력한 센서 융합 능력을 제공한다. 특히 대규모 실외 자율주행 로봇, 철도 검사 로봇, GPR 기반 지하시설물 검사 로봇과 같은 장거리 운용 플랫폼에서는 위치추정과 지도생성의 핵심 기술로 활용되고 있으며, 앞으로도 Graph SLAM과 Embodied AI 시대의 핵심 기반 기술로 발전할 것으로 전망된다.
09.5 Graph-Based Loop Closure
그래프 기반 루프 클로저
Graph-Based Loop Closure는 현대 Graph SLAM 시스템에서 가장 중요한 구성 요소 중 하나이다. 루프 클로저는 로봇이 과거에 방문했던 장소를 다시 인식하고, 그 정보를 이용하여 누적된 위치 오차를 보정하는 핵심 메커니즘이다. 루프 클로저가 없다면 아무리 정밀한 오도메트리, LiDAR, 카메라, IMU 기반 위치추정 시스템이라도 시간이 지남에 따라 드리프트(Drift)가 누적될 수밖에 없다. 이러한 누적 오차는 장거리 주행 시 지도 왜곡과 위치 오차를 발생시키며, 결국 자율주행 성능을 저하시킨다.
Graph-Based Loop Closure는 과거에 방문한 장소를 재인식하면 그래프에 새로운 제약조건(Constraint)을 추가하고, 그래프 최적화를 통해 전체 경로와 지도를 재조정한다. 이를 통해 누적된 오차를 전체 그래프에 분산시켜 보다 일관성 있는 지도와 정확한 위치추정을 가능하게 한다.
루프 클로저의 기본 개념
루프 클로저의 핵심 아이디어는 매우 직관적이다.
로봇이 환경을 탐색하다가 과거에 방문했던 장소로 다시 돌아온다면, 현재 위치와 과거 위치는 동일한 장소를 의미한다.
예를 들어 로봇이 창고를 한 바퀴 순회했다고 가정하자.
초기 위치:
Pose_0
현재 위치:
Pose_5000
실제 환경에서는 같은 장소이지만 오도메트리 누적으로 인해 다음과 같이 추정될 수 있다.
Pose_5000 ≠ Pose_0
이 경우 루프 클로저는
Pose_5000 ↔ Pose_0
라는 새로운 관계를 발견하게 된다.
이 관계는 그래프에 새로운 Edge 또는 Factor로 추가되며 전체 SLAM 시스템의 오차를 보정하는 중요한 역할을 수행한다.
루프 클로저가 필요한 이유
모든 센서는 오차를 가진다.
대표적으로:
Wheel Encoder → Slip
IMU → Drift
Visual Odometry → Feature Error
LiDAR Odometry → Registration Error
GNSS → Multipath
등이 존재한다.
초기에는 매우 작은 오차라도 장거리 주행을 하게 되면 점차 누적된다.
예를 들어:
0.1% 오차
1km 주행
최종 오차:
약 1m 이상
이 될 수 있다.
수 km 이상 이동하는 실외 자율주행 로봇에서는 이러한 누적 오차가 더욱 심각해진다.
루프 클로저는 이 누적 오차를 제거하는 가장 효과적인 방법이다.
Graph-Based Loop Closure의 특징
Graph-Based Loop Closure는 단순히 현재 위치만 수정하지 않는다.
대신 전체 그래프를 최적화한다.
예를 들어:
Pose_1
Pose_2
Pose_3
...
Pose_5000
이 존재한다고 가정하자.
Pose_5000과 Pose_1 사이의 루프 클로저가 발견되면 최적화는 모든 Pose를 재조정한다.
결과적으로:
지도 왜곡 감소
위치 오차 감소
전역 일관성 향상
이 이루어진다.
Place Recognition
루프 클로저의 첫 번째 단계는 Place Recognition이다.
현재 위치가 과거에 방문했던 장소인지 판단하는 과정이다.
이는 매우 어려운 문제이다.
왜냐하면 환경은 시간이 지나면서 변할 수 있기 때문이다.
예를 들어:
조명 변화
날씨 변화
이동 객체
계절 변화
공사
등이 발생할 수 있다.
그럼에도 시스템은 동일 장소를 인식해야 한다.
Visual Place Recognition
카메라 기반 루프 클로저에서 가장 널리 사용되는 방법이다.
카메라는 현재 영상을 촬영한다.
이 영상은 과거에 저장된 영상들과 비교된다.
대표적인 방법:
ORB Features
SIFT
SURF
Bag of Words
Deep Visual Embedding
등이 있다.
충분히 유사한 장면이 발견되면 루프 클로저 후보가 생성된다.
LiDAR 기반 Place Recognition
실외 자율주행 로봇에서는 LiDAR 기반 루프 클로저가 매우 중요하다.
LiDAR는 조명 변화의 영향을 거의 받지 않는다.
대표적인 방법:
Scan Context
M2DP
ISC
Global Descriptor
Point Cloud Signature
등이 있다.
현재 Point Cloud와 과거 Point Cloud를 비교하여 동일 장소를 인식한다.
Multi-Sensor Loop Closure
최근 시스템은 단일 센서에 의존하지 않는다.
다음 센서를 함께 사용한다.
LiDAR
Camera
IMU
GNSS
Radar
이러한 멀티 센서 루프 클로저는 단일 센서보다 훨씬 높은 신뢰도를 제공한다.
Loop Closure Verification
루프 클로저 후보가 생성되었다고 해서 바로 사용할 수는 없다.
잘못된 루프 클로저는 지도 전체를 망가뜨릴 수 있다.
이를 False Loop Closure라고 한다.
따라서 검증 과정이 필요하다.
Geometric Verification
가장 널리 사용되는 검증 방법이다.
현재 관측과 과거 관측 사이의 변환 관계를 계산한다.
만약 기하학적으로 일치한다면 루프 클로저를 승인한다.
그렇지 않으면 거부한다.
RANSAC 기반 검증
RANSAC은 이상치를 제거하면서 신뢰할 수 있는 매칭만 선택한다.
특징점 매칭 과정에서:
잘못된 매칭 제거
이상치 제거
안정적인 변환 계산
을 수행한다.
Visual SLAM과 LiDAR SLAM 모두에서 널리 사용된다.
Loop Closure Constraint 생성
검증이 완료되면 새로운 Constraint가 생성된다.
Pose Graph에서는:
Pose_A ↔ Pose_B
Edge 생성
Factor Graph에서는:
Loop Closure Factor 생성
이 Constraint는 두 Pose가 실제로 동일한 장소라는 정보를 제공한다.
Graph Optimization
새로운 Constraint가 추가되면 그래프 최적화가 수행된다.
대표적인 알고리즘:
Gauss-Newton
Levenberg-Marquardt
Dogleg
iSAM
iSAM2
최적화 과정은 전체 그래프의 오차를 최소화한다.
루프 클로저 최적화 효과
최적화 이전:
지도 왜곡
경로 오차
Drift 누적
최적화 이후:
경로 정렬
지도 정합
위치 정확도 향상
특히 수 km 이상의 장거리 환경에서는 매우 큰 효과를 얻을 수 있다.
LiDAR 기반 루프 클로저
LiDAR SLAM에서는 Point Cloud Registration이 사용된다.
대표적인 알고리즘:
ICP
GICP
NDT
현재 Point Cloud와 과거 Point Cloud를 정합하여 상대 변환을 계산한다.
정합 품질이 충분히 높으면 루프 클로저를 생성한다.
Visual SLAM 루프 클로저
대표적인 시스템:
ORB-SLAM
ORB-SLAM2
ORB-SLAM3
이들은 Bag-of-Words 기반 Place Recognition을 사용한다.
후속 단계에서 Geometric Verification을 수행한다.
최근에는 딥러닝 기반 Feature Descriptor도 사용되고 있다.
Semantic Loop Closure
최근 연구에서는 의미 정보(Semantics)를 활용한다.
예를 들어:
Building
Pole
Tree
Railway Signal
Tunnel Entrance
Utility Pole
등을 인식한다.
이러한 의미 정보를 활용하면 단순 특징점보다 더욱 안정적인 장소 인식이 가능하다.
Perceptual Aliasing 문제
루프 클로저의 가장 큰 문제 중 하나이다.
서로 다른 장소가 비슷하게 보이는 현상이다.
예를 들어:
창고 랙
긴 복도
철도 선로
농업용 작물 열
등은 매우 유사하게 보일 수 있다.
이 경우 잘못된 루프 클로저가 생성될 수 있다.
환경 변화 문제
장기 운영 시스템에서는 환경이 변한다.
예를 들어:
계절 변화
눈
비
낙엽
공사
차량 이동
등이 발생한다.
따라서 루프 클로저는 변화된 환경에서도 장소를 인식해야 한다.
최근에는 딥러닝 기반 Place Recognition이 이 문제를 해결하고 있다.
대규모 환경에서의 계산 문제
도시 규모의 지도에서는 수백만 개의 Pose가 존재할 수 있다.
모든 Pose를 비교하는 것은 불가능하다.
이를 해결하기 위해:
Vocabulary Tree
KD Tree
Approximate Nearest Neighbor
Hierarchical Search
등이 사용된다.
이를 통해 실시간 루프 클로저가 가능해진다.
Incremental Loop Closure
현대 Graph SLAM은 실시간으로 루프 클로저를 수행한다.
새로운 장소가 방문될 때마다:
후보 검색
검증
Constraint 생성
Incremental Optimization
을 반복한다.
대표적인 시스템:
iSAM
iSAM2
이다.
Multi-Robot Loop Closure
여러 대의 로봇이 동시에 지도를 생성하는 경우에도 루프 클로저가 사용된다.
예를 들어:
Robot A
Robot B
가 동일 장소를 방문하면
Inter-Robot Loop Closure
가 생성된다.
이를 통해:
Map Merge
Shared Localization
Fleet Mapping
이 가능해진다.
Cloud SLAM과 Loop Closure
클라우드 기반 SLAM에서는 중앙 서버가 루프 클로저를 수행한다.
장점:
대규모 지도 관리
다중 로봇 지원
높은 계산 성능
특히 스마트시티 수준의 매핑에서는 필수적인 기술이다.
GPR 검사 로봇에서의 활용
귀하가 개발 중인 GPR 기반 지하시설물 검사 로봇에서는 루프 클로저가 매우 중요하다.
사용 가능한 정보:
LiDAR
Camera
IMU
GNSS RTK
Wheel Encoder
GPR Signature
GPR 데이터 자체도 장소 인식에 활용될 수 있다.
예를 들어 특정 지하시설물 패턴이 반복적으로 관측되면 루프 클로저 후보가 될 수 있다.
이를 통해 수 km 규모의 검사 구간에서도 높은 위치 정확도를 유지할 수 있다.
AI 기반 Loop Closure
최근에는 딥러닝 기반 루프 클로저가 주목받고 있다.
대표 기술:
CNN Descriptor
NetVLAD
SuperPoint
SuperGlue
DINO
Foundation Model 기반 Place Recognition
이러한 모델은 조명 변화와 환경 변화에 더욱 강인하다.
미래 발전 방향
향후 Graph-Based Loop Closure는 다음 기술과 결합될 것으로 예상된다.
Semantic Mapping
World Model
Embodied AI
Cloud Robotics
Digital Twin
Multi-Robot Intelligence
미래 시스템은 단순히 "같은 장소"를 찾는 것을 넘어,
공간 구조
의미 정보
시간 정보
작업 이력
환경 변화
까지 이해하면서 장소를 인식하게 될 것이다.
결론
Graph-Based Loop Closure는 Graph SLAM의 핵심 기술 중 하나로, 과거에 방문했던 장소를 재인식하여 새로운 그래프 제약조건을 생성하고 이를 통해 누적된 위치 오차를 보정하는 역할을 수행한다. Place Recognition, Geometric Verification, Loop Closure Constraint 생성, Graph Optimization 과정을 통해 전역적으로 일관된 지도와 정확한 위치추정을 가능하게 한다. 특히 실외 자율주행 로봇, 철도 검사 로봇, 농업용 자율주행 로봇, GPR 기반 지하시설물 검사 로봇과 같은 장거리 운용 플랫폼에서는 필수 기술이며, 앞으로 AI 기반 장소 인식 및 Semantic Mapping과 결합하여 더욱 지능적인 SLAM 시스템으로 발전할 것으로 전망된다.
09.6 Large Scale Graph Management
대규모 그래프 관리
Large-Scale Graph Management(대규모 그래프 관리)는 현대 Graph SLAM 시스템에서 매우 중요한 기술 분야로, 자율주행 로봇이 넓은 환경에서 장기간 운용되더라도 계산 효율성, 위치추정 정확도, 지도 일관성을 유지할 수 있도록 지원한다. 로봇이 작은 실내 환경을 넘어 대형 공장, 물류센터, 산업단지, 농장, 철도망, 도로망, 터널, 지하시설물, 스마트시티와 같은 대규모 환경에서 운용될 경우 Graph SLAM이 생성하는 그래프의 크기는 급격히 증가한다.
초기에는 수백 개 수준의 Pose Node로 시작하지만, 장기간 운용 시 수십만 개에서 수백만 개의 Node와 Constraint가 생성될 수 있다. 이러한 초대형 그래프를 효율적으로 저장하고 최적화하며 유지관리하는 기술이 바로 Large-Scale Graph Management이다.
왜 대규모 그래프 관리가 필요한가
Graph SLAM은 다음과 같은 요소를 그래프에 저장한다.
Pose Node
Landmark Node
Odometry Constraint
Observation Constraint
Loop Closure Constraint
Sensor Fusion Constraint
로봇이 움직일 때마다 새로운 Pose가 생성된다.
예를 들어:
10Hz Pose 생성
1시간 운행
36,000 Pose
24시간 운행
864,000 Pose
30일 연속 운행
약 2,600만 Pose
가 생성될 수 있다.
여기에 LiDAR, Camera, IMU, GNSS 등의 데이터까지 추가되면 그래프 규모는 매우 커진다.
따라서 그래프를 효율적으로 관리하지 않으면:
메모리 부족
최적화 속도 저하
저장 공간 부족
실시간성 상실
문제가 발생한다.
Graph Growth 문제
대규모 Graph SLAM의 첫 번째 문제는 Graph Growth이다.
로봇이 이동할수록:
Node 증가
Edge 증가
Constraint 증가
가 지속적으로 발생한다.
특히 장거리 자율주행 시스템에서는 그래프가 무한정 커질 수 있다.
그래프 크기를 제어하지 않으면 계산량이 기하급수적으로 증가한다.
Pose Pruning
Pose Pruning은 불필요한 Pose를 제거하는 기술이다.
실제로 모든 Pose가 중요한 것은 아니다.
예를 들어:
1cm 이동
2cm 이동
3cm 이동
과 같이 거의 동일한 위치의 Pose가 연속적으로 생성될 수 있다.
이 경우 일부 Pose를 제거하여 그래프 크기를 줄일 수 있다.
장점:
메모리 감소
계산량 감소
최적화 속도 향상
Keyframe Selection
가장 널리 사용되는 그래프 관리 기법 중 하나이다.
모든 Pose를 저장하지 않고 중요한 Pose만 저장한다.
이를 Keyframe이라고 한다.
Keyframe 생성 조건:
일정 거리 이상 이동
일정 각도 이상 회전
새로운 환경 관측
Localization Uncertainty 증가
Visual SLAM과 LiDAR SLAM 모두에서 널리 사용된다.
Graph Sparsification
Graph Sparsification은 그래프 희소화 기술이다.
그래프 내에는 중복된 Constraint가 존재할 수 있다.
예를 들어:
Pose_A ↔ Pose_B
Pose_A ↔ Pose_C
Pose_B ↔ Pose_C
가 모두 존재할 경우 일부 Constraint는 제거 가능하다.
희소화의 목적은:
정보 유지
그래프 축소
이다.
결과적으로 최적화 속도가 크게 향상된다.
Submap Architecture
대규모 환경에서는 하나의 거대한 그래프보다 여러 개의 작은 그래프로 나누는 것이 효율적이다.
이를 Submap Architecture라고 한다.
예를 들어:
창고 A
창고 B
창고 C
를 각각 독립적인 Submap으로 관리한다.
각 Submap은 독립적으로 최적화된다.
상위 Graph가 Submap 간 관계를 관리한다.
Hierarchical Graph SLAM
Hierarchical Graph SLAM은 다단계 그래프 구조를 사용한다.
Level 1
Pose Graph
Level 2
Submap Graph
Level 3
Regional Graph
Level 4
Global Graph
이러한 계층 구조는 수백 km 규모 환경도 처리할 수 있게 해준다.
Map Partitioning
대규모 환경을 논리적으로 분할하는 기술이다.
예:
공장
생산구역
물류구역
창고구역
철도
구간 A
구간 B
구간 C
스마트시티
북부
남부
산업단지
각 영역은 독립적으로 관리된다.
Loop Closure Management
그래프가 커질수록 Loop Closure 검색 비용도 증가한다.
예를 들어:
100만 Pose
전체 검색
→ 매우 비효율적
따라서 다음 기법이 사용된다.
Spatial Index
KD Tree
Vocabulary Tree
Approximate Nearest Neighbor
이를 통해 후보 검색 속도를 향상시킨다.
Graph Database
초대형 그래프는 메모리에 모두 저장할 수 없다.
따라서 Graph Database가 사용된다.
대표적인 예:
Neo4j
JanusGraph
TigerGraph
Graph Database는:
저장
검색
업데이트
를 효율적으로 수행한다.
Cloud-Based Graph Management
최근에는 그래프 일부를 클라우드에서 관리한다.
로봇은:
Pose
Sensor Data
Loop Closure
정보를 업로드한다.
클라우드는:
대규모 최적화
Map Merge
Long-Term Storage
를 수행한다.
장점:
계산 성능 향상
저장 공간 확보
다중 로봇 지원
Multi-Robot Graph Management
여러 대의 로봇이 하나의 지도를 공유할 수 있다.
예를 들어:
Robot A
Robot B
Robot C
가 동시에 작업하면
모든 데이터가 하나의 Shared Graph에 저장된다.
이 경우:
Map Merge
Conflict Resolution
Graph Synchronization
기술이 필요하다.
Distributed Graph SLAM
대규모 Fleet 환경에서는 중앙 서버만으로는 부족할 수 있다.
따라서 그래프를 여러 노드에 분산 저장한다.
각 노드는:
- Local Optimization
수행
주기적으로:
- Constraint Exchange
실시
이를 Distributed Graph SLAM이라고 한다.
Memory Management
Jetson Orin NX와 같은 Edge Device는 메모리가 제한적이다.
따라서 다음이 중요하다.
Sparse Matrix
Compression
Keyframe Storage
Graph Streaming
사용하지 않는 그래프는 디스크 또는 클라우드로 이동시킨다.
Graph Compression
그래프 압축 기술은 저장 공간을 줄인다.
예를 들어:
유사한 경로
반복 구조
중복 Observation
을 하나로 통합한다.
장점:
저장 공간 감소
전송 속도 향상
Map Lifecycle Management
환경은 시간이 지나면서 변한다.
예:
건물 신축
도로 변경
철도 공사
계절 변화
오래된 정보는 삭제하거나 갱신해야 한다.
이를 Map Lifecycle Management라고 한다.
Long-Term Mapping
장기간 운영 시스템에서는 여러 버전의 지도가 존재한다.
예:
여름 지도
겨울 지도
주간 지도
야간 지도
시스템은 상황에 맞는 지도를 선택한다.
실외 자율주행 로봇에서의 활용
실외 환경은 매우 넓다.
예:
농장
철도
항만
공항
산업단지
수 km~수백 km 규모가 될 수 있다.
이 경우 Large-Scale Graph Management는 필수 기술이다.
철도 검사 로봇
철도 검사용 로봇은 수백 km의 선로를 따라 이동할 수 있다.
그래프는:
Rail Segment
Station
Tunnel
Signal
등을 포함한다.
효율적인 그래프 관리 없이는 운용이 불가능하다.
GPR 기반 지하시설물 검사 로봇
귀하가 개발 중인 GPR 기반 검사 로봿에서는 특히 중요하다.
사용 데이터:
LiDAR
Camera
IMU
GNSS RTK
Wheel Encoder
GPR Signature
장기간 검사 시 그래프는 매우 커진다.
그래프 관리 기술을 적용하면:
반복 검사
변화 탐지
장기 추적
이 가능해진다.
Semantic Graph Management
최근에는 Semantic 정보도 그래프에 포함된다.
예:
Building
Road
Railway
Utility Pole
Tunnel
Pipeline
이러한 객체가 그래프 노드가 된다.
Semantic Graph는:
Place Recognition 향상
Loop Closure 향상
Map Organization 향상
효과를 제공한다.
AI 기반 그래프 관리
최근 연구에서는 AI를 활용한다.
적용 분야:
Keyframe Selection
Graph Compression
Loop Closure Search
Map Segmentation
Semantic Labeling
AI는 그래프 관리 자동화를 가능하게 한다.
Digital Twin과 Graph Management
Digital Twin에서는 그래프가 현실 세계의 디지털 표현이 된다.
실시간 센서 데이터가 그래프를 업데이트한다.
그래프는:
상태 추적
예지보전
시뮬레이션
의 기반이 된다.
Cloud-Native Graph SLAM
미래에는 그래프 대부분이 클라우드에서 관리될 것이다.
특징:
무제한 확장성
다중 로봇 협업
전역 최적화
영구 지도 관리
스마트시티 수준의 지도 관리가 가능해진다.
미래 발전 방향
Large-Scale Graph Management는 앞으로 다음 기술과 통합될 것으로 예상된다.
Graph SLAM
Semantic Mapping
World Model
Digital Twin
Cloud Robotics
Embodied AI
미래의 그래프는 단순한 위치 관계를 넘어:
Geometry
Semantics
Time
Context
Experience
를 모두 포함하는 지능형 공간 지식 그래프로 발전할 것이다.
결론
Large-Scale Graph Management는 대규모 환경에서 Graph SLAM을 실용적으로 운용하기 위한 핵심 기술이다. Keyframe Selection, Graph Sparsification, Submap Management, Hierarchical Graph SLAM, Distributed Optimization, Cloud Integration, Semantic Graph Management 등의 기술을 활용하여 수십만~수백만 개의 노드와 제약조건을 효율적으로 관리할 수 있다. 특히 실외 자율주행 플랫폼, 철도 검사 로봇, 농업용 자율주행 로봇, GPR 기반 지하시설물 검사 로봇과 같이 수 km 이상의 장거리 운용이 필요한 시스템에서는 필수적인 기술이며, 향후 Digital Twin과 Embodied AI 시대의 핵심 인프라로 발전할 것으로 예상된다.
09.7 Graph SLAM Computation Optimization
Graph SLAM 계산 최적화
Graph SLAM Computation Optimization은 현대 SLAM 시스템에서 매우 중요한 기술 분야로, 그래프 최적화 과정의 계산 복잡도를 줄이고, 실시간 성능을 향상시키며, 메모리 사용량을 최소화하고, 대규모 환경에서도 안정적으로 동작할 수 있도록 하는 기술들을 의미한다.
Graph SLAM은 연구실 수준의 소규모 실험 환경을 넘어 공장, 물류센터, 스마트시티, 철도망, 농업 환경, 지하시설물 검사 환경과 같은 대규모 실제 환경에서 활용되고 있다. 그러나 환경 규모가 커질수록 그래프의 크기와 최적화 비용도 급격히 증가한다.
현대 자율주행 로봇은 다음 데이터를 동시에 처리해야 한다.
LiDAR Point Cloud
Camera Image
IMU Data
GNSS Data
Wheel Odometry
Radar Data
Semantic Information
이러한 대규모 데이터를 실시간으로 처리하기 위해서는 Graph SLAM 계산 최적화가 필수적이다.
Graph SLAM의 계산 문제
Graph SLAM은 본질적으로 최적화 문제이다.
로봇 Pose, Landmark, Sensor State 등을 변수로 정의하고,
Constraint를 만족하도록 최적의 상태를 찾는다.
그래프가 작을 때는 문제가 없지만,
다음과 같이 그래프가 커질 경우 문제가 발생한다.
예:
Pose : 100만 개
Constraint : 500만 개
이 경우 최적화 계산량은 매우 커진다.
결과적으로:
메모리 사용량 증가
최적화 시간 증가
실시간성 저하
가 발생한다.
Sparsity의 중요성
Graph SLAM 계산 최적화의 핵심은 Sparsity(희소성)이다.
실제 Graph는 대부분 Sparse Structure를 가진다.
예를 들어:
Pose_1000
은 대부분
Pose_999
Pose_1001
과만 연결된다.
즉 전체 행렬 중 대부분은 0이다.
이를 Sparse Matrix라고 한다.
Sparse Matrix를 활용하면:
메모리 절감
계산 속도 향상
이 가능하다.
Sparse Linear Algebra
현대 Graph SLAM은 Sparse Linear Algebra를 기반으로 한다.
Dense Matrix를 사용하면
O(N²)
수준의 메모리가 필요하다.
반면 Sparse Matrix는
O(K)
수준만 필요하다.
대표적인 기법:
Sparse Cholesky
Sparse QR
Sparse LU
등이 사용된다.
Variable Elimination Ordering
최적화 과정에서는 변수를 순차적으로 제거한다.
이를 Variable Elimination이라고 한다.
제거 순서에 따라 계산량이 크게 달라진다.
좋지 않은 순서:
Fill-In 증가
메모리 증가
최적화 속도 저하
좋은 순서:
Fill-In 최소화
Sparse 유지
대표적인 방법:
Approximate Minimum Degree
Nested Dissection
등이 있다.
Graph Sparsification
그래프가 너무 커지면 일부 Constraint를 제거할 필요가 있다.
이를 Graph Sparsification이라고 한다.
목표는:
정보 유지
그래프 축소
이다.
예를 들어
100개의 Constraint가 동일 정보를 제공한다면
일부를 제거해도 된다.
효과:
그래프 크기 감소
최적화 속도 향상
Keyframe Optimization
실제 시스템은 모든 Pose를 저장하지 않는다.
중요한 Pose만 유지한다.
이를 Keyframe이라고 한다.
Keyframe 선택 기준:
거리 이동
방향 변화
정보량 증가
불확실성 증가
Visual SLAM과 LiDAR SLAM에서 널리 사용된다.
Submap Optimization
대규모 환경에서는 전체 Graph를 한 번에 최적화하지 않는다.
환경을 여러 개의 Submap으로 나눈다.
예:
Submap A
Submap B
Submap C
각 Submap은 독립적으로 최적화된다.
상위 Graph가 Submap 간 관계를 관리한다.
장점:
계산량 감소
메모리 감소
병렬 처리 가능
Hierarchical Graph Optimization
Submap을 더욱 확장한 구조이다.
Local Level
Pose Graph
Regional Level
Submap Graph
Global Level
World Graph
각 레벨에서 별도 최적화를 수행한다.
수백 km 규모의 환경도 처리 가능하다.
Incremental Optimization
전통적인 Batch Optimization은
새로운 데이터가 들어올 때마다 전체 Graph를 다시 계산한다.
대규모 Graph에서는 매우 비효율적이다.
Incremental Optimization은
새로운 Constraint만 반영하여 계산한다.
대표적인 알고리즘:
iSAM
iSAM2
Incremental Factorization
Incremental Optimization의 핵심 기술이다.
기존 Matrix Factorization을 재사용한다.
새로운 Constraint가 들어오면
필요한 부분만 수정한다.
장점:
실시간 처리
계산량 감소
Marginalization
오래된 State를 제거하는 기술이다.
예를 들어
Pose_1
Pose_2
Pose_3
...
Pose_100000
이 있을 때
초기 Pose를 제거할 수 있다.
단,
정보는 유지해야 한다.
이를 위해 Constraint로 압축한다.
Fixed-Lag Smoothing
최근 일정 구간만 최적화하는 방식이다.
예:
최근 1000 Pose
만 유지
이전 Pose는 Marginalization
장점:
계산량 일정
실시간성 확보
Visual-Inertial SLAM에서 많이 사용된다.
Loop Closure 최적화
Loop Closure는 Graph 전체에 영향을 준다.
예를 들어:
Pose_50000 ↔ Pose_100
Loop Closure 발견
이 경우 수만 개 Pose가 영향을 받는다.
효율적인 최적화 알고리즘이 필요하다.
Parallel Computing
Graph SLAM의 많은 작업은 병렬화 가능하다.
예:
Feature Extraction
Scan Matching
Loop Closure Search
Graph Construction
멀티코어 CPU를 사용하여 동시에 수행한다.
GPU Acceleration
최근 Graph SLAM은 GPU를 적극 활용한다.
GPU는 수천 개의 코어를 가진다.
가속 가능한 작업:
Point Cloud Processing
ICP
Feature Extraction
Neural Network Inference
Matrix Computation
Jetson 기반 최적화
귀하가 사용하는:
Jetson Orin NX
Jetson AGX Orin
Jetson Thor
등에서는 GPU 최적화가 매우 중요하다.
특히:
CUDA
TensorRT
cuBLAS
cuSparse
라이브러리가 활용된다.
Heterogeneous Computing
최근 시스템은 여러 종류의 프로세서를 동시에 사용한다.
CPU
→ Graph 관리
GPU
→ Point Cloud 처리
NPU
→ AI 추론
이러한 구조를 Heterogeneous Computing이라고 한다.
Memory Optimization
Edge Device의 메모리는 제한적이다.
예:
Jetson Orin NX
8GB~16GB
따라서:
Sparse Structure
Compression
Memory Pooling
등이 중요하다.
Out-of-Core Optimization
그래프가 RAM보다 커질 경우 사용된다.
일부 Graph는 SSD에 저장한다.
필요할 때만 메모리에 로드한다.
장점:
- 초대형 Graph 처리 가능
Distributed Optimization
멀티 로봇 환경에서는 Graph를 분산 저장한다.
각 로봇은:
- Local Graph
최적화 수행
주기적으로:
- Constraint Exchange
실시
이를 Distributed Graph Optimization이라고 한다.
Cloud-Assisted Graph SLAM
일부 계산은 클라우드에서 수행한다.
Edge Device:
Localization
Navigation
Cloud:
Global Optimization
Loop Closure
Map Merge
장점:
계산 성능 향상
장기 지도 관리
Approximate Optimization
항상 정확한 해가 필요한 것은 아니다.
근사해(Approximate Solution)를 사용하면
계산량을 크게 줄일 수 있다.
특히:
Embedded System
Battery Robot
에서 중요하다.
AI 기반 계산 최적화
최근에는 AI가 최적화에도 사용된다.
예:
Keyframe Selection
Graph Sparsification
Loop Closure Candidate Filtering
Data Association
AI는 계산량을 줄이면서도 성능을 유지하도록 도와준다.
Semantic 기반 최적화
모든 객체를 동일하게 처리할 필요는 없다.
예:
중요 Landmark
Building
Pole
Signal
중요하지 않은 객체
사람
차량
그림자
Semantic 정보를 이용하면 중요한 정보만 집중적으로 처리할 수 있다.
실외 자율주행 로봇에서의 활용
실외 환경은 매우 넓다.
예:
철도
도로
농장
산업단지
수십 km 이상 운행할 수 있다.
따라서 계산 최적화 없이는 실시간 운용이 어렵다.
GPR 기반 지하시설물 검사 로봇에서의 활용
귀하가 개발 중인 GPR 검사 로봇은 다음 데이터를 동시에 처리한다.
LiDAR
Camera
IMU
GNSS RTK
Wheel Encoder
GPR Data
장거리 검사 시 Graph 규모가 매우 커진다.
효율적인 계산 최적화를 적용하면:
장시간 운용 가능
실시간 위치추정 가능
지도 일관성 유지
가 가능해진다.
대표적인 Graph SLAM 최적화 프레임워크
현재 널리 사용되는 프레임워크는 다음과 같다.
GTSAM
g2o
Ceres Solver
Cartographer
LIO-SAM
FAST-LIO
RTAB-Map
ORB-SLAM3
이들은 모두 다양한 계산 최적화 기법을 적용하여 실시간 Graph SLAM을 구현한다.
미래 발전 방향
Graph SLAM 계산 최적화는 앞으로 다음 기술들과 통합될 것으로 예상된다.
Embodied AI
World Model
Digital Twin
Cloud Robotics
Semantic Mapping
Foundation Model
미래의 시스템은 단순히 그래프를 최적화하는 수준을 넘어,
Geometry
Semantics
Time
Context
Experience
를 동시에 처리하는 지능형 최적화 엔진으로 발전할 것이다.
결론
Graph SLAM Computation Optimization은 Graph SLAM을 실제 로봇 시스템에서 운용 가능하게 만드는 핵심 기술이다. Sparse Matrix, Incremental Optimization, Keyframe Selection, Graph Sparsification, Hierarchical Optimization, GPU Acceleration, Cloud Integration, AI 기반 최적화 등을 활용하여 대규모 그래프에서도 실시간 성능을 유지할 수 있다. 특히 실외 자율주행 플랫폼, 철도 검사 로봇, 농업용 로봇, GPR 기반 지하시설물 검사 로봇과 같은 장거리 운용 시스템에서는 필수적인 기술이며, 향후 대규모 Digital Twin 및 Embodied AI 시스템의 핵심 계산 엔진으로 발전할 것으로 전망된다.
09.8 Graph SLAM Applications
Graph SLAM의 응용 분야
Graph SLAM Applications는 그래프 기반 위치추정 및 지도생성 기술이 실제 산업, 로봇, 교통, 인프라, 스마트시티 및 자율시스템 분야에 적용되는 다양한 사례를 의미한다. Graph SLAM은 원래 로봇의 위치추정(Localization)과 지도생성(Mapping)을 동시에 해결하기 위한 학술 연구 분야에서 시작되었지만, 현재는 자율주행 로봇의 핵심 기술로 자리 잡았다.
Graph SLAM은 다음과 같은 특징을 제공한다.
전역적으로 일관된 지도 생성
Loop Closure 기반 Drift 보정
멀티 센서 융합
대규모 환경 지원
장기간 운용 가능
이러한 장점 덕분에 Graph SLAM은 자율주행차, 물류 로봇, 철도 검사 로봇, 농업 로봇, 드론, 산업용 검사 로봇, GPR 기반 지하시설물 검사 시스템 등 다양한 분야에서 사용되고 있다.
자율주행 자동차
Graph SLAM의 대표적인 응용 분야는 자율주행 자동차이다.
자율주행차는 다음과 같은 환경에서 동작한다.
도심
고속도로
지하주차장
터널
산업단지
주택가
GPS만으로는 정확한 위치추정이 어렵다.
대표적인 문제:
GPS 음영지역
Multipath Error
터널
고층건물 사이
Graph SLAM은 다음 센서를 통합한다.
LiDAR
Camera
IMU
GNSS
Wheel Encoder
Radar
이들을 하나의 그래프 최적화 문제로 통합하여 cm 수준의 위치 정확도를 제공한다.
물류창고 AMR
대규모 물류창고는 Graph SLAM의 대표적인 응용 사례이다.
Amazon, Alibaba, JD Logistics 등은 수천 대의 AMR을 운용한다.
창고 환경 특징:
반복 구조
움직이는 사람
이동하는 물품
동적 환경
Graph SLAM은:
위치추정
Loop Closure
지도 유지
를 수행한다.
이를 통해 장기간 운용 시에도 높은 정확도를 유지할 수 있다.
스마트 팩토리
스마트 팩토리에서는 다음과 같은 로봇이 사용된다.
AGV
AMR
자율 지게차
검사 로봇
협업 로봇
공장 내부는:
GPS 부재
금속 구조물 다수
환경 변화
등의 특징을 가진다.
Graph SLAM은 LiDAR와 카메라를 활용하여 안정적인 위치추정을 제공한다.
농업용 자율주행 로봇
최근 농업 자동화 분야에서도 Graph SLAM 활용이 증가하고 있다.
대표적인 플랫폼:
자율 트랙터
수확 로봇
방제 로봇
농장 순찰 로봇
농업 환경 특징:
넓은 공간
반복 구조
계절 변화
Graph SLAM은 다음을 활용한다.
RTK GNSS
LiDAR
Camera
IMU
이를 통해 정밀 농업(Precision Agriculture)을 구현한다.
철도 검사 로봇
철도 분야는 Graph SLAM 활용 가치가 매우 높다.
철도 환경:
수백 km 이상
터널
교량
역사
선로
검사 로봇은 다음 데이터를 수집한다.
LiDAR
RGB Camera
Thermal Camera
Ultrasonic
IMU
Graph SLAM은 수 km 이상의 선로에서도 안정적인 위치추정을 수행할 수 있다.
도로 인프라 검사
도로 검사 로봇 및 차량은 다음 시설을 검사한다.
도로 균열
포트홀
차선
가드레일
교량
Graph SLAM은 검사 결과를 정확한 위치에 매핑한다.
이를 통해:
유지보수
상태 모니터링
변화 탐지
가 가능하다.
교량 및 터널 검사
교량과 터널은 정기적인 검사가 필요하다.
검사 로봇은 다음 센서를 활용한다.
LiDAR
Camera
Thermal Camera
Laser Scanner
Graph SLAM은 검사 데이터를 정확한 위치에 정렬한다.
이를 통해 장기간 변화 추적이 가능하다.
광산 및 지하 환경
광산은 Graph SLAM의 대표적인 응용 분야이다.
특징:
GPS 사용 불가
먼지
어두운 환경
반복 구조
활용 분야:
광산 차량
굴착 장비
지하 검사 로봇
LiDAR 기반 Graph SLAM이 주로 사용된다.
드론(UAV)
드론은 GPS가 불안정한 환경에서도 비행해야 한다.
예:
실내
터널
교량 하부
산업설비
Graph SLAM은:
Camera
IMU
LiDAR
를 이용하여 위치를 추정한다.
Visual-Inertial Graph SLAM이 대표적이다.
병원 서비스 로봇
병원에서는 다음 작업을 수행한다.
약품 배송
검체 운반
물품 이동
안내 서비스
병원 환경은:
복잡한 복도
다수의 사람
빈번한 환경 변화
가 존재한다.
Graph SLAM은 안정적인 실내 내비게이션을 제공한다.
호텔 및 공공시설 로봇
서비스 로봇은:
호텔
공항
쇼핑몰
오피스
등에서 사용된다.
Graph SLAM은:
위치추정
경로계획
지도 유지
를 수행한다.
스마트시티
Graph SLAM은 미래 스마트시티의 핵심 기술 중 하나이다.
활용 분야:
자율주행 차량
배달 로봇
순찰 로봇
환경 모니터링
모든 시스템은 공유된 공간 지도를 활용할 수 있다.
Multi-Robot Mapping
여러 대의 로봇이 동시에 지도를 생성한다.
예:
Robot A
Robot B
Robot C
각 로봇의 Graph는 하나의 Shared Graph로 통합된다.
장점:
빠른 지도 생성
대규모 환경 대응
협업 작업
Cloud Robotics
Graph SLAM은 Cloud Robotics의 핵심 기술이다.
로봇은:
Sensor Data
Pose Data
를 클라우드에 전송한다.
클라우드는:
Global Optimization
Loop Closure
Map Merge
를 수행한다.
Digital Twin
Digital Twin은 현실 세계를 디지털 공간에 복제하는 기술이다.
Graph SLAM은 Digital Twin의 공간 정보 엔진 역할을 한다.
실시간 센서 데이터가 그래프를 업데이트한다.
이를 통해:
상태 모니터링
예지보전
시뮬레이션
이 가능하다.
Semantic Mapping
최근 Graph SLAM은 단순한 지도생성을 넘어 의미 정보를 포함한다.
예:
Building
Road
Tunnel
Railway
Utility Pole
Vehicle
이를 Semantic Graph SLAM이라고 한다.
AI 기반 Graph SLAM
딥러닝은 Graph SLAM의 성능을 향상시키고 있다.
적용 분야:
Place Recognition
Loop Closure
Object Detection
Semantic Segmentation
Feature Extraction
AI와 Graph SLAM의 결합은 더욱 지능적인 공간 인식을 가능하게 한다.
실외 자율주행 플랫폼
실외 자율주행 로봇은 Graph SLAM의 가장 중요한 응용 분야 중 하나이다.
대표적인 적용 분야:
농업
철도
항만
공항
산업단지
국방
사용 센서:
LiDAR
Camera
IMU
GNSS RTK
Radar
Graph SLAM은 이 모든 데이터를 통합한다.
GPR 기반 지하시설물 검사 로봇
귀하가 개발 중인 GPR 기반 지하시설물 검사 로봇은 Graph SLAM의 대표적인 고급 응용 사례가 될 수 있다.
통합 가능한 데이터:
GPR
LiDAR
Camera
IMU
GNSS RTK
Wheel Encoder
Graph SLAM을 활용하면:
지하시설물 위치 정밀 매핑
반복 검사
변화 탐지
Digital Twin 구축
이 가능하다.
특히 수 km 이상의 검사 구간에서도 높은 위치 정확도를 유지할 수 있다.
인프라 Digital Twin
향후 Graph SLAM은 국가 인프라 관리의 핵심 기술로 발전할 전망이다.
대상:
철도
도로
교량
터널
상하수도
전력망
Graph SLAM은 이러한 인프라를 지속적으로 업데이트하는 공간 정보 엔진 역할을 수행할 수 있다.
미래 발전 방향
Graph SLAM은 앞으로 다음 기술들과 통합될 것으로 예상된다.
Embodied AI
World Model
Foundation Model
Cloud Robotics
Digital Twin
Semantic Mapping
Multi-Robot Intelligence
미래의 Graph는 단순한 위치 그래프가 아니라:
Geometry
Semantics
Time
Context
Experience
를 모두 포함하는 공간 지식 그래프(Spatial Knowledge Graph)로 발전할 것이다.
결론
Graph SLAM은 자율주행 자동차, 물류 AMR, 스마트 팩토리, 농업 로봇, 철도 검사 로봇, 드론, 병원 서비스 로봇, 스마트시티, Digital Twin, Cloud Robotics, GPR 기반 지하시설물 검사 로봇 등 거의 모든 자율주행 시스템의 핵심 기술로 활용되고 있다. Graph SLAM은 단순한 위치추정 기술을 넘어 공간 인식, 지도 생성, 환경 이해, 멀티 센서 융합, 협업 로봇, Digital Twin 구축의 기반 기술로 발전하고 있으며, 향후 Embodied AI 시대의 핵심 공간 지능 엔진으로 자리잡을 것으로 전망된다.








Top comments (0)