본문 바로가기
시스템

ORB-SLAM3: 카메라와 IMU로 로봇이 스스로 위치를 찾고 지도를 만드는 방법

by 프레스러쉬 2026. 9. 18.

ORB-SLAM3: 카메라와 IMU로 로봇이 스스로 위치를 찾고 지도를 만드는 방법

로봇이나 자율이동장비가 실제 공간에서 안정적으로 움직이려면 가장 먼저 해결해야 할 문제가 있습니다. 바로 “나는 지금 어디에 있고, 주변 공간은 어떻게 생겼는가?”라는 질문입니다. SLAM(Simultaneous Localization and Mapping)은 이 두 문제, 즉 자기 위치 추정(Localization)과 지도 작성(Mapping)을 동시에 수행하는 기술입니다.

이번 글에서는 IEEE Transactions on Robotics에 발표된 ORB-SLAM3 논문을 바탕으로, Visual SLAM과 Visual-Inertial SLAM이 어떻게 동작하는지, ORB-SLAM3가 기존 ORB-SLAM2에서 무엇을 확장했는지, 그리고 이 기술을 산업용 로봇·머신비전·정밀 장비에 어떻게 바라볼 수 있는지를 차근차근 정리해 보겠습니다.

1. SLAM은 왜 필요한가?

Visual Odometry(VO)는 연속된 카메라 영상에서 카메라가 얼마나 움직였는지를 계산하는 기술입니다. 문제는 시간이 지날수록 작은 오차가 누적되어 드리프트가 커진다는 것입니다. 반면 SLAM은 단순히 최근 몇 초의 영상만 사용하는 것이 아니라, 과거에 보았던 장소와 특징점을 다시 연결하여 누적 오차를 줄입니다.

ORB-SLAM3 논문은 데이터 연관을 세 단계로 설명합니다. Short-term association은 최근 프레임 사이의 특징을 연결하고, Mid-term association은 현재 카메라와 가까운 과거 맵 포인트를 다시 활용하며, Long-term association은 예전에 방문했던 장소를 재인식하여 Loop Closing, Relocalization, Map Merging을 수행합니다. 이 세 수준의 정보 재사용이 SLAM의 정확도를 결정하는 핵심입니다.

2. ORB-SLAM3가 지원하는 센서 구성

ORB-SLAM3의 장점 중 하나는 하나의 라이브러리에서 다양한 센서 구성을 지원한다는 것입니다.

① Monocular Camera
② Stereo Camera
③ RGB-D Camera
④ Monocular + IMU
⑤ Stereo + IMU

또한 일반적인 Pin-hole 카메라뿐 아니라 Fisheye 카메라도 사용할 수 있도록 카메라 모델을 추상화했습니다. 산업 현장에서는 좁은 공간에서 넓은 시야를 확보해야 하는 AGV, AMR, 모바일 로봇, 협동로봇 주변 인식 등에 Fisheye 카메라가 유용할 수 있는데, ORB-SLAM3는 이러한 광학 구성을 고려한 구조를 갖습니다.

3. ORB Feature는 무엇인가?

ORB-SLAM 계열의 이름에 들어가는 ORB는 Oriented FAST and Rotated BRIEF의 약자입니다. 영상에서 특징점(Keypoint)을 빠르게 검출하고, 각 특징점을 짧은 Binary Descriptor로 표현합니다.

이렇게 얻은 특징점은 프레임과 프레임 사이에서 같은 물체나 같은 공간을 찾는 데 사용됩니다. 예를 들어 로봇 카메라가 공장 통로의 모서리, 볼트, 장비 프레임, 라벨 가장자리 등을 반복해서 관측하면, ORB Descriptor를 이용해 과거 맵 포인트와 현재 영상의 특징점을 연결할 수 있습니다.

ORB 방식의 장점은 계산량이 비교적 작으면서도 Feature Matching에 유리하다는 점입니다. 특히 장시간 누적된 지도에서 과거 Keyframe과 현재 영상을 다시 연결하는 Place Recognition에 적합합니다.

4. ORB-SLAM3의 전체 구조

논문의 핵심 구조는 크게 네 부분으로 볼 수 있습니다.

Tracking
현재 프레임에서 ORB Feature를 추출하고, 기존 Active Map과 비교하여 현재 카메라 Pose를 실시간으로 계산합니다. 현재 프레임을 새로운 Keyframe으로 등록할지도 결정합니다.

