| name | robot-calibration |
| description | Robot calibration — kinematic calibration (DH parameter identification, joint offset, link length, twist angle), pose measurement (laser tracker, CMM, photogrammetry, API T3), error model (differential kinematics, Jacobian), identification algorithm (least-squares, BURG algorithm), geometric vs. non-geometric errors (compliance, thermal drift), accuracy vs. repeatability, workspace calibration, ISO 9283 performance testing, and industrial robot accuracy improvement (0.1–0.5 mm uncalibrated → 0.02–0.05 mm calibrated). |
| metadata | {"priority":7,"promptSignals":{"phrases":["robot calibration","kinematic calibration","DH parameter","robot accuracy","robot pose error","ISO 9283"],"minScore":3}} |
Robot Calibration — Complete Skill
Accuracy vs. Repeatability
Definitions
Repeatability: ability to return to same position from same direction; typical: ±0.01–0.05 mm for industrial robots
Accuracy: absolute positioning accuracy to programmed coordinates; typical uncalibrated: 0.5–2.0 mm; after calibration: 0.05–0.2 mm
ISO 9283: standard for measuring and declaring robot performance
Repeatability test (ISO 9283 Section 8.1):
Program 30 poses at 5 positions; measure using external sensor; compute: RP = mean_distance + 3σ
Industrial 6-DOF robot: RP = 0.02–0.08 mm typical
Accuracy test (ISO 9283 Section 8.2):
AP = mean(|P_commanded - P_measured|) across N poses
Without calibration: AP = 0.3–2.0 mm; after kinematic calibration: AP = 0.05–0.2 mm
Kinematic Model and DH Parameters
Modified Denavit-Hartenberg Convention
Four DH parameters per joint:
a_i: link length (distance along x_{i-1})
α_i: link twist (angle about x_{i-1})
d_i: link offset (distance along z_i)
θ_i: joint angle (rotation about z_i; variable for revolute; d_i variable for prismatic)
Homogeneous transformation matrix (MDH):
T_{i-1}^{i} = Rot_x(α_{i-1}) × Trans_x(a_{i-1}) × Rot_z(θ_i) × Trans_z(d_i)
Nominal model: manufacturer's geometric parameters; approximation of actual robot
Actual parameters: differ from nominal due to:
Manufacturing tolerances: ±0.1–0.5 mm on link lengths; ±0.05–0.5° on twist angles
Assembly errors: joint offset errors; bearing preload effects
Wear and deformation: long-term use; temperature effects
Error Model (Differential Kinematics)
Pose error from parameter errors:
δP = J_cal × δq_cal [Jacobian of pose w.r.t. DH parameters; δq_cal = vector of parameter errors]
J_cal = ∂T_n / ∂q_cal [6×(4n) matrix for n joints; rows = position and orientation error; columns = parameter variations]
Calibration equation:
δP_measured = J_cal × δq_cal + ε [ε = measurement noise; solve for δq_cal using least squares]
δq_cal = (J_cal^T × J_cal)^{-1} × J_cal^T × δP_measured [pseudo-inverse least squares; minimum-norm solution]
Identifiability:
Not all 4n DH parameters are independently identifiable; redundant parameters exist
Typically: 4n - 6 parameters identifiable (minus 6 for world frame definition)
For 6-DOF robot: 24 - 6 = 18 identifiable kinematic parameters typically
Differential Kinematics Jacobian
Tool pose Jacobian:
J_k = [J_p; J_o] [6×n; J_p = position Jacobian 3×n; J_o = orientation Jacobian 3×n]
J_p_i = z_{i-1} × (r_n - r_{i-1}) [for revolute joint; z_{i-1} = z-axis of frame i-1; r = position vector]
J_o_i = z_{i-1} [for revolute joint; angular velocity contribution]
Calibration Jacobian (parameter Jacobian):
∂T/∂a_i, ∂T/∂α_i, ∂T/∂d_i, ∂T/∂θ_i computed analytically from MDH formulation
Software: Matlab Robotics Toolbox, ROS (urdf_calibration package)
Measurement Methods
Laser Tracker (Preferred)
API T3/Faro Xi/Leica AT960:
Accuracy: ±5–15 μm + 0.6 μm/m (2σ); range: 0.5–50 m
Measures: 3D position of retroreflective target (SMR) on robot tool
Calibration procedure:
- Mount SMR on robot flange; program N robot poses (N ≥ 30; distributed over workspace)
- At each pose, laser tracker measures actual tool position P_measured_i
- Robot controller provides commanded pose P_commanded_i
- Error vector: δP_i = P_measured_i - P_commanded_i
- Assemble system: δP = J_cal × δq_cal (least squares solve)
- Update DH parameters: q_cal_new = q_cal_nominal + δq_cal
- Verify accuracy improvement with independent test poses
Photogrammetry
Close-range photogrammetry (AICON 3D Systems, Geodetic VStars):
Multiple cameras image coded targets on robot; compute 3D from triangulation
Accuracy: ±0.02–0.1 mm; good for full-volume workspace coverage
Less accurate than laser tracker but captures more points simultaneously
CMM (Coordinate Measuring Machine)
Robot carries probe to known CMM artifact:
Ball bar, gauge block, precision sphere
Very accurate point measurement; time-consuming; limited to robot near CMM
Portable CMM (Arm)
FARO Arm, Romer SI:
7-DOF articulated arm; accuracy ±0.025–0.1 mm; manual measurement
Suitable for close-range calibration of small robots
Identification Algorithm
Least-Squares (Linear Calibration)
Linear form: δP = J_cal × δq; solve:
Normal equation: δq_hat = (J^T J)^{-1} J^T × δP [assumes Gaussian noise; minimum residual ||J δq - δP||²]
Condition number of J^T J:
Condition number κ(J^T J) should be < 10⁶ for stable solution
Poor configuration: all poses in small area → rank deficiency → ill-conditioned system
Solution: distribute poses uniformly in workspace; different joint configurations
Iterative refinement:
Update δq_cal; recompute J at updated parameters; iterate until convergence
3–5 iterations usually sufficient for sub-mm accuracy improvement
BURG Algorithm (Nonlinear)
For large parameter errors (> 1°, > 1 mm): nonlinear optimization needed:
BURG (Bieman-Unbehauen-Roth-Geisselmeier): nonlinear least squares minimization
Levenberg-Marquardt: robust nonlinear optimizer; better than linear for large errors
Minimize: ||P_measured - F_kinematics(q_cal)||² [F = forward kinematics; minimize over q_cal]
Non-Geometric Errors
Compliance (Elastic Deformation)
Robot links deflect under load:
δP_compliance = C_joint × F_load [C_joint = compliance matrix; F_load = wrench at tool]
Joint compliance: δθ_i = τ_i / k_joint_i [τ = joint torque; k = torsional stiffness of motor-gearbox]
Typical: k_joint = 10,000–100,000 Nm/rad for industrial robots; δθ_i = 0.01–0.1° at rated load
Compliance calibration:
Apply known external forces → measure deflections → identify C matrix
Correction: subtract compliance-induced position error from commanded pose
Thermal Drift
Robot temperature rise during warm-up:
Link and gearbox thermal expansion → pose drift; can be 0.2–1.0 mm between cold and warm
Mitigation: warm-up routine (30–60 min continuous motion before calibration or production)
Active thermal compensation: monitor temperature → apply parametric correction model
ISO 9283 Performance Tests
Key tests:
AP (accuracy of pose): target 30 poses; 0.05–0.5 mm typical
RP (repeatability): 0.01–0.05 mm typical
ATI (accuracy of trajectory): 0.1–1.0 mm
MSD (minimum step distance): smallest positioning step; typically 0.01 mm
AT (accuracy of turning): angular accuracy
Test positions: 5 positions forming diagonals of working volume; 30 repetitions at 100%, 75%, and 50% load
Standards and References
| Standard | Scope |
|---|
| ISO 9283:1998 | Manipulating industrial robots — performance criteria and related test methods |
| ISO/TS 15066 | Collaborative robots — safety |
| ASME B5.54 | Methods for performance evaluation of CNC machining centers (extended to robots) |
| API T3/Faro Xi laser tracker manuals | Measurement system specs and procedures |
| Craig "Introduction to Robotics" | Denavit-Hartenberg kinematics reference |
| Hayati & Mirmirani (1985) | Original paper on robot kinematic calibration |
Output
Provide: robot model (6-DOF articulated; make/model; nominal DH parameters from manufacturer), calibration objective (target accuracy AP_target [mm]; current AP_initial [mm]), measurement system (laser tracker/photogrammetry/CMM; accuracy [μm]; number of poses N ≥ 30), DH parameter error model (4n unknowns; identifiable parameters = 4n-6; condition number of J_cal^T J_cal), least-squares solution (δq_cal vector; RMS residual before/after calibration [mm]), identified DH parameter corrections (δa_i [mm]; δα_i [°]; δd_i [mm]; δθ_i [°] for each joint), accuracy after calibration AP_final [mm] (independent verification poses), repeatability RP [mm] (unchanged by calibration; confirm), compliance assessment (estimated δP_compliance [mm] at rated load; correction implemented?), thermal drift (warm-up time [min]; drift magnitude [mm]; mitigation), and applicable standard (ISO 9283, Hayati-Mirmirani calibration method).