Three-dimensional reconstruction of computer vision - Chapter 8: SLAM system design "Sfm and SLAM core algorithm in simple terms (Lu Peng)"

Chapter 8: SLAM System Design

1. Introduction to SLAM

Simultaneous Localization and Mapping (SLAM): simultaneous positioning and mapping

  • Localization: the position and attitude of the sensor;
  • Mapping: map construction
  • Application scenarios: positioning, navigation, obstacle avoidance, reconstruction, interaction

SLAM sensor classification:

  • Carried on the robot body, such as wheel encoders, cameras, lasers, etc.;
    installed in the environment, such as guide rails, QR code signs, etc.;

Open source SLAM solution
insert image description here

2. ORB-SLAM system

Run three threads simultaneously:

  • Tracking: determine the current frame pose;
  • Mapping: complete local map construction;
  • Loopback correction: loopback detection and correction of system drift based on loopback information;

insert image description here

2.1 Keyword introduction

(1) map point

  • 3D point coordinates in the world coordinate system;
  • Observation direction, that is, the average value of observation directions generated by all views that can observe the feature point;
  • ORB feature descriptor;
  • The maximum distance and the minimum distance that the point can be observed;

(2) Key frame

  • camera pose;
  • internal parameters;
  • All ORB feature descriptors extracted in the frame, and the correspondence between them and map points;

(3) Common view

A directed unweighted graph with nodes as keyframes. If the number of map points shared by two nodes is greater than the threshold (at least 15), there is an edge, and the weight of the edge is set to the number of shared map points.

(4) Essence map

It is a subgraph of the common view, all nodes are retained, and the number of edges is less than that of the common view, and the number of edges is reduced as much as possible. Its function is to speed up the calculation of the loop correction.
Essential graph = spanning tree + edge with common view edge weight exceeding 100 + loop edge

2.2 Tracking threads

Tracking: Given the current frame, extract ORB features from the image, estimate the pose of the current frame based on the previous frame, if the estimation fails, try to relocate the initial pose globally, build a local map to further optimize the pose, and determine whether to set it to Keyframe.

insert image description here

2.3 Mapping thread

Mapping (LocalMapping): complete local map construction. Including the insertion of keyframes, verifying and filtering the recently generated map points, and then generating new map points, using local beam adjustment (Local BA), and finally filtering the inserted keyframes to remove redundant keyframes .

insert image description here

2.4 Loopback correction thread

Loop Closing: Contains two steps of loop closure detection and loop closure correction. Closed-loop detection first uses the bag-of-words model to find closed-loop images, and then calculates the similarity transformation through the Sim3 algorithm. Closed-loop correction is mainly closed-loop fusion and graph optimization of Essential Graph.

Guess you like

Origin blog.csdn.net/xijuezhu8128/article/details/127267662