.. _vision-hand-eye-calibration-example: Hand-eye calibration ==================== Calibrate where a wrist camera sits on the arm (eye-in-hand) with the Tsai-Lenz method, using the ChArUco board on the office world's table. The example moves the wrist camera through 15 views of the board, varying its position and roll. Each image is paired with the arm pose at its timestamp. The solver returns the link-to-camera transform. Use a UR e-Series or Franka arm at the office's default spawn point. The result is printed, not persisted. Update the camera transform in your robot description to use it. The same solver handles a fixed camera watching a board on the arm (eye-to-hand), and :meth:`~olo.vision.Calibration.calibrate_intrinsics` accepts the same ChArUco frames when the camera itself needs calibrating. .. tab-set:: :sync-group: sdk-language .. tab-item:: Python :sync: python .. literalinclude:: scripts/vision-hand-eye-calibration.py :language: python .. tab-item:: TypeScript :sync: typescript .. literalinclude:: scripts/vision-hand-eye-calibration.ts :language: typescript