gradslam

gradslam is a fully differentiable dense SLAM framework. It provides a repository of differentiable building blocks for a dense SLAM system, such as differentiable nonlinear least squares solvers, differentiable ICP (iterative closest point) techniques, differentiable raycasting modules, and differentiable mapping/fusion blocks. One can use these blocks to construct SLAM systems that allow gradients to flow all the way from the outputs of the system (map, trajectory) to the inputs (raw color/depth images, parameters, calibration, etc.).

pointfusiondemo

Overview

rgbdimages = RGBDImages(colors, depths, intrinsics)
slam = PointFusion()
pointclouds, recovered_poses = slam(rgbdimages)
pointclouds.plotly(0).show()

tum-pointfusion

Installation

Requirements

  • pytorch>=1.6.0 (for other pytorch versions see here )

Using pip (not functional yet)

pip install gradslam

Install from GitHub

pip install 'git+https://github.com/gradslam/gradslam.git'

Install from local clone (Recommended)

git clone https://github.com/gradslam/gradslam.git
cd gradslam
pip install -e .

Install with other pytorch versions

git clone https://github.com/krrish94/chamferdist.git
cd chamferdist
pip install .
cd ..
git clone https://github.com/gradslam/gradslam.git
cd gradslam
pip install -e .

Verifying the installation

To verify if gradslam has successfully been built, fire up the python interpreter, and import!

import gradslam as gs
print(gs.__version__)

You should see the version number displayed.

Citing gradslam

If you find gradslam useful in your work, and are writing up a report/paper about us, we'd appreciate if you cited us. Please use the following bibtex entry.

@inproceedings{gradslam,
  title={gradSLAM: Dense SLAM meets automatic differentiation},
  author={{Krishna Murthy}, Jatavallabhula and Saryazdi, Soroush and Iyer, Ganesh and Paull, Liam},
  booktitle={arXiv},
  year={2020},
}

GitHub