Wiki

  Show EOL distros: 

vision_visp: visp | visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern.

vision_visp: visp | visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

vision_visp: visp_auto_tracker | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker

Package Summary

visp_camera_calibration allows easy calibration of cameras using a customizable pattern and ViSP library.

Overview

visp_camera_calibration is a ROS package that allows a highly customisable camera calibration using calibration tools from the ViSP library avalaible from https://visp.inria.fr. The image feed used for calibration is a set of clearly distinguishible points. The planar disposition of the points is of no importance.

This package uses ViSP's camera model described in ViSP geometric transformation and objetcs manual and camera calibration capabilities described in ViSP computer vision algorithms manual. The output camera parameters are given in the sensor_msgs/CameraInfo format.

Supported hardware

visp_camera_calibration will work with any camera driver node satisfying the standard ROS camera interface. See the image_pipeline hardware requirements.

Installation

visp_camera_calibration is part of vision_visp stack.

Tutorials

There are two tutorials:

Usage

Since the module is highly customisable, the paramaters are complex. A roslauch xml file is advisable.

Image processing and user interaction

The user has to select seed points to start calibration from. This requires an image processing initialisation interface module. This module needs to load several parameters:

Toggle line numbers
   1 <node pkg="visp_camera_calibration" name="visp_camera_calibration_image_processing" type="visp_camera_calibration_image_processing">
   2       <!-- 3D coordinates of 4 points the user has to select to initialise the calibration process -->
   3       <rosparam param="selected_points_x">[0.03, 0.03, 0.09, 0.12]</rosparam>
   4       <rosparam param="selected_points_y">[0.03, 0.12, 0.12, 0.03]</rosparam>
   5       <rosparam param="selected_points_z">[0.00, 0.00, 0.00, 0.00]</rosparam>
   6 
   7       <!-- 3D coordinates of all points on the calibration pattern. In this example, points are planar -->
   8       <rosparam param="model_points_x">[0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.0, 0.03, 0.06, 0.09, 0.12, 0.15]</rosparam>
   9       <rosparam param="model_points_y">[0.0, 0.00, 0.00, 0.00, 0.00, 0.00, .03, 0.03, 0.03, 0.03, 0.03, 0.03, .06, 0.06, 0.06, 0.06, 0.06, 0.06, .09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.12,0.12, 0.12, 0.12, 0.12, 0.12, 0.15,0.15, 0.15, 0.15, 0.15, 0.15]</rosparam>
  10       <rosparam param="model_points_z">[0.0, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0, 0.00, 0.00, 0.00, 0.00,0.00]</rosparam>
  11 
  12       <!-- Tracking parameters used in image processing -->
  13       <param name="gray_level_precision" value="0.7" />
  14       <param name="size_precision" value="0.5" />
  15 
  16       <!-- Behaviour of the interface -->
  17       <param name="pause_at_each_frame" value="False" />
  18 </node>

Camera calibrator

You can run the calibrator without any parameters.

Toggle line numbers
   1 <node pkg="visp_camera_calibration" name="visp_camera_calibration_calibrator" type="visp_camera_calibration_calibrator"/>

Experimental camera

For testing purposes, the package contains a camera satisfying the standard ROS camera interface. The camera reads a video or a sequence of images and is configured as follows:

Toggle line numbers
   1 <node pkg="visp_camera_calibration" name="visp_camera_calibration_camera" type="visp_camera_calibration_camera">
   2         <param name="images_path" value="images/grid36-0%d.pgm" />

ROS API

visp_camera_calibration_image_processing

The image processing module subscribes to the image feed from a camera, displays it to the user in order to select the (four) points used to initialise the image processing. Then, it processes the images to extract every possible keypoint. Finally it publishes the processed data to a calibrator topic.

Subscribed Topics

image (sensor_msgs/Image)

Published Topics

point_correspondence (visp_camera_calibration/CalibPointArray)

Parameters

gray_level_precision (double, default: 0.7) size_precision (double, default: 0.5) pause_at_each_frame (bool, default: False) model_points_x (array) model_points_y (array) model_points_z (array) selected_points_x (array) selected_points_y (array) selected_points_z (array) calibration_path (string)

visp_camera_calibration_calibrator

This node computes the camera calibration parameters and calls the sensor_msgs/SetCameraInfo service on the current camera. It produces a calibration.ini file that will be in your $HOME/.ros directory.

Subscribed Topics

point_correspondence (visp_camera_calibration/CalibPointArray)

Published Topics

point_correspondence (visp_camera_calibration/CalibPointArray)

Services Called

set_camera_info (sensor_msgs/SetCameraInfo)

visp_camera_calibration_camera

This is an experimental camera node used for test purposes.

Published Topics

image (sensor_msgs/Image)

Services Called

calibrate (visp_camera_calibration/calibrate)

Wiki: visp_camera_calibration (last edited 2016-06-20 13:15:38 by FabienSpindler)