Show EOL distros:
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Author: James Bowman
- License: BSD
- Repository: ros-pkg
- Source: svn https://code.ros.org/svn/ros-pkg/stacks/image_pipeline/tags/image_pipeline-1.4.2
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Author: James Bowman
- License: BSD
- Repository: ros-pkg
- Source: svn https://code.ros.org/svn/ros-pkg/stacks/image_pipeline/tags/image_pipeline-1.6.4
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: fuerte-devel)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: groovy-devel)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: hydro-devel)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: indigo)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: indigo)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: indigo)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: indigo)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: developed
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>, Steven Macenski <stevenmacenski AT gmail DOT com>, Autonomoustuff team <software AT autonomoustuff DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: melodic)
Package Summary
camera_calibration allows easy calibration of monocular or stereo cameras using a checkerboard calibration target.
- Maintainer status: maintained
- Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com>, Autonomoustuff team <software AT autonomoustuff DOT com>
- Author: James Bowman, Patrick Mihelich
- License: BSD
- Source: git https://github.com/ros-perception/image_pipeline.git (branch: noetic)
Contents
This package uses OpenCV camera calibration, described here. For detailed information on the parameters produced by the calibration, see this description.
The code API listed for this package is for convenience only. This package has no supported code API.
For pinhole type cameras this package names the distortion model as plumb_bob or rational_polynomial, depending on number of parameters used. See documentation
New in melodic
Support for fisheye type of camera introduced in melodic.
For fisheye type cameras this package uses equidistant distortion model but names it as fisheye.
New in noetic
For fisheye type cameras this package uses equidistant distortion model with the name equidistant, according to documentation.
Supported hardware
camera_calibration will work with any camera driver node satisfying the standard ROS camera interface. See the image_pipeline hardware requirements.
Tutorials
There are tutorials on how to run the calibration tool for monocular and stereo cameras.
Usage
Camera Calibrator
To run the cameracalibrator.py node for a monocular camera using an 8x6 chessboard with 108mm squares:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/my_camera/image camera:=/my_camera
When you click on the "Save" button after a succesfull calibration, the data (calibration data and images used for calibration) will be written to /tmp/calibrationdata.tar.gz.
To run the cameracalibrator.py node for a stereo camera:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 right:=/my_stereo/right/image_raw left:=/my_stereo/left/image_raw left_camera:=/my_stereo/left right_camera:=/my_stereo/right
cameracalibrator.py supports the following options:
Chessboard Options:
You must specify one or more chessboards as pairs of --size and
--square options.
-p PATTERN, --pattern=PATTERN
calibration pattern to detect - 'chessboard',
'circles', 'acircles'
-s SIZE, --size=SIZE
chessboard size as NxM, counting interior corners
(e.g. a standard chessboard is 7x7)
-q SQUARE, --square=SQUARE
chessboard square size in meters
ROS Communication Options:
--approximate=APPROXIMATE
allow specified slop (in seconds) when pairing images
from unsynchronized stereo cameras
--no-service-check disable check for set_camera_info services at startup
Calibration Optimizer Options:
--fix-principal-point
fix the principal point at the image center
--fix-aspect-ratio enforce focal lengths (fx, fy) are equal
--zero-tangent-dist
set tangential distortion coefficients (p1, p2) to
zero
-k NUM_COEFFS, --k-coefficients=NUM_COEFFS
number of radial distortion coefficients to use (up to
6, default 2)New in melodic
cameracalibrator.py supports the following options:
Chessboard Options:
You must specify one or more chessboards as pairs of --size and
--square options.
-p PATTERN, --pattern=PATTERN
calibration pattern to detect - 'chessboard',
'circles', 'acircles'
-s SIZE, --size=SIZE
chessboard size as NxM, counting interior corners
(e.g. a standard chessboard is 7x7)
-q SQUARE, --square=SQUARE
chessboard square size in meters
ROS Communication Options:
--approximate=APPROXIMATE
allow specified slop (in seconds) when pairing images
from unsynchronized stereo cameras
--no-service-check disable check for set_camera_info services at startup
--queue-size=QUEUE_SIZE
image queue size (default 1, set to 0 for unlimited)
Calibration Optimizer Options:
--fix-principal-point
for pinhole, fix the principal point at the image
center
--fix-aspect-ratio for pinhole, enforce focal lengths (fx, fy) are equal
--zero-tangent-dist
for pinhole, set tangential distortion coefficients
(p1, p2) to zero
-k NUM_COEFFS, --k-coefficients=NUM_COEFFS
for pinhole, number of radial distortion coefficients
to use (up to 6, default 2)
--fisheye-recompute-extrinsicsts
for fisheye, extrinsic will be recomputed after each
iteration of intrinsic optimization
--fisheye-fix-skew for fisheye, skew coefficient (alpha) is set to zero
and stay zero
--fisheye-fix-principal-point
for fisheye,fix the principal point at the image
center
--fisheye-k-coefficients=NUM_COEFFS
for fisheye, number of radial distortion coefficients
to use fixing to zero the rest (up to 4, default 4)
--fisheye-check-conditions
for fisheye, the functions will check validity of
condition number
--disable_calib_cb_fast_check
uses the CALIB_CB_FAST_CHECK flag for
findChessboardCorners
--max-chessboard-speed=MAX_CHESSBOARD_SPEED
Do not use samples where the calibration pattern is
moving faster than this speed in
px/frame. Set to eg. 0.5 for rolling shutter cameras.
Unsynchronized Stereo
New in D
By default, the image_pipeline assumes that stereo cameras are triggered to capture images simultaneously, and that matching image pairs have identical timestamps. This is the ideal situation, but requires hardware support.
Starting in Diamondback, you will be able to calibrate stereo pairs that are not (or inexactly) synchronized.
To enable approximate timestamp matching, give the --approximate=0.01 option. This permits a "slop" of 0.01s between image pairs. If you still don't see a display window, or it is sporadically updated, try increasing the slop.
Dual Checkerboards
New in D
Starting in Diamondback, you will be able to use multiple size checkerboards to calibrate a camera.
To use multiple checkerboards, give multiple --size and --square options for additional boards. Make sure the boards have different dimensions, so the calibration system can tell them apart.
Camera Check
To run the command-line utility to check the calibration of a monocular camera:
rosrun camera_calibration cameracheck.py --size 8x6 monocular:=/forearm image:=image_rect
To run the command-line utility to check the calibration of a stereo camera:
rosrun camera_calibration cameracheck.py --size 8x6 stereo:=/wide_stereo image:=image_rect
Nodes
cameracalibrator.py
cameracalibrator.py subscribes to ROS raw image topics, and presents a calibration window. It can run in both monocular and stereo modes. The calibration window shows the current images from the cameras, highlighting the checkerboard. When the user presses the CALIBRATE button, the node computes the camera calibration parameters. When the user clicks COMMIT, the node uploads these new calibration parameters to the camera driver using a service call.Subscribed Topics
image (sensor_msgs/Image)- raw image topic, for monocular cameras
- raw left image topic, for stereo cameras
- raw right image topic, for stereo cameras
Services Called
camera/set_camera_info (sensor_msgs/SetCameraInfo)- Sets the camera info for a monocular camera
- Sets the camera info for the left camera of a stereo pair
- Sets the camera info for the right camera of a stereo pair
cameracheck.py
cameracheck.py subscribes to ROS rectified image topics and their associated camera_info, and prints out an error estimate. It can run in both monocular and stereo modes. The program expects to see a standard checkerboard target.Subscribed Topics
monocular/image (sensor_msgs/Image)- rectified image topic, for monocular cameras
- camera info for the monocular camera
- rectified left image topic, for stereo cameras
- rectified right image topic, for stereo cameras
- camera info for the stereo pair







