GithubHelp home page GithubHelp logo

dc-vslam's Introduction

DC-VSLAM

This is the software related to the publication: Multicamera Visual SLAM For Vineyard Inspection, submitted at the CASE 2023.

DC-VSLAM is a multicamera visual SLAM designed for vineyard inspection. To address the challenge of homogeneous environments, loop closures are detected using AprilTags.

DC-VSLAM has been tested with OpenCV 4.2.0, Eigen 3.3.7 on Ubuntu 20.04 with ROS Noetic.

Results

Kitti Dataset Sequence 01 :

til

EuRoC Dataset V1_02 :

til

Dual Camera on Vineyard :

til

Installation

Two different ways are provided for installation. One is with ROS where DC-VSLAM can run real-time using rosbags, and another without ROS where DC-VSLAM runs using images. For the real-time operations ROS Noetic is needed. Instructions on how to install ROS Noetic can be found here : http://wiki.ros.org/noetic/Installation.

With ROS

Clone the package on the catkin workspace.

git clone https://github.com/christoskokas/DC-VSLAM.git

Download and install packages used by dc_vslam :

cd DC-VSLAM
chmod +x build.sh
./build.sh

From the catkin workspace install all the needed dependencies for the packages.

rosdep install --from-paths src --ignore-src -r -y

Build the workspace.

catkin_make
source devel/setup.bash

Without ROS

Build both dc_vslam and its packages without ROS :

chmod +x build_no_ros.sh
./build_no_ros.sh

Quick Start

Several launch files are provided. The RT denotes real-time and the AT denotes the use of AprilTag Loop Closure. Change the launch files to match the config file name and the topic of the image msgs for AprilTag detection.

DC-VSLAM can run both with images and with rosbags. Images need to be provided as presented below ( the bullets are folders ):

  • DC_VSLAM
    • images
      • dataset_name
        • left
          1. 000000.jpg(.png)
          2. 000001.jpg(.png)
          3. ...
        • right
          1. 000000.jpg(.png)
          2. 000001.jpg(.png)
          3. ...
        • leftBack
          1. 000000.jpg(.png)
          2. 000001.jpg(.png)
          3. ...
        • rightBack
          1. 000000.jpg(.png)
          2. 000001.jpg(.png)
          3. ...

And the full path to the dataset folder has to be provided in the config file.

With ROS

To run Dual Cam with apriltag_ros package ( for Loop Closure ) at the same time :

roslaunch dc_vslam DualCamRTAT.launch

To run Dual Cam with AprilTag Detcetion messages ( for Loop Closure ) in a topic :

roslaunch dc_vslam DualCamRT.launch

To run Dual Cam from images in a directory :

roslaunch dc_vslam DualCam.launch

For Single Cam either from rosbag :

roslaunch dc_vslam SingleCamRT.launch

or images :

roslaunch dc_vslam SingleCam.launch

To run Dual Cam and wait for optimal pose of Apriltag :

roslaunch dc_vslam DualCam_exp.launch

To run Dual Cam with known Apriltag Pose :

roslaunch dc_vslam DualCam_exp_known.launch

Without ROS

If the installation was completed without ROS images need to be provided. Single Cam is also provided to test on well-known datasets like KITTI or EUROC. Configs for both KITTI and EUROC are provided. To run single cam :

./SingleCam config_file_name

with the appropriate changes on the config file.

To run Dual cam :

./DualCam config_file_name

TO DO

  • [] Add IMU integration
  • [] Add more Apriltags

dc-vslam's People

Contributors

christoskokas avatar

Stargazers

Sean Stevens avatar

Watchers

 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.