Local Mapping
새로운 Keyframe과 Map Point를 추가하고 불필요한 정보를 제거합니다. 또한 Local Bundle Adjustment를 수행하여 카메라 Pose와 3D Point 위치를 함께 최적화합니다.

Loop Closing & Map Merging
과거에 방문한 장소와 현재 장소가 같은 곳인지 찾습니다. 같은 지도 안에서 다시 만난 경우 Loop Closure를 수행하고, 다른 지도에서 같은 장소를 찾았다면 두 지도를 하나로 합칩니다.

Atlas
ORB-SLAM3의 중요한 확장 개념입니다. 하나의 지도만 유지하지 않고 여러 개의 Map을 관리할 수 있습니다. Tracking이 완전히 끊기면 새로운 Map을 만들고, 나중에 이전 장소를 다시 만나면 자동으로 기존 Map과 합칩니다.

5. 왜 Multi-Map이 중요한가?

실제 로봇은 항상 깨끗한 영상만 얻는 것이 아닙니다. 갑자기 카메라가 가려질 수도 있고, 로봇이 빠르게 회전하면서 Motion Blur가 생길 수도 있으며, 특징이 거의 없는 흰 벽이나 검은 바닥을 지나갈 수도 있습니다.

기존 시스템은 Tracking을 잃으면 전체 위치 추정이 무너질 수 있습니다. ORB-SLAM3는 Tracking이 일정 시간 복구되지 않으면 현재 Map을 보관하고 새로운 Active Map을 시작합니다. 이후 과거에 알고 있던 장소를 다시 만나면 Place Recognition을 통해 두 Map을 연결합니다.

이 개념은 공장 자동화에서도 의미가 큽니다. 예를 들어 AMR이 장비 사이를 이동하다가 작업자나 물류박스 때문에 시야가 잠시 막혀도, 새로운 지역을 계속 추적한 뒤 기존 지도와 다시 연결할 수 있기 때문입니다.

6. Visual-Inertial SLAM이 중요한 이유

카메라 영상만으로 위치를 계산하면 Texture 부족, Motion Blur, 순간적인 가림에 영향을 받습니다. 이때 IMU의 Gyroscope와 Accelerometer 정보를 결합하면 카메라가 잠시 어려움을 겪더라도 움직임을 계속 추정할 수 있습니다.

ORB-SLAM3의 Visual-Inertial 구조에서는 Camera Pose뿐 아니라 속도, Gyroscope Bias, Accelerometer Bias, Gravity Direction까지 함께 추정합니다. IMU 측정값은 프레임 사이에서 Preintegration되어 Visual Residual과 함께 최적화됩니다.

특히 Monocular Camera는 절대 Scale을 직접 알기 어렵지만 IMU를 결합하면 실제 Scale을 추정할 수 있습니다. 즉 “영상 속에서 10만큼 움직였다” 수준이 아니라 실제 미터 단위의 움직임으로 바꿀 수 있습니다.

7. ORB-SLAM3의 IMU 초기화 방식

Visual-Inertial SLAM에서 가장 까다로운 부분 중 하나가 초기화입니다. Scale, Gravity, Velocity, IMU Bias가 처음부터 잘못 잡히면 이후의 모든 추정이 불안정해집니다.

ORB-SLAM3는 초기화를 세 단계로 나눕니다.

1단계: Vision-Only MAP Estimation
먼저 약 2초 동안 순수 영상 기반 SLAM으로 Up-to-scale Map을 만듭니다.

2단계: Inertial-Only MAP Estimation
영상에서 얻은 궤적을 기반으로 Scale, Gravity Direction, Velocity, Accelerometer/Gyroscope Bias를 MAP 방식으로 추정합니다.

3단계: Visual-Inertial MAP Estimation
영상과 IMU 정보를 함께 최적화하여 초기 상태를 다시 정교화합니다.

논문에서는 초기 2초의 궤적만으로 약 5% 수준의 Scale Error를 얻고, 이후 5초와 15초 시점의 Visual-Inertial BA를 통해 약 1% 수준으로 수렴한다고 보고합니다.

8. Place Recognition과 DBoW2

로봇이 “이곳은 예전에 왔던 장소다”라고 판단하기 위해 ORB-SLAM3는 DBoW2 기반 Bag-of-Words Database를 사용합니다. 이미지의 ORB Descriptor를 단어처럼 표현하고, 현재 Keyframe과 비슷한 과거 Keyframe 후보를 빠르게 찾습니다.

