|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.|
Configure the cob_calibration stack for a new Care-O-botDescription: This tutorial explains how to configure the cob_calibration stack for a new Care-O-bot.
Tutorial Level: ADVANCED
The cob_calibration stack can be configured for a new Care-O-bot by adjusting parameter files.
All parameters needed for the capture process are defined in the cob_calibration_executive packages config folder.
The robot calibration step is configured in the cob_robot_calibration packages config folder.
- The camera calibration step requires no special configuration.
Just create a folder in these config directories with the name of your robot (e.g. cob3-4). The current config is automatically selected using the $ROBOT environment variable.
Adjust positions of arm and torso for capture
The arm and torso positions where images of the checkerboard are captured are defined in the cob_calibration_executive package:
config/$ROBOT/torso_joint_configurations.yaml: defines joint angles for torso.
config/$ROBOT/arm_joint_configurations.yaml: defines joint angles for arm.
Adjust these positions if you use a different arm/torso or if the checkerboard is not visible in all captured images.
Note: When capturing images for camera calibration, all arm positions defined in the all_intrinsic list are used while the torso is in the home position. During data collection for the robot calibration step, torso and arm are moved together: all arm positions in the list ll_robot_back are used while the torso is in the back position, similar lists exist for the front, left and right torso position.
Adjust parameters for optimization
The robot calibration process relies on a set of configuration files which define the a kinematic model of the robot and specify which kinematic parameters are optimized and estimated. These configuration files are located in the config/$ROBOT/ folder in the cob_robot_calibration package. (The configuration files used for Care-O-bot have the same syntax as the configuration files for the pr2 robot: see pr2_calibration_estimation package.)
config/$ROBOT/system.yaml: The config/cob3-3/system.yaml file defines DH-Parameters for the kinematic chains torso and arm of the robot and a set transforms for cob3-3. Adjust these parameters if the kinematic structure of your Care-O-bot is different from cob3-3.
config/$ROBOT/sensors.yaml: Defines how the kinematic chains and transformations are chained together to model the robot.
config/$ROBOT/free_0.yaml: Defines which parameters are estimated in the first optimization step. A 1 allows optimization of this parameter, a 0 fixes this parameter to the value calculated in the previous step or the default value specified in the system.yaml file.
config/$ROBOT/free_1.yaml: Defines which parameters are estimated in the second optimization step.
config/$ROBOT/free_2.yaml: Defines which parameters are estimated in the third optimization step.