• Stars
    star
    139
  • Rank 257,500 (Top 6 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple loop closure for Visual SLAM

Simple loop closure for Visual SLAM

CircleCI

Possibily the simplest example of loop closure for Visual SLAM. More information on my blog.

As I'm experimenting with alternative approaches for SLAM loop closure, I wanted a baseline that was reasonably close to state-of-the art approaches. The approach here is pretty similar to ORB-SLAM's, and uses SURF descriptors and bag of words to translate them to a global image description vector.

The dataset

For testing, I've used the New College dataset published alongside FAB-MAP. It's available for download here. It's ideal for loop-closure testing, since it includes manual place associations that can be used for evaluation. The scripts/download_data.sh will download the data files (bag of words vocabulary and images) needed to run the code.

Building with Docker

You can build and run the code using docker-compose and Docker. The Docker configuration uses a Ubuntu 16.04 base image, and builds OpenCV 3 from source.

# Download the data files
./scripts/download_data.sh

# Will take ~10 minutes to download and build OpenCV 3
docker-compose build runner
# Enter the docker shell
docker-compose run runner bash
# You're now in a shell inside the Docker container, build and run the code:
./scripts/build.sh
./build/new_college ./data/brief_k10L6.voc.gz ./data

Compatibility

Only tested on Ubuntu 16.04 LTS with OpenCV3, gcc 5.4.0

Plotting the confusion matrix

The ground_truth_comparison.py plots and compares the loop closures from the ground truth to the actual results from the code.

More Repositories

1

segmentation_keras

DilatedNet in Keras for image segmentation
Python
302
star
2

gradient_boosting_tensorflow_xgboost

Benchmarking Gradient Boosting in TensorFlow and XGBoost
Python
137
star
3

ros-bazel

Build ROS code with Bazel
Starlark
67
star
4

vslam_evaluation

Evaluation of open-source visual SLAM packages
Python
56
star
5

robotics_for_developers

Code for my tutorial on Robotics for developers (SLAM project)
C++
43
star
6

occupancy_mapping_benchmarks

Benchmarks for occupancy mapping libraries in Robotics
C++
19
star
7

naive_bayes_tensorflow

Naive Bayes classifiers in TensorFlow
Python
18
star
8

cs61as-racket-homework

Berkeley CS61AS course homework in Racket
Racket
13
star
9

bazel-buildroot-toolchain

C++ toolchain for Bazel with modern C++ and static binaries
Python
9
star
10

bazel-benchmarks

C++ Benchmarks for the Bazel build system
Python
7
star
11

awesome-bazel

A curated list of resources for the Bazel build system
4
star
12

aria2_api

aria2 RPC client in Go
Go
3
star
13

ros_bazel

Python
3
star
14

robotics_benchmarks

Benchmark setup for some robotics algorithms
C++
3
star
15

bazel-cpp-starter

Starter project for using C++ in Bazel with good defaults.
Python
2
star
16

gazebo-headless-docker

Record videos of gazebo robot simulations
Dockerfile
2
star
17

aruco2_ros

ROS packages for ArUco fiducial markers, v2.x
C++
1
star
18

slides-template

Template for my presentations
Makefile
1
star
19

llvm-build-docker

Python
1
star
20

boost_bazel

Bazel rules for building boost
Python
1
star
21

tensorflow_cuda_benchmarks

TensorFlow CNN performance on clang vs nvcc
Shell
1
star
22

asai-dog-classifier

Python
1
star
23

slides-2019-06-15-ita-cpp-con

Makefile
1
star