Permalink
Fetching contributors…
Cannot retrieve contributors at this time
94 lines (59 sloc) 4.4 KB

LSD-SLAM: Large-Scale Direct Monocular SLAM

wercker status

See my Development Blog for current status.

December 2017 Not as much time as I would like to work on this over the last year (clearly). One thing I've discovered is I'm not a huge fan of Conan. I ended up making a lot of infrastructure to get what I wanted out of it --- which was the ability to define dependencies and have them all built locally.

So if you've got here, I've thrown out Conan and moved to fips. fips ain't perfect, but it does the job I need it to do.

It's good enough I'm deprecating the Conan build. If you don't want to use fips, see the cmake branch.

If you really loved the Conan build, the last commit with Conan is 7b8b76f.

This also means master no longer builds Thomas' Pangolin-based GUI. That's now in its own repo which includes this repo. Think of this repo as the "LSD SLAM Library (w/o a GUI)", with frontends elsewhere...

This fork started from Thomas Whelan's fork which "relieves the user of the horrors of a ROS dependency and uses the much nicer lightweight Pangolin framework instead."

Here is Jakob's original description:

LSD-SLAM is a novel approach to real-time monocular SLAM. It is fully direct (i.e. does not use keypoints / features) and creates large-scale, semi-dense maps in real-time on a laptop. For more information see http://vision.in.tum.de/lsdslam where you can also find the corresponding publications and Youtube videos, as well as some example-input datasets, and the generated output as rosbag or .ply point cloud.

This repo contains my experiments with LSD-SLAM, for performance, functionality and structure. As of November 2016, it diverges significantly from either Jakob or Thomas's branches in structure (I refactored as a way of learning the code), but not significantly in terms of functionality (except for all the ways in which I've broken it in the refactoring).

master is my working / stable-ish branch. aaron_dev is my really unstable branch. Please note: BOTH BRANCHES ARE MOVING TARGETS. it's just that aaron_dev is, uh, moving faster.

Quickstart

My targeted environments are Ubuntu 16.04, the Jetson TX1 using NVidia Jetpack 2.3 , and OS X 10.12 with Homebrew.

If you want a GUI, start with to lsd-slam-pangolin-gui

Common jobs are encoded in Makefile.This includes tasks for installing dependencies (in Travis and Docker images for example), and for automating building and testing.

Assuming all of the "standard" (apt-gettable/Brew-able) deps have been installed,

./fips gen
./fips build

Both configurations (release, debug) and platform are controlled through fips settings, so on a linux machine, either

./fips gen linux-make-release
./fips build linux-make-release

or

./fips set config linux-make-release
./fips gen
./fips build

will build release binaries. linux-make-debug will build debug binaries and linux-make-unittests will build debug binaries and the unit tests.

See also doc/CommonProblems.md

Running

Supports directories or sets of raw images. For example, you can download any dataset from here, and run:

./fips run LSD -- -c datasets/LSD_machine/cameraCalibration.cfg -f datasets/LSD_machine/images/

I've started to document my performance testing in doc/Performance.md

Related Papers

  • LSD-SLAM: Large-Scale Direct Monocular SLAM, J. Engel, T. Schöps, D. Cremers, ECCV '14

  • Semi-Dense Visual Odometry for a Monocular Camera, J. Engel, J. Sturm, D. Cremers, ICCV '13

License

LSD-SLAM is licensed under the GNU General Public License Version 3 (GPLv3), see http://www.gnu.org/licenses/gpl.html.

TODOS