Skip to content

Stereo and image rectification and disparity processing with NVIDIA VisionWorks and fixstars libSGM

License

Notifications You must be signed in to change notification settings

apl-ocean-engineering/gpu_stereo_image_proc

 
 

Repository files navigation

gpu_stereo_image_proc

NOTE: This repo is focused on the Trisect underwater trifocal sensor. The primary branch is jetpack-4.5.1 to match the current distribution on the Xavier-NX-based Trisect. It's strongly tied to the Visionworks and VPI APIs installed by that version of Jetpack.

The jetpack-5.1.2 is our current "next development" branch for that version of Jetpack on the new Orin-NX-based development system.

Overview

This package provides the baseline stereo capabilities on our Trisect underwater trifocal sensor. Given that focus, our primary development environment is the Jetson NX running Jetpack 4.4.x. with assumes the Trisect's customized OpenCV and ROS1 builds.

It includes ROS nodelets for CUDA implementations of the following Semi-Global (Block) Matching (i.e. SGM or SGBM) algorithms:

With stubs for a pure-OpenCV version in progress. Each algorithm is in its own ROS package, compilation of individual packages can be disabled by adding them to the Catkin skiplist:

catkin config --skiplist gpu_stereo_image_proc_opencv

It also includes Fixstars libSGM, however this ROS package is disabled by default. It can be enabled by setting the CMake variable BUILD_GPU_STEREO_IMAGE_PROC_LIBSGM:

catkin config --cmake-args -DBUILD_GPU_STEREO_IMAGE_PROC_LIBSGM=True

In summary:

Package Current Status on Trisect
gpu_stereo_image_proc_visionworks Preferred version on Trisect. Expect to be phased out in later version of Jetpack
gpu_stereo_image_proc_vpi Almost complete on Trisect, with limited functionality due to early version of VPI. Expect this to be main focus of development going forward.
gpu_stereo_image_proc_opencv Not complete.
gpu_stereo_image_proc_libsgm Deprecated. Can be manually enabled.

Installation

Pull this repo into a catkin workspace and build

cd <path-to-your-catkin-workspace>/src
git clone https://github.com/apl-ocean-engineering/gpu_stereo_image_proc.git
cd ..
catkin build

Note that since we are tuning for our Jetson-based Trisect platform, it assumes you have a fairly current, CUDA-enabled OpenCV and NVidia's Visionworks and VPI libraries.

Licenses

This version is based on whill-lab's upstream package, but has diverged significantly in structure.

This software maintain's the upstream package's 3-Clause BSD License.

The underlying code of this package is forked from ros-perception/image_pipeline/stereo_image_proc which is distibuted under the 3-Clause BSD License.

This package includes libSGM which is distributed under the Apache License 2.0.

This package depends on VisionWorks which NVIDIA reserves all the copyrights of.

About

Stereo and image rectification and disparity processing with NVIDIA VisionWorks and fixstars libSGM

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 82.4%
  • Python 10.2%
  • CMake 6.0%
  • C 1.4%