Coder Social home page Coder Social logo

viso2's Introduction

viso2

ROS Stack containing a wrapper for libviso2, a visual odometry library. http://www.ros.org/wiki/viso2 for the list of contained packages.


Omnidirectional version

  • This package contains an additional version of the original Libviso2 that works with a monocular omnidirectional camera system.

Dependencies

  • The only additional dependency of this version is the camera calibration toolbox Ocamcalib for Matlab.
    • Instead of using a normal pinhole camera calibration model, the method uses the unified camera model proposed by Davide Scaramuzza.
    • Download the toolbox from here, put it in your Matlab workspace and execute the ocam_calib command to run the application.
    • After calibrating the camera save the generated text file that will be used by the method.

How to execute

  • To execute omnidirectional Libviso2 make sure you have a camera node publishing over ROS.
  • After that you can use the demo launch file that we provide in the following way:
roslaunch viso2_ros demo.launch
  • Make sure that first you set the file calibration path correctly by changing the calib_path parameter.
  • Also you can edit/add the default parameters that Libviso2 use (don't forget that camera height and pitch are mandatory to scale calculation).

Performance test

  • If you want to check the performance of the method before using it in your own system you can use the bag file that we provide here.
Available topics on the bag file
  1. perspective_cam/image/compressed contains a perspective camera sequence that can be used by the default monocular Libviso2 version to benchmark.
  2. fisheye_cam/image/compressed contains the same sequence captured by a fisheye camera.
  3. slam_out_pose contains the camera motion estimation computed by Hector SLAM method.
  4. /husky_velocity_controller/odom constains conventional odometry motion estimation.
  5. /fix constains GPS data.
  6. /map contains a map of the environment designed using a laser.
  7. (...) and others.
Running the test sequences
  • To run both test sequences you can execute the following commands after setting the proper paths for the bag file and the calibration file.
roslaunch viso2_ros perspective.launch
roslaunch viso2_ros fisheye.launch

NOTE: We provide the camera calibration file for the fisheye camera ('data/calib_results.txt'). You have to set the correct path to the rosbag file in both launch files and the calibration text file in the fisheye.launch. We also provide a rviz configuration file to easy visualization of the results.

Acknowledges

This work is co-financed by the ERDF – European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 under the PORTUGAL 2020 Partnership Agreement, and through the Portuguese National Innovation Agency (ANI) as a part of project «ROMOVI: POCI-01-0247-FEDER-017945»".

viso2's People

Contributors

aaguiar96 avatar limhyon avatar miquelmassot avatar papr avatar phil0stine avatar sksavant avatar stwirth 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.