├── .gitignore ├── README.md ├── SLAM_table.pdf ├── SLAM_table.tex ├── refs.bib └── slam_front_and_back_end.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | *.aux 3 | *.fls 4 | *.bbl 5 | *.blg 6 | *.out 7 | *.toc 8 | *.synctex.gz 9 | *.fdb_latexmk 10 | *.lof 11 | *.lot 12 | *.swp 13 | *.fuse_hidden* 14 | *blx.bib 15 | *.bcf 16 | *.xml 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Purpose 2 | While doing some research on SLAM / VO for my Masterthesis I noticed that there 3 | is no list which is up to date and holds all currently available SLAM 4 | algorithms. Since the search took a long time and I wish no one else to have to 5 | do the same thing I figured I should probably just make this list public. So, 6 | here you go a list of all the SLAM algorithms/ topics I was able to find, 7 | related references, a link to the code if available, which sensors are being used 8 | and a few quick notes what is special about the implementation. Feel free to extend and 9 | use the list as you wish. 10 | 11 | [List in google document viewer](https://docs.google.com/viewer?url=https://raw.githubusercontent.com/kafendt/List-of-SLAM-VO-algorithms/master/SLAM_table.pdf) 12 | 13 | [List rendered through Jupyter](http://nbviewer.jupyter.org/github/kafendt/List-of-SLAM-VO-algorithms/blob/master/SLAM_table.pdf) 14 | 15 | [Download](https://raw.githubusercontent.com/kafendt/List-of-SLAM-VO-algorithms/master/SLAM_table.pdf) 16 | 17 | If you would like to cite this repository you can use this BibTeX entry: 18 | ``` 19 | @misc{Kahlefendt2017, 20 | author = {Kahlefendt, C.}, 21 | title = {List of SLAM and Visual Odometry Algorithms}, 22 | year = {2017}, 23 | publisher = {GitHub}, 24 | journal = {GitHub repository}, 25 | howpublished = {\url{https://github.com/kafendt/List-of-SLAM-VO-algorithms/}} 26 | } 27 | ``` 28 | -------------------------------------------------------------------------------- /SLAM_table.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kafendt/List-of-SLAM-VO-algorithms/58b6534e5df761286d09e7fc2303d3bc9c941bb1/SLAM_table.pdf -------------------------------------------------------------------------------- /SLAM_table.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper,12pt]{scrartcl} 2 | \usepackage{url} 3 | \usepackage{longtable} %% make tables look nice 4 | \usepackage{multirow} %% for \multirow and \multicolumn commands 5 | \usepackage{hyperref} 6 | 7 | %% Bibliography----------------------------------- 8 | \usepackage[sorting=none, backend=bibtex8]{biblatex} 9 | \usepackage{csquotes} 10 | \addbibresource{refs.bib} 11 | 12 | 13 | \begin{document} 14 | 15 | {\footnotesize 16 | \begin{longtable}{l|l|l|l|l} 17 | \caption{List of SLAM / VO algorithms}\\[2mm] 18 | \label{tab:list_found_slam_algorithms} 19 | \textbf{Name} & \textbf{Refs} & \textbf{Code} & \textbf{Sensors} & \textbf{Notes}\\ 20 | \hline 21 | & & & &\\ 22 | \textbf{AprilSLAM} & \cite{Wang2016} (2016) & \href{https://github.com/ProjectArtemis/aprilslam}{Link} & Monocular & Uses 2D planar markers\\ 23 | & \cite{Olson2011} (2011) & & &\\ 24 | & & & &\\ 25 | \textbf{ARM SLAM} & \cite{Klingensmith2016} (2016) & - & RGB-D & Estimation of robot joint angles\\ 26 | & & & &\\ 27 | \textbf{BatSLAM} & \cite{Steckel2015} (2015) & - & Sonar & Uses RatSLAM as back-end\\ 28 | & \cite{Steckel2013} (2013) & & &\\ 29 | & & & &\\ 30 | \textbf{BundleFusion} & \cite{Dai2017} (2011) & {\href{https://github.com/niessner/BundleFusion}{Link}} & RGB-D & Focus on 3D-scanning\\ 31 | & & & &\\ 32 | \textbf{CD SLAM} & \cite{Pirker2011} (2011) & - & Monocular & Focus on dynamic environments\\ 33 | & \cite{Pirker2010} (2010) & & & Custom descriptor\\ 34 | & & & &\\ 35 | \textbf{C-KLAM} & \cite{Nerurkar2014} (2014) & - & Monocular, & Usage of inter-keyframe information\\ 36 | & & & IMU &\\ 37 | & & & &\\ 38 | \textbf{CNN SLAM} & \cite{Tateno2017} (2017) & - & Monocular & Depth prediction via CNN\\ 39 | & & & &\\ 40 | \textbf{COP SLAM} & \cite{Dubbelman2015} (2015) & - & - (back-end) & Sparse pose-graph\\ 41 | & \cite{Dubbelman2013} (2013) & & & Scale drift aware (Lie groups)\\ 42 | & \cite{Dubbelman2010} (2010) & & &\\ 43 | & & & &\\ 44 | \textbf{CoSLAM} & \cite{Zou2013} (2013) & {\href{https://github.com/danping/CoSLAM}{Link}} & Multiple cameras & Dynamic environments\\ 45 | & & & &\\ 46 | \textbf{DEMO} & \cite{Zhang2014} (2014) & - & Monocular, & Usage of depth in odometry\\ 47 | & & & RGB-D, &\\ 48 | & & & LIDAR &\\ 49 | & & & &\\ 50 | \textbf{DolphinSLAM} & \cite{Zaffari2016} (2016) & {\href{https://github.com/dolphin-slam}{Link}} & Monocular, IMU & Underwater (RatSLAM back-end)\\ 51 | & \cite{Silveira2015} (2015) & & Sonar, DVL & ROS implementation\\ 52 | & & & &\\ 53 | \textbf{DP SLAM} & \cite{Eliazar2004} (2004) & {\href{https://users.cs.duke.edu/~parr/dpslam}{Link}} & LIDAR & Particle filter back-end\\ 54 | & \cite{Eliazar2003} (2003) & & &\\ 55 | & & & &\\ 56 | \textbf{DPPTAM} & \cite{Concha2015b} (2015) & {\href{https://github.com/alejocb/dpptam}{Link}} & Monocular & Dense, estimates planar areas\\ 57 | & & & &\\ 58 | \textbf{DSO} & \cite{Engel2016} (2016) & {\href{https://github.com/JakobEngel/dso}{Link}} & Monocular & Semi-dense odometry\\ 59 | & & & & Estimates camera parameters\\ 60 | & & & &\\ 61 | \textbf{DT SLAM} & \cite{Daniel2014} (2014) & {\href{https://github.com/plumonito/dtslam}{Link}} & Monocular & Tracks 2D and 3D features (indirect)\\ 62 | & & & & Creates combinable submaps\\ 63 | & & & & Can track pure rotation\\ 64 | & & & &\\ 65 | \textbf{DTAM} & \cite{Newcombe2011} (2011) & {\href{https://github.com/anuranbaka/OpenDTAM}{Link}} & Monocular & Dense, GPU reliant\\ 66 | & & & & Robust to rapid motion\\ 67 | & & & &\\ 68 | \textbf{DVO} & \cite{Kerl2013} (2013) & {\href{https://github.com/tum-vision/dvo_slam}{Link}} & RGB-D & Entropy based method for loops\\ 69 | & & & &\\ 70 | \textbf{EIF SLAM} & \cite{Samsuri2015} (2015) & - & - (back-end) &\\ 71 | & \cite{Sola2014} (2014) & & &\\ 72 | & \cite{Kurt-Yavuz2012} (2012) & & &\\ 73 | & \cite{He2011} (2011) & & &\\ 74 | & \cite{AuatCheein2011} (2011) & & &\\ 75 | & \cite{Zhou2008} (2008) & & &\\ 76 | & & & &\\ 77 | \textbf{EKF SLAM} & \cite{Paz2008} (2008) & - & - (back-end) &\\ 78 | & \cite{Bailey2006} (2006) & & &\\ 79 | & \cite{Bailey2006a} (2006) & & &\\ 80 | & \cite{Riisgaard2004} (2004) & & &\\ 81 | & \cite{Thrun1999} (2002) & & &\\ 82 | & & & &\\ 83 | \textbf{ElasticFusion} & \cite{Whelan2015} (2015) & {\href{https://github.com/mp3guy/ElasticFusion}{Link}} & RGB-D & Windowed surfel-based fusion\\ 84 | & & & &\\ 85 | \textbf{FAB-MAP} & \cite{Glover2012} (2012) & {\href{https://github.com/arrenglover/openfabmap}{Link}} & - (back-end) & Appearance-based loop\\ 86 | & \cite{Glover2010} (2010) & & & closure detection\\ 87 | & \cite{Paul2010} (2010) & & &\\ 88 | & \cite{Cummins2009} (2009) & & &\\ 89 | & \cite{Cummins2008} (2008) & & &\\ 90 | & & & &\\ 91 | \textbf{FastSLAM} & \cite{Abouzahir2014} (2014) & {\href{https://github.com/bushuhui/fastslam}{Link}} & - (back-end) &\\ 92 | & \cite{Naminski2013} (2013) & & &\\ 93 | & \cite{Kurt-Yavuz2012} (2012) & & &\\ 94 | & \cite{Thrun2004} (2004) & & &\\ 95 | & \cite{Montemerlo2003} (2003) & & &\\ 96 | & \cite{Montemerlo2002} (2002) & & &\\ 97 | & & & &\\ 98 | \textbf{FrameSLAM} & \cite{Konolige2008} (2008) & - & Stereo & CenSure features\\ 99 | & & & &\\ 100 | \textbf{GDVO} & \cite{Zhu2017} (2017) & {\href{https://github.com/syywh/gdvo}{Link}} & Stereo & Dense\\ 101 | & & & & Dual Jacobian scheme\\ 102 | & & & &\\ 103 | \textbf{GPSLAM} & \cite{Pirker2011a} (2011) & - & RGB-D & Sparse map, dense occupancy grid\\ 104 | & & & &\\ 105 | \textbf{GP-SLAM} & \cite{Yan2017} (2017) & {\href{https://github.com/gtrll/gpslam}{Link}} & & Sparse gaussian process regression\\ 106 | & \cite{Dong2017} (2017) & & & for Lie groups\\ 107 | & & & &\\ 108 | \textbf{Graph SLAM} & \cite{Grisetti2010} (2010) & - & - (back-end) &\\ 109 | & \cite{Olson2006} (2006) & & &\\ 110 | & \cite{Thrun2006} (2006) & & &\\ 111 | & & & &\\ 112 | \textbf{Hector SLAM} & \cite{Kohlbrecher2011} (2011) & {\href{https://github.com/tu-darmstadt-ros-pkg/hector_slam}{Link}} & LIDAR, & ROS implementation\\ 113 | & & & IMU & No loop detection\\ 114 | & & & &\\ 115 | \textbf{KinectFusion} & \cite{Pirovano2012} (2012) & {\href{https://github.com/PointCloudLibrary/pcl}{Link}} & RGB-D & Object segmentation\\ 116 | & \cite{Izadi2011} (2011) & & & Uses only depth sensor\\ 117 | & \cite{Newcombe2011a} (2011) & & & GPU reliant\\ 118 | & & & &\\ 119 | \textbf{Kintinious} & \cite{Whelan2013a} (2013) & {\href{https://github.com/mp3guy/Kintinuous}{Link}} & RGB-D & Extension of KinectFusion\\ 120 | & \cite{Whelan2013} (2013) & & &\\ 121 | & \cite{Whelan2012} (2012) & & &\\ 122 | & & & &\\ 123 | \textbf{LOAM} & \cite{Zhang2015a} (2015) & {\href{https://github.com/daobilige-su/loam_continuous}{Link}} & LIDAR &\\ 124 | & & & &\\ 125 | \textbf{LSD SLAM} & \cite{Engel2015} (2015) & {\href{https://github.com/tum-vision/lsd_slam}{Link}} & Monocular, & Semi-dense\\ 126 | & \cite{Engel2014} (2014) & & Stereo & Runs on CPU\\ 127 | & \cite{Engel2013} (2013) & & &\\ 128 | & & & &\\ 129 | \textbf{MonoSLAM} & \cite{Russo2014} (2014) & {\href{https://github.com/rrg-polito/mono-slam}{Link}} & Monocular & Particle filter back-end\\ 130 | & \cite{Davison2007} (2007) & & &\\ 131 | & & & &\\ 132 | \textbf{MR SLAM} & \cite{Choudhary2016} (2016) & - & Multiple robots/ &\\ 133 | & \cite{Alexandre2013} (2013) & & sensors &\\ 134 | & \cite{Zhou2006} (2006) & & &\\ 135 | & \cite{Howard2006} (2006) & & &\\ 136 | & \cite{Liu2003} (2003) & & &\\ 137 | & & & &\\ 138 | \textbf{NID SLAM} & \cite{Pascoe2017} (2017) & - & Monocular & Robust to lighting and weather\\ 139 | & & & & GPU reliant\\ 140 | & & & &\\ 141 | \textbf{OKVIS} & \cite{Leutenegger2015} (2015) & {\href{https://github.com/ethz-asl/okvis_ros}{Link}} & Stereo & Focus on IMU integration\\ 142 | & \cite{Leutenegger2014} (2014) & & IMU &\\ 143 | & \cite{Leutenegger2013} (2013) & & &\\ 144 | & & & &\\ 145 | \textbf{ORB SLAM} & \cite{Mur-Artal2017} (2017) & \href{https://github.com/raulmur/ORB_SLAM2}{Link} & Monocular, & ORB descriptor\\ 146 | & \cite{Mur-Artal2016a} (2016) & & Stereo (v2), & Runs on CPU\\ 147 | & \cite{Mur-Artal2015} (2015) & & RGB-D (v2) & Extension of PTAM\\ 148 | & \cite{Mur-Artal2014} (2014) & & &\\ 149 | & & & &\\ 150 | \textbf{Pop-up SLAM} & \cite{Yang2016} (2016) & {\href{https://github.com/shichaoy/pop_up_image}{Link}} & Monocular & CNN predicts planar surfaces\\ 151 | & & & &\\ 152 | \textbf{PTAM} & \cite{Klein2007} (2007) & {\href{https://github.com/Oxford-PTAM/PTAM-GPL}{Link}} & Monocular & Parallel tracking and mapping\\ 153 | & & & &\\ 154 | \textbf{RatSLAM} & \cite{Ball2013} (2013) & {\href{https://github.com/davidmball/ratslam}{Link}} & - (back-end) & Map and pose estimation\\ 155 | & \cite{Maddern2009} (2009) & & & based on a competitive attractor\\ 156 | & \cite{Milford2008} (2008) & & & network, inspired by rat's brains\\ 157 | & \cite{Milford2006} (2006) & & &\\ 158 | & \cite{Milford2005} (2005) & & &\\ 159 | & \cite{Milford2004} (2004) & & &\\ 160 | & & & &\\ 161 | \textbf{RD SLAM} & \cite{Tan2013a} (2013) & - & Monocular & Focus on dynamic environments\\ 162 | & & & &\\ 163 | \textbf{REBVO} & \cite{Tarrio2016} (2016) & {\href{https://github.com/JuanTarrio/rebvo}{Link}} & Monocular, & Odometry on edges\\ 164 | & & & IMU &\\ 165 | & & & &\\ 166 | \textbf{REMODE} & \cite{Pizzoli2014} (2014) & {\href{https://github.com/uzh-rpg/rpg_open_remode}{Link}} & Monocular & Dense\\ 167 | & & & & GPU reliant\\ 168 | & & & &\\ 169 | \textbf{RFM SLAM} & \cite{Agarwal2016} (2016) & {\href{https://github.com/sauravag/edpl-rfmslam}{Link}} & - (back-end) & Relative feature measurements\\ 170 | & & & & Reduced complexity\\ 171 | & & & &\\ 172 | \textbf{RGB-D SLAM} & \cite{Endres2012} (2012) & {\href{https://github.com/felixendres/rgbdslam_v2}{Link}} & RGB-D &\\ 173 | & \cite{Endres2012a} (2012) & & &\\ 174 | & & & &\\ 175 | \textbf{RKSLAM} & \cite{Liu2016} (2016) & {\href{https://zjucvg.net/rkslam/rkslam.html}{Link}} & Monocular, & Robust to fast motion and rotation\\ 176 | & & & IMU &\\ 177 | & & & &\\ 178 | \textbf{ROCC} & \cite{Buczko2017} (2017) & - & Monocular, & Decouples rotation and translation\\ 179 | & \cite{Buczko2016} (2016) & & Stereo & Feature outlier removal\\ 180 | & \cite{Buczko2016a} (2016) & & & Focus on automotive\\ 181 | & & & &\\ 182 | \textbf{ROVIO} & \cite{Bloesch2015} (2014) & {\href{https://github.com/ethz-asl/rovio}{Link}} & Monocular, & Focus on IMU integration\\ 183 | & & & IMU & Relative representation\\ 184 | & & & &\\ 185 | \textbf{RSLAM} & \cite{Mei2011} (2011) & - & Stereo & Relative representation\\ 186 | & & & & No global optimization \\ 187 | & & & &\\ 188 | \textbf{ScaViSLAM} & \cite{Strasdat2011} (2011) & {\href{https://github.com/strasdat/ScaViSLAM}{Link}} & Stereo & Scale drift aware\\ 189 | & & & & through using Lie groups\\ 190 | & & & &\\ 191 | \textbf{SEIF SLAM} & \cite{Torres-Gonzalez2014} (2014) & - & - (back-end) &\\ 192 | & \cite{Walter2007} (2007) & & &\\ 193 | & & & &\\ 194 | \textbf{SeqSLAM} & \cite{bai2017} (2017) & {\href{https://github.com/subokita/OpenSeqSLAM}{Link}} & - (back-end) & Loop detection through\\ 195 | & \cite{Siam2017} (2017) & {\href{https://github.com/siam1251/Fast-SeqSLAM}{Link}} & & image sequences\\ 196 | & \cite{Sunderhauf2013} (2013) & & & Robust to extreme changes\\ 197 | & \cite{Milford2012} (2012) & & &\\ 198 | & & & RGB-D & Uses KinectFusion\\ 199 | \textbf{SLAM++} & \cite{Salas-moreno2013} (2013) & - & & Real-time object recognition\\ 200 | & & & &\\ 201 | \textbf{SlamDunk} & \cite{Fioraio2015} (2015) & {\href{https://github.com/m4nh/skimap_ros}{Link}} & RGB-D & Runs on CPU\\ 202 | & & & &\\ 203 | \textbf{SOFT} & \cite{Cvisic2015} (2015) & - & Stereo, & Odometry based on feature selection\\ 204 | & & & IMU & Separates rotation and translation\\ 205 | & & & &\\ 206 | \textbf{S-PTAM} & \cite{Pire2017} (2017) & {\href{https://github.com/lrse/sptam}{Link}} & Stereo & Robust to lighting changes\\ 207 | & \cite{Pire2015} (2015) & & & feature-based, BRISK descriptor\\ 208 | & & & &\\ 209 | \textbf{SVO} & \cite{Forster2017} (2017) & {\href{https://github.com/uzh-rpg/rpg_svo}{Link}} & Monocular & Focus on runtime (embedded devices)\\ 210 | & \cite{Forster2014a} (2014) & & & Needs a high framerate\\ 211 | & & & &\\ 212 | \textbf{UKF SLAM} & \cite{Wu2015} (2015) & - & - (back-end) &\\ 213 | & \cite{Wang2013} (2014) & & &\\ 214 | & \cite{Huang2009} (2009) & & &\\ 215 | & & & &\\ 216 | \textbf{V-LOAM} & \cite{Zhang2015} (2015) & - & Monocular, & Combination of camera and LIDAR\\ 217 | & & & LIDAR &\\ 218 | & & & &\\ 219 | \textbf{vSLAM} & \cite{Karlsson2005} (2005) & {\href{https://wiki.ros.org/vslam}{Link}} & LRF & Robustness to changes\\ 220 | & & & & Combination of particle and\\ 221 | & & & & Kalman filter in back-end\\ 222 | \end{longtable} 223 | 224 | 225 | \newpage 226 | %Bibiliography 227 | \printbibliography 228 | 229 | \end{document} 230 | -------------------------------------------------------------------------------- /slam_front_and_back_end.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kafendt/List-of-SLAM-VO-algorithms/58b6534e5df761286d09e7fc2303d3bc9c941bb1/slam_front_and_back_end.pdf --------------------------------------------------------------------------------