Giter Club home page Giter Club logo

plvs's Introduction

PLVS II

v0.2

Author: Luigi Freda

PLVS is a real-time system that leverages sparse SLAM, volumetric mapping, and 3D unsupervised incremental segmentation. PLVS stands for Points, Lines, Volumetric mapping, and Segmentation.

PLVS lab PLVS augmented reality PLVS details PLVS details

PLVS is available in two different versions.

  • PLVS I: hosted in the branch plvs1. It is based on ORB-SLAM2, and supports mono, stereo, and RGB-D cameras.
  • PLVS II: hosted in the master branch. It is based on ORB-SLAM3, and also supports camera systems provided with IMUs.

Here you can find a list of the new features provided by PLVS. You can find further information and videos on this page and in the following document:

PLVS: A SLAM System with Points, Lines, Volumetric Mapping, and 3D Incremental Segmentationย 
Luigi Freda

Note: PLVS is an active project. This README is under construction and will be updated soon with further information and details. Code improvements are coming soon.

Quick start

The following procedures were tested under Ubuntu 20. If you don't have it, check rosdocker and use the noetic or noetic_cuda containers.

Build

  1. Install basic dependencies:
    $ ./install_dependencies.sh
  2. Install OpenCV in a local folder:
    $ ./install_local_opencv.sh
  3. Build the PLVS framework:
    $ ./build.sh

Under ROS noetic you can run:
$ ./build_ros_catkin.sh
to build the PLVS ROS workspace and deploy it into the ros_ws subfolder.

It should be easy to adapt the above procedures if you have a different OS or ROS version.

If you want to skip step 2, you can set the variables OpenCV_DIR and OPENCV_VERSION in config.sh with your local OpenCV path and version, respectively. However, this is not recommended.

Running the examples

Once everything is built, you can enter in the Scripts folder and test the different examples. For instance you can configure and run:

  • $ ./run_tum_rgbd.sh for TUM RGB-D datasets
  • $ ./run_kitti_stereo.sh for KITTI datasets
  • $ ./run_euroc_stereo_inertial.sh for Euroc datasets, stereo + inertial
  • $ ./run_euroc_stereo.sh for Euroc datasets, only stereo
  • $ ./run_tum_vi_stereo.sh for TUM VI datasets, only stereo
  • $ ./run_tum_vi_stereo_inertial.sh for TUM VI datasets, stereo + inertial

In each of the above scripts, you have to configure (1) the DATASET_BASE_FOLDER, (2) the specific DATASET of interest, and (3) the used YAML configuration file. In particular, each YAML configuration file shows different sections with commented options. For a quick overview of the new features and their corresponding YAML options refer to new_features.md.

If you built the ROS workspace, you can use the scripts ros_xterm* to launch the PLVS ROS nodes. For instance, with the TUM datasets, run ros_xterm_tum_rgbd.sh.

Contributing

You are welcome to contribute to the code base by using pull requests, reporting bugs, leaving comments, and proposing new features through issues. Feel free to get in touch: luigifreda(at)gmail(dot)com. Thank you!

License

We release PLVS under GPLv3 license. PLVS contains some modified libraries, each one coming with its license. Where nothing is specified, a GPLv3 license applies to the software.

Please cite our work if you use PLVS in your projects.

Credits

  • The PLVS I and PLVS II frameworks are based on ORB-SLAM2 and ORB-SLAM3 respectively. Many thanks to their Authors for their great work and contributions to the Research and open-source communities.

plvs's People

Contributors

luigifreda 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.