Skip to content

Finite Element Modelling and Analysis is embedded in ORB-SLAM2 granting the capability to relocate the camera in deformable environments. TFG Mechanical Engineering Íñigo Cirauqui. Director JMM Montiel.

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE.txt
GPL-3.0
License-gpl.txt
Notifications You must be signed in to change notification settings

UZ-SLAMLab/ORB_SLAM2_E

Repository files navigation

ORB-SLAM2-E

ORB-SLAM2-E is a tunned version of ORB-SLAM2 that has been readied to work in deformable environments by approximating the rigid model. The project is the ressult of a Bachelor's Degree Final Thesis in Mechanical Engineering at Universidad de Zaragoza. Its main goal is to provide the capability of relocating the camera in deformable environments for which finite elements models have been embeeded in the non-linear optimization processes.

Author: [Íñigo Cirauqui Viloria] Director: J. M. M. Montiel

Related Publications:

[TFG] Íñigo Cirauqui. Deformable Loop_Closure Detection in Medical Endoscope Sequences (CS: Detección de Cierre de Blucles Deformables en Secuencias de Endoscopia Médica). Trabajo de Fin de Grado, Escuela de Ingeneiría y Arquitectura. Universidad de Zaragoza, 2021.

ORB-SLAM2

Authors: Raul Mur-Artal, Juan D. Tardos, J. M. M. Montiel and Dorian Galvez-Lopez (DBoW2)

ORB-SLAM2 is a real-time SLAM library for Monocular, Stereo and RGB-D cameras that computes the camera trajectory and a sparse 3D reconstruction (in the stereo and RGB-D case with true scale). It is able to detect loops and relocalize the camera in real time. We provide examples to run the SLAM system in the KITTI dataset as stereo or monocular, in the TUM dataset as RGB-D or monocular, and in the EuRoC dataset as stereo or monocular. We also provide a ROS node to process live monocular, stereo or RGB-D streams. The library can be compiled without ROS. ORB-SLAM2 provides a GUI to change between a SLAM Mode and Localization Mode, see section 9 of this document.

ORB-SLAM2 ORB-SLAM2 ORB-SLAM2

Related Publications:

[Monocular] Raúl Mur-Artal, J. M. M. Montiel and Juan D. Tardós. ORB-SLAM: A Versatile and Accurate Monocular SLAM System. IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163, 2015. (2015 IEEE Transactions on Robotics Best Paper Award). PDF.

[Stereo and RGB-D] Raúl Mur-Artal and Juan D. Tardós. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255-1262, 2017. PDF.

[DBoW2 Place Recognizer] Dorian Gálvez-López and Juan D. Tardós. Bags of Binary Words for Fast Place Recognition in Image Sequences. IEEE Transactions on Robotics, vol. 28, no. 5, pp. 1188-1197, 2012. PDF

1. License

ORB-SLAM2/ORB-SLAM2-E are released under a GPLv3 license. For a list of all code/library dependencies (and associated licenses), please see Dependencies.md.

For a closed-source version of ORB-SLAM2 for commercial purposes, please contact the authors: orbslam (at) unizar (dot) es. For a closed-source version of ORB-SLAM2-E for commercial purposes, please contact the authors: icirauqui (at) gmail (dot) es.

2. Prerequisites

We have tested the library in 16.04 and 20.04, but it should be easy to compile in other platforms. A powerful computer (e.g. i7) will ensure real-time performance and provide more stable and accurate results.

C++11 or C++0x Compiler

We use the new thread and chrono functionalities of C++11.

Pangolin

We use Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.

OpenCV

We use OpenCV to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. Required at leat 2.4.3. Tested with OpenCV 2.4.11 and OpenCV 3.2.

Eigen3

Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.

DBoW2 and g2o (Included in Thirdparty folder)

We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.

ROS

We provide some examples to process the live input of a monocular, stereo or RGB-D camera using ROS. Building these examples is optional. In case you want to use ROS, a version Hydro or newer is needed.

Point Cloud Library (PCL)

Required for the Finite Element modelling. Download and install instructions can be found at: https://pointclouds.org/.

3. Building ORB-SLAM2-E library and examples

Clone the repository:

git clone https://github.com/icirauqui/ORB_SLAM2_E.git

We provide a script build.sh that deploys the software, please make sure you have installed all required dependencies (see section 2). Execute:

cd ORB_SLAM2
chmod +x build.sh
./build.sh 0

This will create libORB_SLAM2_E.so at lib folder and the executables mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc in Examples folder.

4. Running

For a monocular input from topic /camera/image_raw run node ORB_SLAM2_E/MonoE. You will need to provide the vocabulary file and a settings file.

rosrun ORB_SLAM2_E MonoE PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE

With main node running you'll have to feed a rosbag file with the images, alternativelly you can use live feed from an usb camera, for which ROS's usb_cam package mus be installed.

rosbag play bag_name.bag

5. Processing your own sequences

You will need to create a settings file with the calibration of your camera. See the settings file provided as examples. We use the calibration model of OpenCV. See the examples to learn how to create a program that makes use of the ORB-SLAM2-E library and how to pass images to the SLAM system.

6. SLAM and Localization Modes

You can change between the SLAM and Localization mode using the GUI of the map viewer.

SLAM Mode

This is the default mode. The system runs in parallal three threads: Tracking, Local Mapping and Loop Closing. The system localizes the camera, builds new map and tries to close loops.

Localization Mode

This mode can be used when you have a good map of your working area. In this mode the Local Mapping and Loop Closing are deactivated. The system localizes the camera in the map (which is no longer updated), using relocalization if needed.

Deformable model

You can enable "FEA" so the Finite Element Model is represented in both the map and the image. If you enable *Debug Mode" extra information about the process and deformation data is displayed in the terminal.

About

Finite Element Modelling and Analysis is embedded in ORB-SLAM2 granting the capability to relocate the camera in deformable environments. TFG Mechanical Engineering Íñigo Cirauqui. Director JMM Montiel.

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE.txt
GPL-3.0
License-gpl.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages