Skip to content

Simultaneous localization and mapping

SLAM(Simultaneous localization and mapping), 동시적 위치추정 및 지도작성은 로봇공학 등에서 사용하는 개념으로, 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제이다.

Documentation

[추천] ORB-SLAM2 - an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
http://arxiv.org/abs/1610.06475v2
https://arxiv.org/pdf/1610.06475v2.pdf
http://webdiis.unizar.es/~raulmur/orbslam/
https://github.com/raulmur/ORB_SLAM2
https://codar.club/blogs/orb-slam2-building-detailed-process.html
[추천] OpenVSLAM
Orb-slam2 등 다양한 비쥴얼 슬램 구현
https://openvslam.readthedocs.io/en/master/index.html
[추천] Co-Fusion
Real-time Segmentation, Tracking and Fusion of Multiple Objects
http://visual.cs.ucl.ac.uk/pubs/cofusion/index.html
https://github.com/martinruenz/co-fusion
ElasticFusion - Real-time dense visual SLAM system
https://github.com/mp3guy/ElasticFusion
[추천] Cartographer (카토그래퍼)
Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Semantically Informed Visual Odometry and Mapping (SIVO)
SIVO - Semantically Informed Visual Odometry and Mapping. Integrated Bayesian semantic segmentation with ORBSLAM_2 to select better features for Visual SLAM.
https://github.com/navganti/SIVO
Direct Sparse Odometry with Loop Closure (LDSO)
https://arxiv.org/abs/1808.01111v1
https://arxiv.org/pdf/1808.01111v1.pdf
Simultaneous Localization and Mapping by Fusion of KeyPoints and Squared Planar Markers (UcoSLAM)
https://arxiv.org/abs/1902.03729v1
https://arxiv.org/pdf/1902.03729v1.pdf
[추천] Keyframe-based monocular SLAM - design, survey, and future directions
https://arxiv.org/abs/1607.00470v2
https://arxiv.org/pdf/1607.00470v2.pdf
Constructing Locally Dense Point Clouds Using OpenSfM and ORB-SLAM2
http://arxiv.org/abs/1804.08243v1
Movable-Object-Aware Visual SLAM via Weakly Supervised Semantic Segmentation
https://arxiv.org/abs/1906.03629v2
[추천] GCNv2 - Efficient Correspondence Prediction for Real-Time SLAM
https://arxiv.org/abs/1902.11046v3
https://github.com/jiexiong2016/GCNv2_SLAM
GCNv2 is a high-throughput variant of the Geometric Correspondence Network for performing RGB-D SLAM online on embedded platforms. We trained the binary descriptor in the same format with ORB (32 bytes) for the convenience of integration. In this implementation, we evaluate the motion estimation using a system built on top the [ORB-SLAM2], (https://github.com/raulmur/ORB_SLAM2). Thanks to the robustness of ORB-SLAM2, our system is able to achive reliable tracking perfomance on our drone platform in real-time.

Deep learning based

Monocular Depth Prediction Using Generative Adversarial Networks
https://ieeexplore.ieee.org/document/8575530/
http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w9/Kumar_Monocular_Depth_Prediction_CVPR_2018_paper.pdf
DepthNet - A Recurrent Neural Network Architecture for Monocular Depth Prediction
https://ieeexplore.ieee.org/document/8575528

SLAM 프레임워크는 크게 frontend와 backend의 2가지 부분으로 구성이 됩니다. frontend에서는 시간적으로 인접한 영상 사이의 피쳐 추출, 피쳐 매칭, 카메라 변환 파라미터 계산이 이루어지고 backend에서는 시간적으로 인접하지 않은 영상 사이에서도 가능한 경우에 대해 카메라 변환 파라미터 계산을 수행하고 frontend와 backend에서 얻은 제약조건을 이용해 전체 카메라 궤적에 대해 그래프 최적화를 수행하여 좀 더 consistent한 맵과 카메라 궤적을 얻도록 하는데 목적이 있습니다.

SuperPoint - Self-Supervised Interest Point Detection and Description
https://arxiv.org/abs/1712.07629
https://github.com/rpautrat/SuperPoint
SLAM Frontend 에서 deep learning의 접목을 주로 다루고 있습니다. 기존의 전통적인 피쳐 추출, 매칭 알고리즘들은 시점 변화, 조명 변화 등에 잘 작동하지 않는 결과를 보이는데 self-supervised 방법으로 학습된 제안하는 알고리즘이 그러한 성능면에서 능가한다고 소개했습니다.
Global Pose Estimation with an Attention-based Recurrent Network
https://arxiv.org/abs/1802.06857
SLAM backend 에서의 deep learning의 접목을 주로 다루고 있습니다. 이 논문에서는 Neural graph optimizer를 제안했는데 이는 local pose estimation model, pose aggregation module, neural graph optimization의 3가지 부분으로 구성이됩니다. local pose estimation model에서는 인접한 프레임 간의 상대적인 포즈 변화를 학습하고 pose aggregation module에서는 앞에서 얻은 상대적인 포즈를 포즈 피쳐로 변환하도록 학습시킵니다. 마지막으로 neural graph optimization에서는 전체 포즈 궤적에대해 drift 에러를 줄이도록 하는 뉴럴넷을 attention based로 학습시킵니다.
DeepVO - Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks
https://arxiv.org/abs/1709.08429
Github - DeepVO for Visual Odometry Implementation using Tensorflow
DeepVO - A Deep Learning approach for Monocular Visual Odometry
https://arxiv.org/abs/1611.06069
Neural SLAM - Learning to Explore with External Memory
https://arxiv.org/abs/1706.09520
Neural Map - Structured Memory for Deep Reinforcement Learning
https://arxiv.org/abs/1702.08360
DF-SLAM - A Deep-Learning Enhanced Visual SLAM System based on Deep Local Features
https://arxiv.org/abs/1901.07223
CNN-SLAM - Real-time dense monocular SLAM with learned depth prediction
https://arxiv.org/abs/1704.03489

OpenSLAM Projects and Tools

SLAM Projects

2D-I-SLSJF, CAS-Toolbox, CEKF-SLAM, COP-SLAM, DP-SLAM, EKFMonoSLAM, FalkoLib, FLIRTLib, G2O, GMapping, GridSLAM, HOG-Man, Max-Mixture, MTK, ORB-SLAM, OpenSeqSLAM, ParallaxBA, Pkg. of T.Bailey, RGBDSlam, Robomap Studio, RobotVision, SLOM, SSA2D, tinySLAM, TJTF for SLAM, TORO, TreeMap, UFastSLAM, vertigo

SLAM Tools

EVG-Thin, KLD-Sampling, People2D

Libraries

g2o - General Graph Optimization
https://github.com/RainerKuemmerle/g2o
Ceres Solver - A large scale non-linear optimization library
http://ceres-solver.org/
https://github.com/ceres-solver/ceres-solver

See also

Favorite site

Benchmark

Awesome site