├── 3D_Scan.md ├── Mapping.md ├── README.md ├── slam_non_visual.md └── vi_table.png /3D_Scan.md: -------------------------------------------------------------------------------- 1 | # 3D scan 2 | 3 | 4 | ## shape from motion: 5 | http://isit.u-clermont1.fr/~ab/Research/index.html 6 | 7 | ## Datasets: 8 | 9 | http://kos.informatik.uni-osnabrueck.de/3Dscans/ 10 | -------------------------------------------------------------------------------- /Mapping.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ##### Universal grid map 4 | https://github.com/ethz-asl/grid_map 5 | 6 | ##### Real-Time Appearance-Based Mapping 7 | Loop Closure Detection for Large-Scale Multi-Session Graph-Based SLAM (RGB-D Graph SLAM) 8 | ros enabled 9 | https://github.com/introlab/rtabmap 10 | 11 | 12 | ##### smoothing and mapping (SAM) 13 | https://research.cc.gatech.edu/borg/download?destination=node%2F299 14 | using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices. 15 | and matlab also included in it 16 | 17 | ##### Gmapping ROS 18 | 19 | ##### Google cartographer 20 | 21 | ##### Hector SLAM 22 | 23 | ## Comparisons 24 | ###### video comparing Cartographer, Hector SLAM and GMapping SLAM 25 | https://www.youtube.com/watch?v=7iM2ynZEuf0 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SFM-AR-Visual-SLAM 2 | ![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg) 3 | 4 | ## Visual SLAM 5 | 6 | ##### GSLAM 7 | General SLAM Framework which supports feature based or direct method and different sensors including monocular camera, RGB-D sensors or any other input types can be handled. 8 | https://github.com/zdzhaoyong/GSLAM 9 | 10 | ##### OKVIS: Open Keyframe-based Visual-Inertial SLAM 11 | http://ethz-asl.github.io/okvis/index.html 12 | 13 | ##### Uncertainty-aware Receding Horizon Exploration and Mapping Planner 14 | https://github.com/unr-arl/rhem_planner 15 | 16 | ##### S-PTAM: Stereo Parallel Tracking and Mapping 17 | https://github.com/lrse/sptam 18 | 19 | ##### mcptam 20 | MCPTAM is a set of ROS nodes for running Real-time 3D Visual Simultaneous Localization and Mapping (SLAM) using Multi-Camera Clusters. It includes tools for calibrating both the intrinsic and extrinsic parameters of the individual cameras within the rigid camera rig. 21 | 22 | https://github.com/aharmat/mcptam 23 | 24 | ##### FAB-MAP 25 | visual place recognition algorithm 26 | https://github.com/arrenglover/openfabmap 27 | 28 | ##### rat-SLAM 29 | https://github.com/davidmball/ratslam 30 | 31 | ##### maplab 32 | An Open Framework for Research in Visual-inertial Mapping and Localization 33 | https://github.com/ethz-asl/maplab 34 | from Roland Siegwart 35 | 36 | ##### OpenVSLAM: Versatile Visual SLAM Framework 37 | https://github.com/xdspacelab/openvslam 38 | 39 | ##### SLAM with Apriltag 40 | https://github.com/berndpfrommer/tagslam 41 | ROS ready, bag file available 42 | 43 | ##### SE2 SLAM fusing odom and Vision 44 | https://github.com/izhengfan/se2clam 45 | 46 | 47 | ### RGB-D Visual SLAM 48 | 49 | ##### Fast Odometry and Scene Flow from RGB-D Cameras 50 | https://github.com/MarianoJT88/Joint-VO-SF 51 | published in ICRA 2017 52 | 53 | ##### Real-Time Appearance-Based Mapping 54 | http://wiki.ros.org/rtabmap_ros ... 55 | Many Demos are available in the website with Several ROS bags 56 | 57 | ##### general and scalable framework for visual SLAM 58 | https://github.com/strasdat/ScaViSLAM/ 59 | 60 | https://github.com/felixendres/rgbdslam_v2 61 | ROS ready, It accompany a PHD thesis from TUM 62 | 63 | ##### SLAM in unstructed environments 64 | https://github.com/tu-darmstadt-ros-pkg/hector_slam 65 | 66 | ##### Dense Visual Odometry and SLAM (dvo_slam) 67 | https://github.com/tum-vision/dvo_slam 68 | 69 | ##### Coslam: Collaborative visual slam in dynamic environments 70 | https://github.com/danping/CoSLAM 71 | 72 | ##### Real-time dense visual SLAM system : ElasticFusion 73 | 74 | https://github.com/mp3guy/ElasticFusion ... 75 | it has nice gui and dataset , paper and video too . 76 | 77 | ##### Real-time dense visual SLAM 78 | https://github.com/mp3guy/Kintinuous 79 | 80 | ##### Deferred Triangulation SLAM 81 | Based on PTAM and SLAM track 3d traingulated and 2d non triangulated features . 82 | https://github.com/plumonito/dtslam 83 | 84 | ##### Dense RGBD slam 85 | https://github.com/dorian3d/RGBiD-SLAM 86 | 87 | ##### M2SLAM: Visual SLAM with Memory Management for large-scale Environments 88 | https://github.com/lifunudt/M2SLAM 89 | 90 | ##### SceneLib2 - MonoSLAM open-source library 91 | from oxford university c++ SLAM 92 | https://github.com/hanmekim/SceneLib2 93 | 94 | ##### next best view planner 95 | https://github.com/ethz-asl/nbvplanner 96 | 97 | ##### Dynamic RGB-D Encoder SLAM for a Differential-Drive Robot 98 | https://github.com/ydsf16/dre_slam 99 | ROS kinetic, openCV 4.0, yolo v3, Ceres 100 | 101 | ##### DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes 102 | https://github.com/BertaBescos/DynaSLAM 103 | 104 | 105 | ### Augmented Reality 106 | 107 | ##### PTAM (Parallel Tracking and Mapping) : 108 | http://www.robots.ox.ac.uk/~gk/PTAM/ 109 | 110 | ##### PTAM Android : 111 | https://github.com/damienfir/android-ptam 112 | 113 | 114 | ### Monocular SLAM 115 | 116 | ##### ORB-SLAM: A Versatile and Accurate Monocular SLAM System 117 | https://github.com/raulmur/ORB_SLAM .... 118 | 119 | its modification : ORB-SLAM2 is a real-time SLAM library for Monocular, Stereo and RGB-D cameras 120 | https://github.com/raulmur/ORB_SLAM2 121 | 122 | its modification to work on IOS : 123 | https://github.com/Thunderbolt-sx/ORB_SLAM_iOS 124 | 125 | ##### ORB-SLAM3 An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM 126 | 127 | https://github.com/UZ-SLAMLab/ORB_SLAM3 128 | 129 | ##### REMODE (REgularized MOnocular Depth Estimation) 130 | https://github.com/uzh-rpg/rpg_open_remode ... 131 | Probabilistic, Monocular Dense Reconstruction in Real Time 132 | 133 | ##### Fast Semi-Direct Monocular Visual Odometry 134 | https://github.com/pizzoli/rpg_svo 135 | 136 | ##### Fast Semi-Direct Visual Odometry for Monocular, Wide Angle, and Multi-camera Systems 137 | no loop closure or bundle adjustment 138 | http://rpg.ifi.uzh.ch/svo2.html 139 | 140 | ##### LSD-SLAM: Large-Scale Direct Monocular SLAM 141 | https://github.com/tum-vision/lsd_slam 142 | 143 | modification over the original package to work with rolling chatter camera ( cheap webcams) 144 | https://github.com/FirefoxMetzger/lsd_slam 145 | The change is mentioned in this video : https://www.youtube.com/watch?v=TZRICW6R24o 146 | 147 | ##### ROS wrapper for visolib 148 | https://github.com/srv/viso2 149 | It is supported till ROS-indigo. 150 | 151 | ##### Visual-Inertia-fusion-based Monocular dEnse mAppiNg 152 | https://github.com/HKUST-Aerial-Robotics/VI-MEAN 153 | with paper and video ICRA 2017 , rosbag as well. 154 | 155 | ##### monocular object pose SLAM 156 | https://github.com/shichaoy/cube_slam 157 | 158 | ##### DeepFactors: Real-Time Probabilistic Dense Monocular SLAM 159 | https://github.com/jczarnowski/DeepFactors?fbclid=IwAR3tMyM_VisfjADs5pX3OHoxSU6w6MorupmvXZDr8c9m2MWLObdcnlBNNpg 160 | 161 | ##### ORB-SLAM RGBD + Inertial 162 | https://github.com/xiefei2929/ORB_SLAM3-RGBD-Inertial 163 | 164 | ## LIDAR based 165 | 166 | ##### LIMO: Lidar-Monocular Visual Odometry 167 | https://github.com/johannes-graeter/limo 168 | Virtual machine with all the dependencies is ready. 169 | 170 | ##### LiDAR-based real-time 3D localization and mapping 171 | https://github.com/erik-nelson/blam 172 | 173 | ##### segmatch 174 | https://github.com/ethz-asl/segmatch 175 | A 3D segment based loop-closure algorithm | ROS ready 176 | 177 | ##### LIO-SAM 178 | https://github.com/TixiaoShan/LIO-SAM 179 | real-time lidar-inertial odometry 180 | 181 | UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping | ICRA'22 182 | https://github.com/url-kaist/UV-SLAM 183 | 184 | ## Visual Odometry 185 | 186 | ##### Dense Sparse odometry 187 | https://github.com/JakobEngel/dso 188 | 189 | ##### monocular odometry algorithm 190 | https://github.com/alejocb/dpptam 191 | Dense Piecewise Planar Tracking and Mapping from a Monocular Sequence IROS 2015 192 | 193 | ##### Stereo Visual odometry 194 | https://github.com/rubengooj/StVO-PL 195 | Stereo Visual Odometry by combining point and line segment features 196 | 197 | ##### Monocular Motion Estimation on Manifolds 198 | https://github.com/johannes-graeter/momo 199 | 200 | ##### Visual Odometry Revisited: What Should Be Learnt? 201 | paper + pytorch code: https://github.com/Huangying-Zhan/DF-VO 202 | 203 | ##### SimVODIS Simultaneous Visual Odometry, Object Detection, and Instance Segmentation 204 | https://github.com/Uehwan/SimVODIS 205 | 206 | #### Modality-invariant Visual Odometry for Embodied Vision 207 | RGB only OR RGB + Depth 208 | https://memmelma.github.io/vot/ 209 | 210 | ### Visual Inertial odometry 211 | 212 | ##### Kalibr 213 | 214 | IMU camera calibration toolbox and more. 215 | https://github.com/ethz-asl/kalibr 216 | 217 | Camera-to-IMU calibration toolbox 218 | https://github.com/hovren/crisp 219 | 220 | ##### ROVIO 221 | Robust Visual Inertial Odometry 222 | https://github.com/ethz-asl/rovio 223 | 224 | ##### Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight 225 | 226 | https://github.com/KumarRobotics/msckf_vio 227 | 228 | ##### A Robust and Versatile Monocular Visual-Inertial State Estimator 229 | https://github.com/HKUST-Aerial-Robotics/VINS-Mono 230 | 231 | ##### VINS modification for omnidirectional + Streo camera 232 | https://github.com/gaowenliang/vins_so 233 | 234 | ##### Realtime Edge Based Inertial Visual Odometry for a Monocular Camera 235 | https://github.com/JuanTarrio/rebvo 236 | Specially targetted to embedded hardware. 237 | 238 | ##### robocentric visual-inertial odometry 239 | https://github.com/rpng/R-VIO 240 | Monocular camera + 6 DOF IMU 241 | 242 | 243 | ## SFM 244 | 245 | 246 | ##### Structure from Motion (SfM) for Unordered Image Collections 247 | https://github.com/TheFrenchLeaf/Bundle 248 | 249 | ##### Android SFM 250 | https://github.com/danylaksono/Android-SfM-client 251 | 252 | ##### Five Point , 6,7,8 algorithms 253 | open geometrical vision 254 | https://github.com/marknabil/opengv 255 | 256 | ##### openSFM 257 | Structure from Motion library written in Python on top of OpenCV. It has dockerfile for all installation on ubuntu 14.04 258 | https://github.com/mapillary/OpenSfM 259 | 260 | ##### Unsupervised Learning of Depth and Ego-Motion from Video 261 | An unsupervised learning framework for depth and ego-motion estimation from monocular videos 262 | https://github.com/tinghuiz/SfMLearner 263 | 264 | 265 | ##### CVPR 2015 Tutorial for open source SFM 266 | Source material for the CVPR 2015 Tutorial: Open Source Structure-from-Motion 267 | https://github.com/mleotta/cvpr2015-opensfm 268 | 269 | ##### Unsupervised Learning of Depth and Ego-Motion from Video 270 | https://github.com/tinghuiz/SfMLearner 271 | 272 | ##### Deep Permutation Equivariant Structure from Motion 273 | https://github.com/drormoran/Equivariant-SFM 274 | 275 | ## concepts in matlab 276 | http://vis.uky.edu/~stewe/FIVEPOINT/ 277 | 278 | SFMedu: A Matlab-based Structure-from-Motion System for Education 279 | https://github.com/jianxiongxiao/SFMedu 280 | 281 | Lorenzo Torresani's Structure from Motion Matlab code 282 | https://github.com/scivision/em-sfm 283 | 284 | https://github.com/vrabaud/sfm_toolbox 285 | 286 | OpenMVG C++ library 287 | https://github.com/openMVG/openMVG 288 | 289 | collection of computer vision methods for solving geometric vision problems 290 | https://github.com/laurentkneip/opengv 291 | 292 | 293 | ##### Multiview Geometry Library in C++11 294 | http://theia-sfm.org/ 295 | 296 | ##### Quaternion Based Camera Pose Estimation From Matched Feature Points 297 | https://sites.google.com/view/kavehfathian/code 298 | its paper : https://arxiv.org/pdf/1704.02672.pdf 299 | 300 | ## Mapping 301 | ##### Direct Sparse Mapping 302 | https://github.com/jzubizarreta/dsm 303 | 304 | 305 | ##### Volumetric 3D Mapping in Real-Time on a CPU 306 | https://github.com/tum-vision/fastfusion 307 | 308 | 309 | ## Others : 310 | 311 | ##### SLAM with IMU on Android 312 | 313 | https://github.com/knagara/SLAMwithCameraIMUforAndroid 314 | 315 | ##### IOS iphone 7 plus 316 | https://github.com/HKUST-Aerial-Robotics/VINS-Mobile 317 | 318 | ##### Matlab 319 | with some good documentation to how to read the image and so on from the kinect . 320 | https://github.com/AutoSLAM/SLAM 321 | 322 | 323 | 324 | # Datasets and benchmarking 325 | ## Curated List of datasets: 326 | https://github.com/youngguncho/awesome-slam-datasets 327 | 328 | ##### igibson 329 | simulation environment providing fast visual rendering and physics simulation based on Bullet 330 | https://svl.stanford.edu/igibson/ 331 | 332 | ##### EuRoC MAV Dataset 333 | http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets 334 | 335 | visual-inertial datasets collected on-board a Micro Aerial Vehicle (MAV). The datasets contain stereo images, synchronized IMU measurements, and accurate motion and structure ground-truth. 336 | 337 | ##### TUM VI Benchmark for Evaluating Visual-Inertial Odometry 338 | https://vision.in.tum.de/data/datasets/visual-inertial-dataset 339 | different scenes for evaluating VI odometry 340 | 341 | ##### Authentic Dataset for Visual-Inertial Odometry 342 | https://github.com/AaltoVision/ADVIO 343 | 344 | ##### challenging Visual Inertial Odometry benchmark 345 | https://daniilidis-group.github.io/penncosyvio/ 346 | from Pennsylvania, published in ICRA2017 347 | 348 | ##### ICL NIUM 349 | https://www.doc.ic.ac.uk/~ahanda/VaFRIC/iclnuim.html 350 | benchmarking RGB-D, Visual Odometry and SLAM algorithms 351 | 352 | ##### Benchmarking Pose Estimation Algorithms 353 | https://sites.google.com/view/kavehfathian/code/benchmarking-pose-estimation-algorithms 354 | 355 | 356 | ![alt text](https://github.com/marknabil/SFM-Visual-SLAM/blob/master/vi_table.png) 357 | 358 | ##### Toolbox for quantitative trajectory evaluation of VO/VIO 359 | https://github.com/uzh-rpg/rpg_trajectory_evaluation 360 | 361 | ##### Photorealistic Simulator for VIO testing/benchmarking 362 | https://github.com/mit-fast/FlightGoggles 363 | 364 | 365 | # Machine Learning/ Deep learning based 366 | 367 | [Learning monocular visual odometry with dense 3D mapping from dense 3D flow 368 | ](https://arxiv.org/abs/1803.02286) 369 | 370 | [DeepVO: A Deep Learning approach for Monocular Visual Odometry 371 | ](https://arxiv.org/abs/1611.06069) 372 | 373 | # Survey papers and articles 374 | 375 | [Survey with year,sensor used and best practice](https://nbviewer.jupyter.org/github/kafendt/List-of-SLAM-VO-algorithms/blob/master/SLAM_table.pdf) 376 | 377 | [RGBD ROS SLAM comparison](https://www.researchgate.net/publication/321895908_Experimental_evaluation_of_ROS_compatible_SLAM_algorithms_for_RGB-D_sensors) 378 | 379 | [SLAM past present and future](https://arxiv.org/pdf/1606.05830.pdf) 380 | 381 | [Imperial college ICCV 2015 workshop](http://wp.doc.ic.ac.uk/thefutureofslam/) 382 | 383 | [Deep Auxiliary Learning for Visual Localization and Odometry](http://ais.informatik.uni-freiburg.de/publications/papers/valada18icra.pdf) 384 | 385 | # follow : 386 | ## Robotics and Perception Group 387 | https://github.com/tum-vision 388 | 389 | ## TUM VISION 390 | https://github.com/uzh-rpg 391 | ## handheld AR 392 | http://studierstube.icg.tugraz.at/handheld_ar/cityofsights.php 393 | 394 | ## Another Curated list 395 | for SFM, 3D reconstruction and V-SLAM 396 | https://github.com/openMVG/awesome_3DReconstruction_list 397 | 398 | -------------------------------------------------------------------------------- /slam_non_visual.md: -------------------------------------------------------------------------------- 1 | # non visual SLAM 2 | 3 | ##### Efficient and Certifiably Correct Planar Graph-Based SLAM Using the Complex Number Representation 4 | 5 | https://github.com/fantaosha/CPL-SLAM 6 | 7 | ## in python 8 | 9 | https://github.com/vatsan/slam 10 | 11 | 12 | ## matlab toolbox : 13 | well documented ... 14 | 15 | https://github.com/damarquezg/SLAMTB 16 | well documented too : 17 | https://github.com/jaijuneja/ekf-slam-matlab 18 | 19 | ## C++ 20 | random finite set 21 | https://github.com/kykleung/RFS-SLAM 22 | 23 | ## JAVA 24 | not well documented 25 | https://github.com/ziarrek/slam 26 | 27 | ### need Investigation 28 | 29 | https://github.com/segeschecho/OpenEKFMonoSLAM 30 | 31 | Visual : 32 | https://github.com/MiguelAlgaba/KinectSLAM6D 33 | https://github.com/AutoSLAM/SLAM 34 | -------------------------------------------------------------------------------- /vi_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marknabil/SFM-Visual-SLAM/ef63386608d69ed54c4f10001e5f70eb7c62551a/vi_table.png --------------------------------------------------------------------------------