Skip to content

Compute Target Poses

SUMMARY

compute_camera_T_target_list() runs ChArUco detection plus solvePnP per frame with a fixed K, d, producing the camera_T_target_list you can feed into EyeInHandCalibrator.calibrate()'s strict pass-through mode. ChArUco targets only.

SUPPORTED TARGETS

Available only on CharucoTarget. Per-corner ArUco ids are required to solve a per-frame target pose.

UNITS

Input images are BGR ndarrays and intrinsic_matrix is a (3, 3) matrix in pixels. Returned camera_T_target_list holds (4, 4) SE(3) matrices with translation in meters.

The Skill

python
poses = calibrator.compute_camera_T_target_list(
    image_list, robot_T_tcp_list, intrinsic_matrix, distortion_coefficients,
)

The Code

python
from telekinesis.axon import EyeInHandCalibrator
from telekinesis.axon.targets import CharucoTarget

target = CharucoTarget(squares_x=6, squares_y=9, square_length=0.012, marker_length=0.009)

calibrator = EyeInHandCalibrator(target)
poses = calibrator.compute_camera_T_target_list(
    image_list, robot_T_tcp_list, intrinsic_matrix, distortion_coefficients,
)

poses.camera_T_target_list
poses.valid_image_list
poses.valid_robot_T_tcp_list