Calibrates cameras, arm and torso of Care-O-bot
described here
This tutorial guides you through the automatic calibration of the cameras and kinematic components of the Care-O-bot 3. The calibration procedure is divided into two automated steps:
-
Camera calibration: The stereo camera system of Care-O-bot is calibrated intrinsically.
-
Kinematic robot calibration: This step performs extrinsic camera calibration (hand-eye calibration of the stereo camera and kinect) and estimates various kinematic parameters of the robot (position and orientation of arm and torso on the base of Care-O-bot).
roscore
is running- Care-O-bot bringup software is running.
- Cameras, head-axis, arm and torso are initialized and working.
- Calibration pattern is attached to arm.
- You created a temporary overlay of "cob_calibration_data". The calibration results are stored in this unary stack. The overlay should be deleted again after the calibration process.
- Collect data
start the data collection by calling roslaunch cob_calibration_executive collect_robot_calibration_data.launch
.
This will start all needed nodes and services. The robot now moves to the sample positions calculated in step 6 of the configuration.
The progress can be seen by rostopic echo /calibration/data_collection/progress
.
Wait until capture is finished and stop it with CTRL-C. The bagfile with the measurement and the images for the camera calibration are stored in "/tmp/cal/".
- Calibrate cameras
Execute
roslaunch cob_camera_calibration calibrate_stereo.launch
to start the stereo camera calibration.
The results will be stored in the calibration file specified in the "camera.yaml" configuration file.
This step should take approximately 3 minutes.
For robots with only one calibrated camera this step is not required.
- Calibrate robot
To calibrate the robot run
roslaunch cob_robot_calibration run_robot_calibration.launch
.
The calculation takes about 5 to 10 minutes.
- Update urdf
roslaunch cob_robot_calibration update_calibration_urdf.launch
copies the result of the optimization to the robot urdf file
- Restart bringup
- Verify the calibration result with rviz by checking the kinect pointcloud while the arm with checkerboard is in front of the cameras. The point cloud should align with the simulated arm.
- Commit the new calibration to git (cob_calibration_data) and push it to github. Create a pull request for ipa320/cob_calibration_data and ask your robot administrator to pull the new calibration to the robot for everybody.
- Once the pull request has been accepted and the calibration has been updated on the robot, you can remove your local overlay of cob_calibration_data.
- Remove the checkerboard from the arm and reattach the hand. (activate the emergency stop before attaching the schunk hand).
-
create a new configuration folder in the package "cob_calibration_config" named after the robot.
-
create the file "user_defined/cameras.yaml" define how many cameras are involved for each camera define "topic";"frame_id"(from robot urdf), " property"( position in urdf) "file_prefix" (for camera calibration)
-
calibration_seed.yaml: teach in on hardware(or simulation)
-
calibration_pattern: in most cases copy the existing cb9x6 for robots at the ipa
-
generate template for optimization and autogenerated files bringup robot (in simulation or on real robot)
roslaunch cob_robot_calibration generate_config.launch
-
generate calibration positions with running ik services
roslaunch cob_calibration_executive
-
create free_0.yaml --> free_2.yaml for care-o-bot first step with free cb_arm transformation second step with cameras mount position added third step with all unknown transformations