New Intrinsic Calibration Procedure
/According to a ROS users survey that was conducted
in 2014, the most popular hardware to integrate with
ROS is a camera. Cameras are often used to perceive
the environment or to localize robots and are a critical
component of the sense-plan-act capability that ROS enables.
Over the past two years, the ROS-I team has been working
to create an industrial calibration library that supports both
intrinsic and extrinsic calibration of vision sensors. What
is novel about the library is that is can handle groups of
heterogeneous sensors that may be static, or mounted to a
robot, or some combination thereof. And it coordinates with
MoveIt! to automate calibration procedures in which robot
motion is required during calibration. While the extrinsic
calibration routines are well in hand, the intrinsic calibration
algorithm, which is based on a popular lens distortion model,
resulted in higher parameter variance than was expected
based on residual errors. This is particularly true for the focal
length parameter, which is essential for correctly interpreting
the size of objects in the scene. The ROS-I team has
developed a novel camera intrinsic calibration technique that
is both computationally faster and provides superior results
to the methods commonly employed in machine vision.
The optimization procedure outlined by Zhang and automated
by both OpenCV/ROS, and Matlab orchestrate the collection
of a set of images of a calibration target. Both the extrinsic
pose of the camera and the intrinsic parameters themselves
are determined by minimizing the re-projection error. Using
these methods, the residual re-projection error is on the
order of ¼ pixel/observation or less. However, the variances
of focal length and optical center are much higher, typically
being 20 pixels and 5 pixels respectively. This is due to
correlation between parameters of the distortion model with
the focal length parameter.
The new procedure developed by the ROS-I team reduces parameter variance to be on par with the residual error. It requires only 10 to 20 images, but each is taken a known distance apart with little or no skew (refer to images). The new procedure estimates the extrinsic pose for the first
image, and constrains the optimization to use the known pose relationship for subsequent images. The focal length and optical center are significantly better constrained. Using the resulting intrinsic calibration parameters for a given camera yields significantly better extrinsic calibration or pose estimation accuracy. Try out the Intrinsic Camera
Calibration (ICC) tutorial that is posted on the ROS-I wiki.