Hand-eye calibration is currently implemented in the [[https://git.cs.lth.se/robotlab/rvmi/vision_skills/-/blob/master/src/vision_skills/handeye_calibration/handeye_calibration.py|handeye_calibration_coordinator]] skill in the [[https://git.cs.lth.se/robotlab/rvmi/vision_skills|vision_skills]] repository.
Required world model elements:
* **Arm** - the arm to which the camera is attached.
* **Gripper** - the end-effector attached to the arm.
* **Camera** - the camera to calibrate.
* **CameraEstimate** - Estimate of camera position.
* **ViewFrame** - the camera's view TF frame.
* **Marker** - the AruCO marker.
* **MarkerEstimate** - Estimate of marker's position.
Required world model relations:
* **Arm** ''skiros:hasA'' **Gripper**
* **Gripper** ''skiros:contain'' **Camera**
* **Camera** ''skiros:spatiallyRelated'' **ViewFrame**
* **CameraEstimate** ''scalable:estimateOf'' **Camera**
* **MarkerEstimate** ''scalable:estimateOf'' **Marker**
The **Arm** needs the following properties set in the world model:
* ''skiros:LinkedToFrameId''
* ''skiros:MotionExe''
* ''skiros:MoveItGroup'' (when using MoveIt implementation)
* ''skiros:MoveItReferenceFrame'' (when using MoveIt implementation)
* ''skiros:MoveItTCPLink'' (when using MoveIt implementation)
The **Camera** needs the following properties set in the world model:
* ''skiros:DriverAddress''