Coder Social home page Coder Social logo

rgbd_rtk's Introduction

Natalnet/LPR RGB-D Reconstruction Toolkit

Introduction

A set of utility code built by the Natalnet/LPR group for 3D reconstruction applications using RGB-D (e.g. Microsoft Kinect) cameras.

Requirements

It is recommended to install both dependencies from source. The following two links will redirect you to their official tutorials to do so.

Install OpenCV on Linux

Compiling PCL from source on Linux

Building On Ubuntu 20.04

First, get the newest version of this repository by using the follwing command on your working directory.

git clone https://github.com/natalnet-lpr/rgbd_rtk.git

Go to the project folder

cd rgb_rtk

The fastest way to build the project and it requirements is using our setup script.

bash setup.sh -a -v

This gonna take a while (some hours depending on your computer settings).

After this, you must be able to execute the program files at the build/bin folder

Others Distros

First, get the newest version of this repository by using the follwing command on your working directory.

cd /my_working _directory 
git clone https://github.com/natalnet-lpr/rgbd_rtk.git

Create a directory called build, and change directory to it.

mkdir build
cd build/

Inside of the build directory, run the cmake command so that it will create the necessary makefiles.

cmake ..

Then, compile the rgbt_rtk by using the make command. The -j4 is optional but it is recommended. With it your code will be compiled in 4 parallel tasks.

make -j4
sudo make install

License

This code is distributed under the terms of the BSD License.

Authors

Natalnet Laboratory for Perceptual Robotics, Federal University of Rio Grande do Norte, Brazil.

Contact: bruno.silva AT ect.ufrn.br

rgbd_rtk's People

Contributors

brnmfs avatar hmarcos avatar miguelrochajr avatar rodrigosarmento avatar y9luiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rgbd_rtk's Issues

Memory Leaks error in Visualizer

To reproduce:
Just need to have a reference to "ReconstructionVisualizer"
ReconstructionVisualizer visualizer; For example.

  • It is not a big problem since the error only occurs after the program ends.
  • There is no need to use any method of ReconstructionVisualizer class to see the error.
  • it is likely to be an error with deallocation of memory

Support KITTI/Stereo datasets

Include the implementation from Ferreira and Vanessa works that enables the RGB-D RTK to process KITTI/Stereo datasets.

Create FindOpenFABMAP.cmake file

Arren Glover implemented a open source version in C++ of OpenFABMAP, this implementation can be very useful because the source code was wrote using OpenCV, for link his library with our library is necessary to create a .cmake file to found the library.

Reject wrong matches in motion estimator

Add a method in motion class to reject wrong matches using RANSAC.

The method estimate is currently implemented with RANSAC but is not removing wrong matches.
Therefore, we could store the indices of the inlier/outlier correspondences in a vector and update both vectors by removing positions marked as wrong, after calling the method.

Design keyframe class

A keyframe class is needed to represent the needed information (camera pose and point cloud) for the optimization process. This class should inherit from the G2O vertex class.

Implement a system logger

A system logger should be visible/usable by all other classes as a singleton.
The logger should be used to log events, warnings, debug messages, errors, etc.

Remove warnings

A lot of minor warnings such as comparison between signed and unsigned int

ICP odometry

  1. Check with Luiz Felipe if this is already done
  2. Test it, assess its quality
  3. Do the same with ICP + Visual Odometry

Organize ROS wrapper code

Organize ROS wrapper code according to functionality:

-Geometry (relative transformations between poses, point transformation, etc.) code should be in module common/geometry
-ARUCO specific code should be in module SLAM (marker detection)
-All ROS variables should be in a ROSWrapper class as instance attributes

Tracking by detection algorithm

Implement a tracking by detection algorithm for the tracker interface.
This implementation should be flexible enough to support combinations of feature detector/descriptor extractors (SIFT, SURF, ORB, etc.)

motion_estimator_test.cpp segmentation fault error

Segmentation Fault ocorre nesse bloco de código (linhas 95-100)
if (i > 0)
{
trans = motion_estimator.estimate(tracker.prev_pts_, prev_cloud, tracker.curr_pts_, curr_cloud);
pose = pose * trans;
}

Dataset: ar_mm_lab1
config_files: marker_detection.yaml

Add date/time to log messages

Add a prefix to all messages in the format YYYY-MM-DD HH:MM:SS in such a way that the log message
[MotionEstimatorRANSAC] INFO: inlier ratio: 0.727273

would appear
[2020-05-15 15:20:32 MotionEstimatorRANSAC] INFO: inlier ratio: 0.727273

and a message
[2020-05-15 15:20:32 common::EventLogger] Session start

would be printed before
[[2020-05-15 15:20:33 common::EventLogger] INFO: opening file log.txt

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.