Platform | CI Status |
---|---|
Ubuntu (Focal) | |
Lint (Clang-Format) | |
Lint (CMake-Format) |
A loosely connected bundle of tools for calibrating cameras to (industrial) robots and vice-versa with a focus on being easy to integrate into more complex applications.
This work is based on the work of Dr. Chris Lewis @drchrislewis (see industrial_calibration) and modifications made by Geoffrey Chiou in IC2.
The focus and philosophy of this library is provide to provide a suite of stand-alone "optimization functions" that take as input structure full of well-documented arguments and produce an answer that is your calibration. How you collect data and what you do with the answer is left to you.
This library is meant to be used within the ROS ecosystem, but the core optimizations depends on only Ceres-Solver and its dependencies. Follow the link for instructions to install Ceres. Afterwards, clone this package into your workspace and build with catkin.
Other support libraries use additional tools:
rct_image_tools
uses OpenCV.rct_ros_tools
uses TF and various image transport mechanisms.rct_optimizations
. See below for a discussion of supported problems.Problem
data structure and fill it out.rct_optimizations::optimize(Problem&)
and get a Result
back.mutable transform publisher
.rct_optimizations
: Contains core libraries for performing the "math" of optimizations, usually using Ceres. This is where you'll find your library calls.rct_image_tools
: Builds on OpenCV to provide tools for finding targets in images. This lets you extract "correspondences" easily for supported target types.rct_examples
: This package contains both simple examples and offline processing tools for a variety of common calibrations. Look here for experimental setups and examples.rct_ros_tools
: (Experimental) Provides some "helper tools" for data collection and loading of data through ROS parameters/YAML files.See the readme of rct_examples
for more information on the most popular and tested calibrations. There's even some nice pictures.
Currently supported calibrations:
Semi-Experimental (these have testing or robustness that needs to be improved):
The source code for these calibrations can be found in rct_optimizations
.
For example, see rct_example's camera-on-wrist calibration.