explaingit

raulmur/orb_slam2

10,156C++Audience · researcherComplexity · 5/5LicenseSetup · hard

TLDR

A real-time C++ research system for visual SLAM that lets robots and drones build 3D maps and track their own position using monocular, stereo, or depth cameras, with loop closure to correct accumulated errors.

Mindmap

mindmap
  root((ORB-SLAM2))
    Camera Modes
      Monocular
      Stereo
      RGB-D depth
    Core Features
      Localization
      Mapping
      Loop closure
      Relocalization
    Platform
      Linux only
      C++ library
    Audience
      Robotics engineers
      Computer vision researchers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Integrate real-time visual SLAM into a robot or drone so it can navigate and map an environment using only camera input.

USE CASE 2

Use loop closure and relocalization to keep a robot correctly oriented even after revisiting a location or temporarily losing tracking.

USE CASE 3

Evaluate monocular, stereo, and RGB-D camera setups for metric-scale mapping in academic robotics research.

Tech stack

C++

Getting it running

Difficulty · hard Time to first run · 1day+

Requires compiling multiple C++ dependencies on Linux, no Windows or Mac support out of the box.

GPLv3, free to use and modify, but any distributed software that includes this must also be released as open source under GPL. A commercial license is available by contacting the authors.

In plain English

ORB-SLAM2 is a research system that lets a camera figure out where it is in physical space while simultaneously building a map of its surroundings. This problem is called SLAM, which stands for Simultaneous Localization and Mapping, and it is a core challenge in robotics and self-driving vehicles. A robot or drone running this software can move through an environment and, using only camera input, keep track of its own position and accumulate a rough 3D map of what it has seen. The system works with three types of camera setups: a single standard camera (monocular), two side-by-side cameras like human eyes (stereo), and a depth camera that measures distance directly (RGB-D, the kind used in devices like the Microsoft Kinect). Each mode has different accuracy properties. The stereo and depth modes can produce maps at real-world scale, while the monocular mode maps relative geometry but cannot determine absolute distances on its own. A notable capability is loop closure. If the camera travels a loop and returns to a place it has already mapped, the system recognizes the match and corrects accumulated positioning errors. It can also relocalize, meaning if the camera is moved suddenly or loses tracking, it can figure out where it is again by comparing what it currently sees to its stored map. This is a C++ library produced by academic researchers at the University of Zaragoza and published in IEEE Transactions on Robotics. It is intended for robotics engineers and computer vision researchers who want a tested, real-time SLAM implementation to integrate into their own systems. Installing it requires compiling several dependencies and working on Linux. It is released under a GPLv3 license, with a commercial licensing option available by contacting the authors.

Copy-paste prompts

Prompt 1
I want to run ORB-SLAM2 with a monocular camera on my Linux robot. Walk me through compiling the required dependencies and launching the system.
Prompt 2
How does ORB-SLAM2 handle loop closure, and how do I verify it is working correctly on a recorded dataset?
Prompt 3
I have a RealSense depth camera. Show me how to configure ORB-SLAM2 in RGB-D mode and build a map of my office.
Prompt 4
What are the accuracy trade-offs between monocular, stereo, and RGB-D modes in ORB-SLAM2, and when should I choose each one?
Open on GitHub → Explain another repo

← raulmur on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.