• Stars
    star
    226
  • Rank 170,906 (Top 4 %)
  • Language
    C++
  • Created about 12 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A ROS wrapper for libviso2, a library for visual odometry

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Β»".

More Repositories

1

stereo_slam

C++
126
star
2

srv_tools

ROS-Stack with some tools
Python
62
star
3

libhaloc

ROS library for HAsh-based LOop Closure
C++
47
star
4

pointcloud_web_viewer

PHP
42
star
5

fovis

ROS wrapper for fovis, a visual odometry library
C++
23
star
6

avt_vimba_camera

ROS Driver for AVT cameras using VIMBA SDK
C++
23
star
7

image_preprocessing

Underwater image preprocessing: Vignetting ellimination, color correction and dehazing
C++
18
star
8

laser_stripe_reconstruction

C++
16
star
9

6dof_stereo_ekf_slam

6 DOF Stereo Visual EKF Slam
MATLAB
14
star
10

auv_framework

ROS stack for control and navigation of autonomous underwater vehicles
C++
12
star
11

libfovis

Fork of the original libfovis (Fast Odometry from VISion)
C++
12
star
12

pointcloud_registration

Different examples on point cloud registration using PCL
C++
10
star
13

pcl_feature_extraction

C++
8
star
14

camera1394stereo

ROS driver for Firewire stereo cameras
C++
6
star
15

multirobot_visual_graph_slam

2D Multi Robot Visual Graph SLAM. This approach is specially addressed to underwater or marine surface vehicles with cameras pointing downwards to the seabed. Althought not tested, It could be also applied to terrestrial vehicles with a camera facing the ground. Non suitable for vehicles moving with 6 DoF.
MATLAB
6
star
16

pg_spinnaker_camera

C++
5
star
17

pozyx_drivers

ROS driver to work with Pozyx
Python
4
star
18

NetHALOC_Keras_Python

NetHALOC: A Neural Network for Learned Global Image Descriptors based on HALOC (HAsh-based LOop Closure- github.com/srv/libhaloc)
Python
4
star
19

jf_object_detection

jellyfish object detection
Python
4
star
20

merbots_ibvs

SRV package for image-based visual servoing
C++
4
star
21

HALOC_Python

HALOC algorithm for image hashing and comparison. See https://github.com/srv/libhaloc for the original HALOC
Python
3
star
22

usbl_position

Python
3
star
23

ccny_vision

Fork of http://robotics.ccny.cuny.edu/git/ccny-ros-pkg/ccny_vision.git with some fixes
C
3
star
24

Underwater_Dataset

Dataset of Underwater images
3
star
25

arsea

Unity app to remotely view and control an ROV using ROS
C#
3
star
26

desktop_3d_scanner

Python
2
star
27

object_detection

C++
1
star
28

acoustic_link

C++
1
star
29

pcl_texture_mapping

C++
1
star
30

visual_altimeter

C++
1
star
31

survey_uwsim

Make a predefined survey in UWSim
C++
1
star
32

srv_ecto_vision

Computer Vision Algorithms packed into ecto cells & scripts
C++
1
star
33

merbots_tracking

SRV package for object tracking
C++
1
star
34

loop_closing_detector

C++
1
star
35

imagenex_echosounder

ROS driver for the Eco Sounder Imagenex model 852-000-140
C++
1
star
36

target_icp_registration

A ROS package to register an input pointcloud against a target or a model
C++
1
star
37

pose_twist_meskf_ros

C++
1
star