GithubHelp home page GithubHelp logo

lulusimili / distributed-sptam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cifasis/distributed-sptam

0.0 0.0 0.0 362 KB

Distributed S-PTAM

License: Other

Shell 0.55% C++ 80.55% Python 16.13% Makefile 0.15% CMake 2.63%

distributed-sptam's Introduction

S-PTAM is a Stereo SLAM system able to compute the camera trajectory in real-time. It heavily exploits the parallel nature of the SLAM problem, separating the time-constrained pose estimation from less pressing matters such as map building and refinement tasks. On the other hand, the stereo setting allows to reconstruct a metric 3D map for each frame of stereo images, improving the accuracy of the mapping process with respect to monocular SLAM and avoiding the well-known bootstrapping problem. Also, the real scale of the environment is an essential feature for robots which have to interact with their surrounding workspace.

IMAGE ALT TEXT HERE
(Click the image to redirect to S-PTAM video)

Related Publications:

[1] Taihú Pire, Thomas Fischer, Javier Civera, Pablo De Cristóforis and Julio Jacobo Berlles.
Stereo Parallel Tracking and Mapping for Robot Localization
Proc. of The International Conference on Intelligent Robots and Systems (IROS) (Accepted), Hamburg, Germany, 2015.

Table of Contents generated with DocToc

License

S-PTAM is released under GPLv3 license.

Disclaimer

This site and the code provided here are under active development. Even though we try to only release working high quality code, this version might still contain some issues. Please use it with caution.

Prerequisites (dependencies)

ROS

We have tested S-PTAM in Ubuntu 16.04 with ROS Kinetic.

To install ROS (kinetic) use the following command:

sudo apt-get install ros-kinetic-desktop

ros-utils

Install our ros-utils library from the source code provided in

git clone [email protected]:lrse/ros-utils.git

g2o

Install g2o using the following command:

sudo apt install ros-kinetic-libg2o

PCL

Install PCL using the following command:

sudo apt install ros-kinetic-pcl-ros

Installation

https://github.com/CIFASIS/distributed-sptam

ROS Package

Compilation

catkin_make --pkg sptam -DSHOW_TRACKED_FRAMES=ON

CMAKE flags

SHOW_TRACKED_FRAMES=([ON|OFF], default: OFF)
          Show the tracked frames by S-PTAM. Set it OFF to improve S-PTAM performance.

SHOW_PROFILING=([ON|OFF], default: ON)
          Log in /tmp folder. Set it OFF to improve S-PTAM performance.

DSHOW_PRINTS=([ON|OFF], default: OFF)
          Show info on screen. Set it OFF to improve S-PTAM performance.

ROS Package

Tutorials

We provide some examples of how to run with the most popular stereo datasets

KITTI dataset

  1. Download the KITTI rosbag kitti_00.bag provided in KITTI rosbag files

  2. Uncompress the dataset

    rosbag decompress kitti_00.bag

  3. Set use_sim_time ros variable true

    rosparam set use_sim_time true

  4. Play the dataset

    rosbag play kitti_00.bag

    (When S-PTAM run with the flag SHOW_TRACKED_FRAMES=ON the performance is reduced notoriusly).

EuRoC dataset

  1. Download the EuRoC Machine Hall 01 rosbag provided in EuRoC rosbag files

  2. Uncompress the dataset

    rosbag decompress MH_01_easy.bag

  3. Set use_sim_time ros variable true

    rosparam set use_sim_time true

  4. Play the dataset

    rosbag play MH_01_easy.bag

    (When S-PTAM run with the flag SHOW_TRACKED_FRAMES=ON the performance is reduced notoriusly).

Execution

Examples for KITTI dataset:

Tracker & Mapper in same PC

roslaunch sptam dsptam_kitti.launch

Tracker only

roslaunch sptam dsptam_kitti-tracker.launch

Distributed S-PTAM

Prerequisites

In PC 1 (master):

export ROS_IP=192.168.1.1

In PC 2 (client):

export ROS_IP=192.168.1.2

export ROS_MASTER_URI=http://192.168.1.1:11311

IP master PC and port 11311.

Launch files

In PC 1:

roslaunch sptam dsptam_kitti-tracker.launch

In PC 2:

roslaunch sptam dsptam_kitti-mapper.launch

distributed-sptam's People

Contributors

maurodc avatar taihup avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.