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 CMake 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 is dependent on this repo. Think of this repo as the "LSD SLAM Library", 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.
I (@hathix) followed these directions to get this repo running on macOS 10.13.
- Set up xcode tools: https://stackoverflow.com/a/17980786
brew install opencv suitesparse eigen glew glm freeglut cmake boost tinyxml2
- Clone this repo
./fips gen
works!./fips build
still runs into a dumb problem:ld: library not found for -lcxsparse
. Help would be appreciated.
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
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
-
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
LSD-SLAM is licensed under the GNU General Public License Version 3 (GPLv3), see http://www.gnu.org/licenses/gpl.html.