Giter Site home page Giter Site logo

sosflyyi / indoormapping Goto Github PK

View Code? Open in Web Editor NEW

This project forked from necusjz/indoormapping

0.0 0.0 0.0 73.63 MB

Generate dense point cloud based on ORB-SLAM, and build indoor navigation map using OctoMap.

License: MIT License

Shell 0.40% C++ 89.19% Python 2.92% CMake 7.49%

indoormapping's Introduction

Indoor Mapping

Generate dense point cloud based on ORB-SLAM, and build indoor navigation map using OctoMap.

By adding a point cloud viewer, we can visualize dense point cloud during simultaneous localization and mapping. We also provide some useful tools in tools/*, such as binary dictionary conversion and octree map conversion.

Installation

There are some prerequisites that need to be installed in advance (all passed on Ubuntu 16.04).

CMake

CMake is an open-source, cross-platform family of tools designed to build, test and package software:

$ sudo apt-get install cmake

GLEW

The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library:

$ sudo apt-get install libglew-dev

Pangolin

We use Pangolin for visualization and user interface:

$ git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build && cd build
$ cmake ..
$ cmake --build .

OpenCV

We use OpenCV to manipulate images and features:

$ sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev python-numpy python-matplotlib
$ cd opencv-3.2.0
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

Eigen3

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers and related algorithms:

$ sudo apt-get install libeigen3-dev

g2o

We use modified version of g2o library to perform non-linear optimizations:

$ cd Thirdparty/g2o
$ mkdir build && cd build
$ cmake ..
$ make

DBoW2

We use modified version of DBoW2 library to perform place recognition:

$ cd Thirdparty/DBoW2
$ mkdir build && cd build
$ cmake ..
$ make

Boost

Boost provides free peer-reviewed portable C++ source libraries:

$ sudo apt-get install libboost-all-dev

FLANN

FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces:

$ sudo apt-get install libflann1.8 libflann-dev

Qt

Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens:

$ chmod +x qt-opensource-linux-x64-5.8.0.run
$ ./qt-opensource-linux-x64-5.8.0.run

VTK

The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, image processing and visualization:

$ cd VTK-8.1.1
$ mkdir build && cd build
$ cmake -DVTK_QT_VERSION:STRING=5 -DQT_QMAKE_EXECUTABLE:PATH=[PATH]/Qt5.8.0/5.8/gcc_64/bin/qmake -DVTK_Group_Qt:BOOL=ON -DCMAKE_PREFIX_PATH:PATH=[PATH]/Qt5.8.0/5.8/gcc_64/lib/cmake -DBUILD_SHARED_LIBS:BOOL=ON ..
$ make

PCL

The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing:

$ cd pcl-pcl-1.8.1
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

OctoMap

The OctoMap library implements a 3D occupancy grid mapping approach, providing data structures and mapping algorithms in C++ particularly suited for robotics:

$ sudo apt-get install libqglviewer-dev-qt4
$ git clone https://github.com/OctoMap/octomap.git
$ cd octomap
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

Dataset

Computer Vision Group - Dataset Download

Usage

$ git clone https://github.com/necusjz/IndoorMapping.git
$ cd IndoorMapping
$ mkdir build && cd build
$ cmake ..
$ make

Evaluation

There are several useful commands and we also provide shell script versions in *.sh.

Run test dataset

$ ./bin/rgbd_tum Vocabulary/ORBvoc.bin test/TUM1.yaml Dataset/rgbd_dataset_freiburg1_room test/associations/fr1_room.txt

Execute this command, the dense point cloud will be visualized in a viewer like this:

Convert *.pcd to *.ot

$ ./tools/pcd2octomap map.pcd map.ot

Plot estimated difference

$ ./tools/evaluate_ate.py Dataset/rgbd_dataset_freiburg1_room/groundtruth.txt CameraTrajectory.txt --plot result.png

This command will plot absolute trajectory error on a figure like this:

Print all results

$ ./tools/evaluate_ate.py Dataset/rgbd_dataset_freiburg1_room/groundtruth.txt CameraTrajectory.txt --verbose

Contributing

We love contributions! Before submitting a Pull Request, it's always good to start with a new issue first.

License

This repository is licensed under MIT. Full license text is available in LICENSE.

indoormapping's People

Contributors

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