ORB-SLAM3는 기존 방식처럼 단순히 연속 세 프레임에서 같은 후보가 나오는 것을 기다리기보다, 후보 Keyframe과 주변 Covisible Keyframe의 Geometry를 적극적으로 검증합니다. 이를 통해 Place Recognition Recall을 높이고 Loop Closing이나 Map Merging을 더 빠르게 수행합니다.

9. Loop Closing은 왜 필요한가?

SLAM에서는 아무리 정밀하게 움직임을 추정해도 작은 오차가 누적됩니다. 로봇이 공장 한 바퀴를 돌고 출발점에 돌아왔는데 계산상으로는 몇 cm 혹은 몇 m 떨어진 위치로 판단될 수 있습니다.

Loop Closing은 과거에 지나갔던 장소를 다시 찾았을 때 누적 오차를 전체 Map에 재분배하여 궤적을 닫아 주는 과정입니다. ORB-SLAM3에서는 Place Recognition → 중복 Map Point 탐색 → Covisibility Graph 연결 → Pose Graph Optimization → 필요 시 Global Bundle Adjustment의 흐름으로 정합성을 높입니다.

10. Map Merging: 여러 번 만든 지도를 하나로 합친다

ORB-SLAM3의 또 하나의 강점은 Multi-session SLAM입니다. 월요일에 만든 Map과 화요일에 만든 Map을 별개의 데이터로 취급하는 것이 아니라, 공통 지역을 찾으면 자동으로 하나의 Map으로 합칠 수 있습니다.

Map Merging에서는 두 Map 사이의 정렬 Transform을 구하고, 두 Map이 만나는 Welding Window를 구성합니다. 이 영역에서 중복 Map Point를 제거하고 Local Bundle Adjustment를 수행한 뒤, Essential Graph Optimization을 통해 보정을 전체 Map에 전달합니다.

이 구조는 향후 공장 Mapping에도 매우 유용합니다. 설비 배치가 조금 변하거나 특정 구역을 새로 촬영한 경우 전체 지도를 처음부터 다시 만드는 대신 기존 지도를 계속 성장시키는 방식으로 운영할 수 있기 때문입니다.

11. Stereo와 Monocular의 차이

Monocular SLAM은 카메라 한 대만 필요해 작고 저렴하지만 절대 Scale을 직접 알기 어렵습니다. Stereo는 두 카메라의 Baseline을 이용해 초기 순간부터 실제 Scale을 가진 3D Point를 만들 수 있습니다.

ORB-SLAM3에서는 Stereo Image가 반드시 Rectified 되어야 하는 것도 아닙니다. 두 카메라 사이의 고정된 SE(3) Transform을 알고 있다면 Non-rectified Stereo와 Fisheye Stereo도 사용할 수 있도록 설계했습니다.

따라서 산업용 로봇에서 넓은 FOV가 필요하거나 카메라 설치 자유도를 높이고 싶은 경우 상당히 실용적인 설계 철학입니다.

12. 실제 성능은 어느 정도인가?

논문은 EuRoC와 TUM-VI Benchmark에서 ORB-SLAM3를 평가했습니다.

대표적인 결과로 Stereo-Inertial SLAM은 EuRoC에서 평균 약 3.5 cm 수준의 정확도를 보였으며, TUM-VI의 작은 Room Sequence에서는 평균 RMS ATE가 약 9 mm 수준으로 보고되었습니다.

또한 시스템은 일반 CPU 환경에서도 Tracking 약 30~40 fps, Local Mapping 약 3~6 keyframes/s 수준으로 실시간 실행이 가능하다고 보고합니다.

논문에서 특히 강조되는 것은 단순한 수치보다 Sensor Fusion과 Mid/Long-term Association이 Accuracy와 Robustness를 함께 높였다는 점입니다.

13. ORB-SLAM3의 한계

완벽한 SLAM은 아닙니다. 논문이 직접 언급한 대표적인 약점은 Low-texture Environment입니다. 특징점이 거의 없는 벽, 바닥, 반복 패턴 등에서는 ORB Feature 자체가 충분히 검출되지 않을 수 있습니다.

또한 야외 장거리 환경에서는 가까운 Feature가 부족해 Scale이나 Accelerometer Bias의 Drift가 커질 수 있습니다. Fisheye 영상의 하늘처럼 너무 먼 Feature도 안정적인 Pose Estimation을 방해할 수 있습니다.

산업 현장에서 적용하려면 Feature-rich Marker, 조명 설계, Camera FOV, Exposure, IMU 품질, 진동, Calibration 안정성 등을 함께 검토해야 합니다.

