captain-yoshi / tool_point_calibration

Package for doing robot tool point calibrations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tool Point Calibration

Provides a library and simple command line utility for doing 3 DOF (X, Y, Z) calibration of a robot's tool through the "touch point" method wherein the user jogs the robot to several poses where the tool to be calibrated touches the same point from different orientations.

Installation

The core tcp calibration library only requires the non-linear optimization solver Ceres to build. See this link for details on installation.

The console calibration utility uses ROS' TF libraries.

Use

tool_point_calibration:

  1. Start up your robots driver as normal. A node like robot_state_publisher should be publishing TF frames of your robot.

  2. Identify a base frame, either the base frame of the robot or the origin of the scene. This will be used for TF lookups, and the touch point will be reported in this frame.

  3. Identify a tool0 frame. This is the frame from which you wish to calibrate a TCP. This will typically be the flange of the robot tool0.

  4. Run the calibration node:

roslaunch tool_point_calibration console_calibration.launch base_frame:=YOUR_BASE_FRAME tool0_frame:=YOUR_TOOL0_FRAME num_samples:=NUMBER_OF_TOUCH_POINTS

By default base frame is base_frame, tool0_frame is tool0, and num_samples is 4. I recommend you use at least 4 samples.

  1. Jog the robot so that the tool you wish to calibrate is touching a known point in the world, such as the tip of a nail or the corner of a work-piece. When your're happy, press enter in the console window from which you ran the tcp calibration routine. You should see a 4x4 matrix print out.

  2. Repeat step 5 at least three more times. Each time approach the fixed point in the world from a different orientation. If you wish to abort early, control-C the node.

  3. When you've captured all of the required points, the calibration will be automatically run and the output displayed to the screen.

tool_orientation_calibration:

  1. repeat the first three steps in the case of tool_point_calibration.

  2. Run the orientation node:

roslaunch tool_point_calibration orientation_calibration.launch base_frame:=YOUR_BASE_FRAME tool0_frame:=YOUR_TOOL0_FRAME num_samples:=NUMBER_OF_TOUCH_POINTS

By default base frame is base_frame, tool0_frame is tool0, and num_samples is 4. I recommend you use at least 4 samples.

  1. Repeat steps 5,6,7 of the tool_point_calibration case.

  2. The last pose that has been used for translational calibration will be automatically saved as the first poin for the orientation calibration, two more points are requied.

  3. Jog the robot in such away that the TCP moves to any location along the X axis of the tool and press enter.

  4. Jog the robot in such away that the TCP moves to any location along the Y axis of the tool and press enter.

  5. When you've captured all of the required points, the orientation calibration will be automatically run and the output displayed to the screen.

About

Package for doing robot tool point calibrations

License:Apache License 2.0


Languages

Language:C++ 86.8%Language:CMake 13.2%