Loop closing in VIORB

Search IconIcon to open search

Source: Mur-Artal 2017 VI-ORB
See also: Loop closure detection (general)

Overview

  • To reduce drift accumulated during exploration (when returning to an already mapped location)
  • Loop detection: of large loops using place recognition
  • Loop correction: first do lightweight pose-graph optimisation (PGO), then do full BA in a separate thread (in order not to interfere with real-time operations)

Implementation

  • After loop detection: do match validation (alignment of points between keyframes)
  • Then pose-graph optimisation to reduce the accumulated error in trajectory
    • (PGO: pose-only, ignores IMU info)
    • IMU info ignored, but velocities are corrected by rotating them according to keyframe orientation –> suboptimal, but should be accurate enough to allow IMU data to be used right after the PGO
    • in ORBSLAM: PGO is 7-DoF optimisation (due to scale + 3 rot + 3 xyz)
    • in VIORB, 6 DoF (scale is known from initialisation bzw. observable)