• Stars
    star
    486
  • Rank 90,509 (Top 2 %)
  • Language
    C++
  • License
    MIT License
  • Created over 6 years ago
  • Updated 8 months ago

Reviews

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

Repository Details

Monocular MSCKF ROS Node

msckf_mono

Monocular MSCKF with ROS Support

Requirements

Euroc Dataset -- ROS Bag

Download MH_03_medium.bag from into the euroc folder in this repository.

wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_03_medium/MH_03_medium.bag
mv MH_03_medium.bag <path_to_msckf_mono>/euroc/.

Now run the MSCKF on this sequence

roslaunch msckf_mono euroc.launch

RViz will come up by default showing the odometry and image with tracks.

Euroc Dataset -- ASL Format

Download one (or more) of the datasets from https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets in the ASL dataset format Place

%YAML:1.0

At the top of each YAML file. Currently OpenCV is being used to load these YAMLs and expects this header to exist.

The stand_still_end is going to be the time just before the quad takes off for the actual sequence--take care to find this before starting the MSCKF.

Now you can run the MSCKF on the individual sequence

roslaunch msckf_mono asl_msckf.launch data_set_path:=<directory of mav0 inside of sequence> stand_still_end:=<time to start at with dot at the end>

RViz will come up by default and display the image with tracks on the left and the generated path and map on the right.

Machine Hall 03 Medium

The two paths shown, green is ground truth and red is from the MSCKF.

MSCKF

The actual MSCKF is fully templated based on the floating point type that you want. It should be easy to compile for applications that see real speedups from smaller floating point sizes.

We have run this on platforms ranging from the odroid to a modern laptop, so hopefully it should work on whatever device you want.

Used in

TODO

  • ROS Nodelet
  • Remove OpenCV from opening YAML files
  • PennCOSYVIO Dataset support

More Repositories

1

neural_renderer

A PyTorch port of the Neural 3D Mesh Renderer
Python
1,124
star
2

spherical-cnn

Demo code for the paper "Learning SO(3) Equivariant Representations with Spherical CNNs"
Python
289
star
3

EV-FlowNet

Code for the paper "EV-FlowNet: Self-Supervised Optical Flow for Event-based Cameras"
Python
167
star
4

event_feature_tracking

This repo contains MATLAB implementations of the event-based feature tracking methods described in "Event-based Feature Tracking with Probabilistic Data Association" and "Event-based Visual Inertial Odometry".
MATLAB
82
star
5

monocap

Code for MonoCap: Monocular Human Motion Capture using a CNN Coupled with a Geometric Prior.
MATLAB
60
star
6

emvn

Demo source code for the paper "Equivariant Multi-View Networks".
Python
56
star
7

polar-transformer-networks

Demo source code for the paper "Esteves, C., Allen-Blanchette, C., Zhou, X. and Daniilidis, K, "Polar Transformer Networks", ICLR 2018.
Python
54
star
8

mvsec

Multi Vehicle Stereo Event Camera Dataset
Python
52
star
9

ffmpeg_image_transport

image transport that uses libavcodec for compression
C++
42
star
10

m3ed

M3ED Dataset
Python
39
star
11

penncosyvio

The PennCOSYVIO data set
37
star
12

swscnn

Demo source code for the paper "Spin-Weighted Spherical CNNs".
23
star
13

cluster_tutorials

Generic slurm tutorials that explain intricacies of the cluster as implemented
Shell
19
star
14

all-graphs-lead-to-rome

Graph Convolutional Networks for multi-image matching
Python
17
star
15

ffmpeg_image_transport_tools

ros package with tools for ffmpeg compressed images
C++
7
star
16

drocap

7
star
17

EvAC3D

Python
7
star
18

daniilidis-group.github.io

home page of the Daniilidis group
HTML
5
star
19

flex_sync

ros package for syncing variable number of topics
C++
3
star
20

downsampling_image_transport

ROS image transport downsampling images in time
C++
2
star
21

grasp_multicam

repo for UPenn's GRASP MultiCam data set
Python
1
star