All Projects → krrish94 → dvo_python

krrish94 / dvo_python

Licence: other
Coding dense visual odometry in a little more than a night (yikes)!

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to dvo python

RGB-D-SLAM
Work in Progress. A SLAM implementation based on plane and superquadric tracking.
Stars: ✭ 23 (-42.5%)
Mutual labels:  slam, rgbd, slam-algorithms
ndtpso slam
ROS package for NDT-PSO, a 2D Laser scan matching algorithm for SLAM
Stars: ✭ 32 (-20%)
Mutual labels:  slam, slam-algorithms
TinyGrapeKit
A bunch of state estimation algorithms
Stars: ✭ 184 (+360%)
Mutual labels:  slam, slam-algorithms
microstrain inertial
ROS driver for all of MicroStrain's current G and C series products. To learn more visit
Stars: ✭ 44 (+10%)
Mutual labels:  slam, slam-algorithms
rgbd ptam
Python implementation of RGBD-PTAM algorithm
Stars: ✭ 65 (+62.5%)
Mutual labels:  slam, rgbd
staticfusion
StaticFusion
Stars: ✭ 107 (+167.5%)
Mutual labels:  slam, rgbd
vslam
Basic algorithms for vslam.
Stars: ✭ 44 (+10%)
Mutual labels:  slam, slam-algorithms
Co Fusion
Co-Fusion: Real-time Segmentation, Tracking and Fusion of Multiple Objects
Stars: ✭ 400 (+900%)
Mutual labels:  slam, rgbd
Maskfusion
MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
Stars: ✭ 404 (+910%)
Mutual labels:  slam, rgbd
AVP-SLAM-PLUS
An implementation of AVP-SLAM and some new contributions
Stars: ✭ 371 (+827.5%)
Mutual labels:  slam, slam-algorithms
lt-mapper
A Modular Framework for LiDAR-based Lifelong Mapping
Stars: ✭ 301 (+652.5%)
Mutual labels:  slam
rgbd scribble benchmark
RGB-D Scribble-based Segmentation Benchmark
Stars: ✭ 24 (-40%)
Mutual labels:  rgbd
Udacity
This repo includes all the projects I have finished in the Udacity Nanodegree programs
Stars: ✭ 57 (+42.5%)
Mutual labels:  slam-algorithms
diode-devkit
DIODE Development Toolkit
Stars: ✭ 58 (+45%)
Mutual labels:  rgbd
realsense explorer bot
Autonomous ground exploration mobile robot which has 3-DOF manipulator with Intel Realsense D435i mounted on a Tracked skid-steer drive mobile robot. The robot is capable of mapping spaces, exploration through RRT, SLAM and 3D pose estimation of objects around it. This is an custom robot with self built URDF model.The Robot uses ROS's navigation…
Stars: ✭ 61 (+52.5%)
Mutual labels:  slam
pi roombot
ROS raspberry pi "roomba" like robot
Stars: ✭ 12 (-70%)
Mutual labels:  slam
3DGNN
No description or website provided.
Stars: ✭ 56 (+40%)
Mutual labels:  rgbd
FLOBOT
EU funded Horizon 2020 project
Stars: ✭ 20 (-50%)
Mutual labels:  rgbd
slam docker collection
A collection of docker environments for 3D SLAM packages
Stars: ✭ 130 (+225%)
Mutual labels:  slam
dpgo ros
ROS wrapper for distributed pose graph optimization
Stars: ✭ 29 (-27.5%)
Mutual labels:  slam

dvo_python: Dense visual odometry in Python(3.6(.6))

Coded up in slightly longer than a night! :)

Someone tweeted about this elegant implementation , and that's what made my day (rather, my night). I was like, "Hmm, a good refresher on dense SLAM would be to implement this, let me do it in Python."

The first coding sprint ran for about 7.5 hours, in which I implemented most of the framework, i.e., the residual and Jacobian computation, and a simplish gradient-descent optimizer.

Micromanagement

  • Work out dependencies (numpy, OpenCV, some SE(3) package(??), matplotlib)
  • Read in a pair of pointclouds and visualize them
  • Construct image and depth pyramids
  • Compute the residual (warping error)
  • Implement SE(3) routines
  • Implement image gradient computation
  • Compute Jacobian of the error function
  • Write a Gradient-descent optimizer
  • Write a Gauss-Newton optimizer
  • Robustify the error function (IRLS / M-Estimators)
  • Debug the two-image alignment case
  • Extend to a sequence of several images
  • Setup class to load a TUM RGB-D sequence and run dvo _python on it.
  • Debug!
  • Check for any possibile visualization glitches/enhancements.

Big picture checklist

  • Barebones version of repo up
  • Chalk out repo structure, order in which to code
  • Put the order up as a checklist
  • Code & Debug (on a pair of images)!
  • Code & Debug on a sequence of images
  • Get it to run on TUM RGB-D!
  • Benchmark (time and accuracy)
  • Finish up documentation and README
  • Take a moment to revel in a sense of accomplishment ;)
  • Get some sleep!!! :)

Activity Log

Times are in 24-hour format.

Night 1: 21 November-22 November 2018

  • 2000 - 2020: Chalk out action plan.
  • 2020 - 2050: Dinner break.
  • 2100 - 2130: Download a sequence from TUM RGB-D, load and display stuff
  • 2140 - 2300: Build pyramid levels (plus a lot of interruptions :|)
  • 2330 - 0115: Compute the photometric warp error
  • 0115 - 0145: Get SE(3) helper functions in
  • 0200 - 0220: Image gradient computation, fetch SE(3) Jacobian helper functions
  • 0220 - 0310: Implement Jacobian computation
  • 0310 - 0330: Implement gradient descent optimizer

Day 2: 22 November 2018

  • 1100 - 1130: Vectorize image pyramid level construction
  • 1614 - 1645: Vectorize edge-preserving depth pyramid level construction
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].