User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
cs:slam:start [2019/05/01 14:56]
Steve Hemm [Tracking]
cs:slam:start [2019/08/18 16:20]
Steve Hemm [Tracking]
Line 1: Line 1:
-====== SLAM (Page still under construction) ​======+====== SLAM ======
 ====== Simultaneous Localization and Mapping ====== ====== Simultaneous Localization and Mapping ======
  
Line 51: Line 51:
 ==== Tracking ==== ==== Tracking ====
  
--Tracking localizes the camera by comparing features in a local map. +-Tracking localizes the camera by comparing features in a local map.   
--Detects features using the FAST algorithm+ 
--Describes features using ORB algorithm.+-Detects features using the [[https://​docs.opencv.org/​3.0-beta/​doc/​py_tutorials/​py_feature2d/​py_fast/​py_fast.html|FAST Algorithm]]. 
 + 
 +-Describes features using [[https://​opencv-python-tutroals.readthedocs.io/​en/​latest/​py_tutorials/​py_feature2d/​py_orb/​py_orb.html|ORB Algorithm]]. 
 -Selects a new keyframe. -Selects a new keyframe.
 +
 -If localization is lost, uses Place Recognition module to relocate. -If localization is lost, uses Place Recognition module to relocate.
 +
 +
 +
 ==== Local Mapping ==== ==== Local Mapping ====
 +
 +-Keyframes are added to co-visibility graph Spanning Tree.
 +
 +-New Map points are creates by triangulating matching ORB features from different keyframes.
 +
 +-Validity of map point is checked by seeing if it is found in other keyframes where it is predicted to be. Must be seen by at least 3 other keyframes.
 +
 +
 ==== Loop Closing ==== ==== Loop Closing ====
 +
 +-Loop closing is when the sub recognizes that it has returned to a previous location and adjust map points to accommodate.
 +
 +-To detect possible loops, check bag of words vectors in Place Recognition module of the current keyframe and its neighbors in the co-visibility graph.
 +
 +-If loop candidate is found preform similarity transform.
 +
 +-Fuse map points and preform bundle adjustment.
 ==== Map ==== ==== Map ====
 +
 +Each map point stores:
 +    *Its 3D position in the world coordinate system.
 +
 +    *ORB descriptor.
 +
 +    *The maximum dmax and minimum dmin distances at which the point can be observed, according to the scale invariance limits of the ORB features.
 ==== Place Recognition ==== ==== Place Recognition ====