[Documentation] [TitleIndex] [WordIndex



This package provides a tool to collect transformation data between the mild's laserscanner sensor and it's camera head. This data can then used calibrate the mild's kinematic chain using the asr_kinematic_chain_optimizer.



In order to calibrate the kinematic chain between the mild's camera and its laserscanner, information about their relative transformation towards each other has to be gathered.

Our basic approach will be to recognize an object of known proportions (a calibration object) with the laserscanner and the camera simultaneously and retrieve its pose relative to both sensors from the data.


Using these relative transformations, the transformation between camera and laserscanner can be calculated easily.


Since the kinematic chain between scanner and camera contains two rotational joints, resulting in two degrees of freedom, a set of various ptu angles has to be used to gather calibration data in order to be able to extract the transformations within the ptu unit as well.

Pose Extrapolation

Since extracting a 3D pose using only a 2D laserscanner is not trivial, a special calibration object has been conceived, that would allow reconstructing its pose in 3-dimentional space using only its intersection points with a 2D-plane.

The calibration object in the form of a mirrored sphenoidcould be recognized by a 2D laserscanner and, using its detected edges p1, p2 and p3 as well as the priorly known proportions, the pose of its top point T can be calculated.

From this, the pose of the calibration object relative to the laserscanner's sensor frame can be determined easily.

Unfortunately, the position of the top point can not always be determined unambiguously, but using a set of sanity checks and filters, implausible poses can often be discarded.

AR-Marker Recognition

Once a plausible pose for the calibration object relative to the robot's laserscanner has been found, the camera system can be used to recognize the two AR-markers attached to the calibration object.

During recognition, the PTU will be moved to several different joint configurations in order to gather the necessary variety in the calibration data that will later be needed to calculate the robot's kinematic chain out of it.

Each time a marker is detected, the relative pose between the marker and the camera is calculated, which can then be used to get the camera's pose relative to laserscanner's base frame.

This transformation, along with the PTU configuration with which the transformation has been recorded, can then finally be exported to a set of calibration data.


This package uses a calibration approach that has been specifically designed for the mild platform, so using a robot system that is somewhat comparable to this system is advisable.

Needed packages

Needed software

Needed hardware

Calibration object

A calibration object has been constructed, that can both be recognized by the laserscanner as well as the robot's 2D cameras.

All relevant specifications for the calibration object can be retrieved and even changed using the calibration_object_steep.yaml file.

The lower part consist of two identical wooden sides mounted on an aluminium frame. The longer side of each triangle measures 1.143 m with an angle of 26.6° on top. The diagonal of each side measures 1.28 m.

height="543",width="305" height="543",width="306"

The upper part consists of two AR-markers with an edge length of 8 cm, that have been mounted on the top of the frame in a right angle.

height="378",width="275" height="378",width="444"


Since the tool is designed to gather transformation data between a laserscanner sensor and a camera mounted on a ptu unit, all of those components are required for the tool work.

Two laserscanners have been integrated into the calibration software:

height="265",width="266" height="264",width="267"

Both the SICK PLS 101 (left), which is used in the mild platform, as well as the SICK LMS 400 (right), which has been used for evaluation of the calibration tool, have been integrated into the package and can be selected by changing a single parameter (laserscanner_type).

While the PLS 101 scanner operates on infrared light, the LMS 400 laserscanner uses visible light wave ranges, which makes evaluating the calibration data much easier.

The supported types of PTU units depend on the asr_flir_ptu_driver package and are described there.

All cameras supported by the asr_resources_for_vision package can be used for calibration.

Start system

To launch the calibration tool, use

roslaunch asr_mild_calibration_tool calibration_tool.launch

ROS Nodes

Subscribed Topics

Published Topics

Published Frames

During calibration, several frames containing frames used in the calibration process are being published:


Calibration tool settings

The general settings for the mild calibration tool are specified in the calibration_tool_settings.yaml file. The following parameters are available:

Needed Services


2024-07-13 12:37