Mugichoko445 / Cross-Platform-Dense-SLAM

A cross-platform implementation of dense SLAM proposed by Keller et al. using C++, OpenGL, and OpenCV.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A cross-platform implementation of RGB-D SLAM proposed by Keller et al.

  • C++, OpenGL, and OpenCV only
  • No CUDA and No OpenCL

M. Keller, D. Lefloch, M. Lambers, S. Izadi, T. Weyrich, and A. Kolb: "Real-Time 3D Reconstruction in Dynamic Scenes Using Point-Based Fusion," Proc. Int. Conf. on 3D Vision, pp. 1 - 8, 2013.

Requirements

  • C++ compiler
  • OpenGL 4.3 or later
  • OpenCV 2.X or later
    • used as image read/write and a linear problem solver (QR decomposition)
    • thus, you can easily replace OpenCV with other libraries
  • Lisence
    • Lisence free but limited to research purpose only
    • Note that the code is NOT the original implementation (i.e., results may be different from the ones in the original paper)
    • BUT I'm pleased to have any kinds of feedback from you!!

Usage

  1. Prepare your dataset
    • e.g., TUM RGB-D dataset
    • Read/write interfaces for TUM RGB-D dataset is implemented in the code
    • If you need to record your own image sequences, then this implementation would be helpful
  2. Open "data/input_param.txt" to change parameters
  3. Build the program
  4. Run it

Example Result

YouTube Video of Cross-Platform RGB-D SLAM

Tested Environment List

Hardware Software
CPU GPU OS GLEW GLFW GLM OpenCV
Intel Core i7 8550U Intel UHD Graphics 620 Win 10 2.1.0 3.2.1 0.9.9 3.4.2
Intel Core i7 8550U NVIDIA GeForce GTX 1080 Ti (Razer Core v2) Win 10 2.1.0 3.2.1 0.9.9 3.4.2
Intel Core i7 6567U Intel Iris Graphics 550 Win 10 1.13.0 3.2 0.9.8.5 3.3.1
Intel Core i7 4770S NVIDIA GeForce GTX760 Win 10 2.1.0 3.2.1 0.9.8.5 3.3.0
NVIDIA Jetson TX2 Ubuntu 16.04 (JetPack 3.1) 1.13.0 3.2.1 0.9.7.2 2.4.13.1

Current known issues

  • No dynamic object detection

Progress Reports (in Japanese)

http://mugichoko.hatenablog.com/archive/category/SLAM

About

A cross-platform implementation of dense SLAM proposed by Keller et al. using C++, OpenGL, and OpenCV.


Languages

Language:C++ 93.5%Language:GLSL 6.5%