14. 산업용 로봇에서는 어떻게 활용할 수 있을까?

ORB-SLAM3는 논문상 일반적인 로봇·AR/VR SLAM 기술이지만, 산업용 장비에서도 다음과 같은 방향으로 응용을 생각해 볼 수 있습니다.

AMR/AGV 자율 이동
공장 안에서 LiDAR와 함께 혹은 별도로 Visual-Inertial SLAM을 사용해 위치를 추정할 수 있습니다.

로봇 Teaching 보조
카메라가 이동하면서 작업 공간을 Map으로 만들고, 작업 지점의 상대 Pose를 기록하는 방식으로 활용할 수 있습니다.

설비 내부 3D 위치 추적
Inspection Head나 Camera Module이 이동하는 과정에서 실제 Pose를 독립적으로 측정하는 보조 센서 역할을 할 수 있습니다.

Maintenance Mapping
장비를 점검할 때 촬영한 영상과 이전 점검 때의 Map을 결합하여 같은 위치의 부품을 자동 재인식할 수 있습니다.

Robot + Vision Calibration Monitoring
정해진 작업 경로를 반복하면서 카메라가 추정한 Pose와 로봇 Encoder Pose를 비교하면 기구적 Backlash, 조립 오차, 장기 Drift를 진단하는 보조 지표로 발전시킬 수 있습니다.

15. 산업용 머신비전 관점에서 배울 점

ORB-SLAM3에서 가장 중요한 교훈은 단순히 “좋은 알고리즘 하나”가 아니라 과거 정보를 어떻게 재사용하느냐입니다.

산업용 검사에서도 매 프레임을 독립적으로 판단하는 것보다, 이전 Frame, 이전 Cycle, 이전 Recipe, 이전 Calibration 상태를 연결하면 훨씬 강한 시스템이 될 수 있습니다.

예를 들어 검사 카메라의 위치가 미세하게 변하더라도 과거 Landmark를 다시 찾고, 누적된 Camera Pose History를 이용해 Calibration Drift를 추적할 수 있습니다. 이런 관점에서 SLAM은 단순한 이동로봇 기술을 넘어 Vision System의 공간 기억 기술로 바라볼 수 있습니다.

16. 기술을 제품으로 연결한다면

ORB-SLAM3를 그대로 판매하는 것보다 산업 현장의 문제에 맞게 모듈화하는 것이 중요합니다. 예를 들어 다음과 같은 제품 방향을 생각할 수 있습니다.

• Robot Vision Localization Module
• AMR Visual-Inertial Positioning Module
• Equipment Camera Pose Monitoring
• Multi-session Factory Mapping
• Vision Calibration Drift Detection
• Mobile Inspection Digital Twin Mapping

특히 기존 머신비전 장비는 고정 카메라 중심이지만, 앞으로 Physical AI와 이동형 로봇이 확산되면 “카메라 자체의 위치를 실시간으로 알고 있는 Vision”의 중요성이 커질 가능성이 높습니다.

17. 마무리

ORB-SLAM3의 핵심은 ORB Feature 자체에만 있지 않습니다. Visual, Inertial, Loop Closing, Relocalization, Multi-map, Bundle Adjustment를 하나의 일관된 시스템으로 통합하고, 과거의 정보를 최대한 다시 활용한다는 점에 있습니다.

한 문장으로 정리하면 다음과 같습니다.

“ORB-SLAM3는 카메라와 IMU가 본 공간을 일회성 정보로 버리지 않고, 다시 찾아 쓰고, 연결하고, 합치면서 점점 더 정확한 공간 기억을 만들어 가는 시스템이다.”

이러한 개념은 향후 산업용 로봇, 이동형 검사장비, Physical AI, 디지털 트윈, Vision 기반 예지진단 시스템을 설계할 때도 중요한 기반 기술이 될 수 있습니다.

태그

 

#ORB_SLAM3 #SLAM #VisualSLAM #VisualInertialSLAM #StereoVision #StereoCamera #RGBD #IMU #ORBFeature #BundleAdjustment #LoopClosing #Relocalization #MapMerging #MultiMap #Atlas #DBoW2 #ComputerVision #RobotVision #MachineVision #AMR #AGV #Robotics #PhysicalAI #DigitalTwin #IndustrialVision #자율주행로봇 #산업용로봇 #머신비전 #스테레오비전 #로봇비전 #비주얼SLAM