Description of the static calibration pattern

The static metric calibrate tools require a calibration pattern to get the parameters that relates camera pixels with metric units. Several considerations are required during the manufacturing and acquisition of the calibration pattern to get accurate results.

This calibration locates the coordinate system aligned with the laser plane, so, x-coordinates are always zero.

staticPattern.png

Static calibration pattern and its coordinate axis

Using the static calibration for linear scanning applications

In case of linear scanning applications, instead of using the linear calibration, also the static calibration can be use. Although in general, the linear calibration is preferred for linear scanning, in some applications the static calibration is recommended. For example, in case where vibrations or other mechanic problems do not guarantee a constant motion of the pattern.

In that case, the user should introduce the encoder step (metric distance between acquisitions), so then, it is possible to directly transform a RangeMap to COP.

Config sal3d::Metric::calibrate (const Profile &profile, const PatternSPPoints &points, float xStep)

Advantages of static calibration

limitations of static calibration

Description of the Calibration Points

Points corresponding to the vertexes of the calibration pattern are used to describe its shape and to identify points on the RangeMap with their corresponding 3D metric points on the real object. The 3D coordinates of these metric points can be set by the user. In addition to the calibration points shown in the following figure, the base area of the pattern (the calibration pattern's lower flat area) is also used during the calibration procedure. Hence, the base of the pattern should also be captured in the Profile.

pointsPatternSP.png

Description of the calibration points

The relation of the calibration points within range map to 3D pattern is not arbitrarily. The order depends on the laser stripe type and the camera orientation. The term laser stripe type refers to orientation of the laser stripe on the camera frame when this is projected over the calibration pattern. The camera orientation refers how the camera observes the pattern, in correct orientation or with the inverted orientation.

Relationship between laser profile and pattern calibration points.
Laser Stripe OrientationCamera Orientation3D points
Vertical Laser Stripe
horizontalPeakUp.png
staticPatternPoints1.png
Vertical Laser Stripe
horizontalPeakDown.png
staticPatternPoints2.png
Horizontal Laser Stripe
verticalPeakUp.png
staticPatternPoints1.png
Horizontal Laser Stripe
verticalPeakDown.png
staticPatternPoints2.png

Build Your own Calibration Pattern

In order to calibrate your acquisition system, you should use a calibration target according to your field-of-view requirements. However, you should follow the following advices:

The following figure presents an example of a good pattern acquisition. Analysing the acquired profile, user can observed that proportions between each segment are more or less one to one. Pattern is centered on the image and it covers all the profile. Acquisition noise is not important and occlusion area is not significant. When profile contains points not belonging to the calibration pattern, user can add a region of interest on the calibration to avoid any influence of that parts.

exampleGoodProfile.png

Pattern example: Profile of the calibration pattern

Following figures present some examples of bad designs. Left figure can produce inaccurate results, or in some case will not calibrate, due to acquisition noise, center figure has problems due to not enough points in the base plane. Right figure will not calibrate due to points not belonging to the calibration pattern are also acquired, in addition it is preferred that the pattern's profile covers all the image. This case can be solved by adding to the calibrate function the starting and ending pattern points:

Config sal3d::Metric::calibrate (const Profile &profile, const PatternSPPoints &points, int left, int right, float xStep=0)

examplesBadDesigns.png

Bad design examples: They can produce inaccurate results or return an error during the calibration.

Material Considerations

In addition to the dimensions, the material is also important for the calibration. As laser is projected over the pattern, specular surfaces are not recommended. In case of metal surfaces, a white anodized or sand blasting can be performed to minimize reflections.

Depending on the application, expansion must also be considered. In case of important temperatures variations, specially temperatures far from the standard (20ÂșC), low thermal expansion coefficient materials are preferred to decrease errors due to pattern expansion.