Giter VIP home page Giter VIP logo

svin2's Introduction

Update: This repository is no longer maintained. Please visit our updated project here: https://github.com/AutonomousFieldRoboticsLab/SVIn, it includes supports for Ubuntu 18.04 and 20.04, along with some other new features.

SVIn2 is a tightly coupled Sonar-Visual-Inertial-Depth formulation of Simultaneous Localization and Mapping (SLAM) algorithm for real-time Underwater navigation. The package contains two modules: 1. okvis_ros: Adaption of OKVIS (https://github.com/ethz-asl/okvis_ros) to fuse Sonar and Depth information in the tightly coupled formulation. 2. pose_graph: Loop-closing module to enable real-time loop detection and pose-graph optimization based on the bag-of-binary-words library DBoW2.

  1. Installation:

    • Dependencies:

      -- ROS kinetic

      -- ceres-solver. See http://ceres-solver.org/installation.html for installation.

      -- The followings should be already installed through ROS or when installing ceres-solver:

        # Cmake:  sudo apt-get install cmake
        
        # google-glog + gflags: sudo apt-get install libgoogle-glog-dev
        
        # BLAS & LAPACK: sudo apt-get install libatlas-base-dev
        
        # Eigen3: sudo apt-get install libeigen3-dev
        
        # SuiteSparse and CXSparse: sudo apt-get install  libsuitesparse-dev 
        
        # Boost: sudo apt-get install libboost-dev libboost-filesystem-dev
      

      -- You may need to install some ros packages which can be installed by: sudo apt-get install ros-kinetic-PACKAGE-NAME. For example, to install tf2-sensor-msgs:

       sudo apt-get install ros-kinetic-tf2-sensor-msgs
      

      -- Driver for Sonar: git clone https://github.com/quattrinili/imagenex831l.git.

      -- Driver for Depth Sensor: aquacore has the driver for depth. If you want to install SVIn2 on your laptop/pc make sure you have the depth driver.

      -- BRISK feature detector for pose-graph. # Download https://www.doc.ic.ac.uk/~sleutene/software/brisk-2.0.3.zip and Extract $ mkdir build $ cd build $ cmake ../ $ make $ sudo make install

    • Building the project: Once you have the above installed, from the catkin_ws root, type $ catkin_make

  2. Running it on our publicly available datasets: https://afrl.cse.sc.edu/afrl/resources/datasets/. If you follow "Datasets for Visual-Inertial-Based State Estimation Algorithms" link you will be directed to a google drive directory, under the 'Bus' and 'Cave' you will find ROS bagfile with Sonar topic named as '/imagenex831l/range' and '/imagenex831l/range_raw'. Run the launch file for Cave:

     roslaunch okvis_ros svin_node_stereoRig2_water.launch
    

Or, run the launch file for Bus:

    roslaunch okvis_ros svin_node_stereo_rig_water.launch

You can use rviz for visulalization -- you can load rviz config from .../SVIn2/pose-graph/rviz/svin2.rviz.

  1. Calibration guidelines: In general, both Camera calibration and Camera-IMU calibration are very important for accurate state estimation. Errors in them could severly mess up with the results. The calibration package from ETH Zurich https://github.com/ethz-asl/kalibr is a good tool for calibration.

svin2's People

Contributors

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