!

Note: This tutorial assumes that you have completed installation of naoqi_driver or pepper_bringup, and you know how to run it with Pepper robot..
(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Calibration of Pepper cameras

Description: Calibration of color and depth/IR cameras of Pepper robot

Keywords: calibration, distortion, color and depth alignement

Tutorial Level: BEGINNER

Intrinsic calibration

This tutorial explains how to calibrate cameras of Pepper robot using camera_calibration.

Pre-requirements

First of all, you will need to install camera_calibration on a PC, for example

apt-get install ros-indigo-camera-calibration

Front camera calibration

1. Start Naoqi Driver or Pepper Bringup providing the IP of your robot, for example:

roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ROBOT_IP>

2. Launch cameracalibrator.py proving the characteristics of your calibration pattern (number of rows-1 and columns-1 and the size of one square) and the topic with images from the IR camera of Pepper, for example:

rosrun camera_calibration cameracalibrator.py --size 9x6 --square 0.035 image:=/naoqi_driver_node/camera/front/image_raw

3. Then, turn the calibration pattern in different angles, directions, scales, up to the moment when the "Calibrate" button becomes accessible. Press the "Calibrate" button and wait for results.

4. Update the camera parameters in Naoqi Driver code (for the corresponding camera and resolution): https://github.com/ros-naoqi/naoqi_driver/blob/master/src/converters/camera_info_definitions.hpp. Then, compile it.

Depth camera calibration

First of all, prepare your robot by covering the right eye of your Pepper with two post-it (to make it thicker).

1. Start Naoqi Driver or Pepper Bringup providing the IP of your robot, for example:

roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ROBOT_IP>

2. Launch cameracalibrator.py proving the characteristics of your calibration pattern (number of rows-1 and columns-1 and the size of one square) and the topic with images from the IR camera of Pepper, for example:

rosrun camera_calibration cameracalibrator.py --size 9x6 --square 0.035 image:=/naoqi_driver_node/camera/ir/image_raw

3. Then, turn the calibration pattern in different angles, directions, scales, up to the moment when the "Calibrate" button becomes accessible. Press the "Calibrate" button and wait for results.

4. Update the camera parameters in Naoqi Driver code (for the corresponding camera and resolution): https://github.com/ros-naoqi/naoqi_driver/blob/master/src/converters/camera_info_definitions.hpp. Then, compile it.

Extrinsic calibration

In order to perform an extrinsic calibration of RGB and Depth cameras of Pepper robot, you can use either our https://github.com/ros-naoqi/extrinsic_calibration package or follow the ROS tutorial (http://wiki.ros.org/openni_launch/Tutorials/ExtrinsicCalibration).

Once the calibration parameters are found, you can apply them using ROS static_transform_publisher. Check an example in register_depth.launch, update the values and launch it after naoqi_driver.

roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<ROBOT_IP>
roslaunch extrinsic_calibration register_depth.launch

Wiki: pepper/Tutorials/Calibration (last edited 2017-11-15 12:15:40 by NataliaLyubova)