Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robotic Tooling
  3. viso2

viso2

C++

A ROS wrapper for libviso2, enabling visual odometry for monocular and omnidirectional camera systems in robotics.

Visit WebsiteGitHubGitHub
252 stars180 forks0 contributors

What is viso2?

viso2 is a ROS wrapper for the libviso2 library, enabling visual odometry for robotic systems. It processes camera images to estimate a robot's motion and position without relying on wheel encoders or GPS, using either standard monocular or omnidirectional cameras. This is particularly useful in GPS-denied environments or for platforms where traditional odometry is unreliable.

Target Audience

Robotics researchers and engineers working on autonomous navigation, especially those using ROS and needing visual-based motion estimation for drones, ground robots, or other mobile platforms.

Value Proposition

It provides a ready-to-use ROS integration of a proven visual odometry library, with added support for omnidirectional cameras—offering flexibility and accuracy where standard perspective cameras fall short. The included benchmarking tools help validate performance against ground truth data.

Overview

A ROS wrapper for libviso2, a library for visual odometry

Use Cases

Best For

  • Adding visual odometry to ROS-based robotic systems
  • Autonomous navigation in GPS-denied environments
  • Benchmarking visual SLAM algorithms against other odometry methods
  • Robotics projects using fisheye or wide-angle cameras
  • Educational purposes in robotics and computer vision courses
  • Prototyping autonomous drones or ground vehicles

Not Ideal For

  • Projects not using the ROS middleware, as viso2 is tightly coupled with ROS nodes and topics.
  • Teams without access to MATLAB, since the omnidirectional calibration requires the proprietary Ocamcalib toolbox.
  • Applications needing full simultaneous localization and mapping (SLAM) with loop closure, as viso2 focuses primarily on visual odometry and may drift over time.
  • Environments with minimal visual texture or frequent lighting changes, where feature-based visual odometry like libviso2 can fail.

Pros & Cons

Pros

Seamless ROS Integration

Provides ready-to-use ROS nodes, topics, and launch files, making it easy to incorporate into existing robotic systems without extensive coding.

Omnidirectional Camera Support

Extends libviso2 to work with fisheye and wide-angle cameras using a unified camera model, offering flexibility in camera choice for various applications.

Comprehensive Benchmarking

Includes sample datasets and launch files for performance testing, allowing users to compare accuracy against methods like Hector SLAM and conventional odometry.

Based on Proven Library

Wraps libviso2, a well-established visual odometry library, ensuring reliable motion estimation algorithms.

Cons

MATLAB Dependency

Calibration for omnidirectional cameras requires the Ocamcalib toolbox for MATLAB, which is proprietary and adds an extra layer of setup complexity.

Mandatory Calibration Parameters

Camera height and pitch must be set manually for scaling, and incorrect calibration can lead to inaccurate odometry, as emphasized in the README.

Limited to Visual Odometry

Does not include loop closure or full SLAM capabilities, so it's prone to drift over long trajectories without external correction.

Sparse Documentation

The README is brief and focuses on basic execution, lacking detailed troubleshooting guides or advanced configuration examples.

Frequently Asked Questions

Quick Stats

Stars252
Forks180
Contributors0
Open Issues15
Last commit5 months ago
CreatedSince 2012

Tags

#monocular-vision#robotics#camera-calibration#autonomous-navigation#visual-odometry#ros#motion-estimation#slam

Built With

R
ROS
M
MATLAB
C
C++

Links & Resources

Website

Included in

Robotic Tooling3.8k
Auto-fetched 8 hours ago

Related Projects

ORB_SLAM3ORB_SLAM3

ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM

Stars8,871
Forks3,133
Last commit2 years ago
VINS-FusionVINS-Fusion

An optimization-based multi-sensor state estimator

Stars4,638
Forks1,613
Last commit2 years ago
hlochloc

Visual localization made easy with hloc

Stars4,157
Forks767
Last commit7 months ago
open_vinsopen_vins

An open source platform for visual-inertial navigation research.

Stars3,007
Forks891
Last commit7 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub