Alpha Software
SuperSLAM is a deep learning based visual SLAM system that combines recent advances in learned feature detection and matching with the mapping capabilities of ORB_SLAM2.
It utilizes SuperPoint for keypoint detection and description and SuperGlue for robust feature matching between frames. These matches are then used by ORB_SLAM2 to estimate camera poses and build a map of the environment.
Some of the future goals are to eventually replace the ORB_SLAM backend with a modern and performant factor graph based implementation and complete rewrite in Rust.
Easiest way to get started would be the setup.sh
script.
See INSTALL.md for more information.
- Build the Docker image:
docker build -t superslam .
- Run the container with GPU support:
docker run --gpus all -it --rm superslam
- For development with mounted source code:
docker run --gpus all -it --rm \
-v $(pwd):/workspace \
-w /workspace \
superslam
- Build the Podman image:
podman build -t superslam .
- Run the container with GPU support:
podman run --security-opt=label=disable --device /dev/dri:/dev/dri --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm -it --rm superslam
- For development with mounted source code:
podman run --security-opt=label=disable --device /dev/dri:/dev/dri --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm -it --rm \
-v $(pwd):/workspace \
-w /workspace \
superslam
git clone https://github.com/adityamwagh/SuperSLAM.git
cd SuperSLAM
sh ./build.sh
This will create libSuperSLAM.so
in the lib
folder and the executables mono_tum
, mono_kitti
, rgbd_tum
, stereo_kitti
, mono_euroc
and stereo_euroc
in examples
folder.
- CUDA Errors: Ensure your NVIDIA drivers and CUDA toolkit are correctly installed.
- ROS 2 Issues: Verify that the ROS 2 environment is sourced correctly.
- Missing Dependencies: Double-check that all dependencies listed above are installed.
Contributions to the SuperSLAM project are welcome! Please ensure that any changes are well-documented and tested.
This project is licensed under the LGPL.
For any questions or issues, please open an issue on the GitHub repository.
Lot of code is borrowed from these repositories. Thanks to the authors for opensourcing them!