I am trying to do hand eye calibration between the robotic arm end effector and Kinect V1. I am using handeye_calib_camodocal repository for calibration and trying to find $X$ by solving the equation: $$AX=XB$$
I have following 82 transform pairs:
I have following support/holder between Kinect and Robotic arm :
But i am getting the following translation in meters which is wrong because camera can not be in such a distance from end effector:
Translation: 0.690257 0.102063 0.459878
I have following launch file:
<launch>
<!-- TF names-->
<arg name="EETF" default="/tool0_controller" />
<arg name="baseTF" default="/base_link" />
<arg name="ARTagTF" default="/chess" />
<arg name="cameraTF" default="/camera_rgb_frame" />
<!--<arg name="data_folder" default="$(find hand_eye_calib)/launch" />-->
<arg name="data_folder" default="$(find hand_eye_calib)" />
<arg name="filename" default="TransformPairs_HEcalibInput.yml" />
<arg name="calibrated_filename" default="CalibratedTransform_HEcalibOutput.yml" />
<!-- running handeeye_calib_camodocal node-->
<node pkg="hand_eye_calib" type="hand_eye_calib" name="hand_eye_calib" output="screen">
<!-- hand_eye_calib arg pass -->
<param name="ARTagTF" type="str" value="$(arg ARTagTF)" />
<param name="cameraTF" type="str" value="$(arg cameraTF)" />
<param name="EETF" type="str" value="$(arg EETF)" />
<param name="baseTF" type="str" value="$(arg baseTF)" />
<param name="load_transforms_from_file" type="bool" value="false"/>
<param name="transform_pairs_record_filename" type="str" value="$(arg data_folder)/$(arg filename)" />
<!-- <param name="transform_pairs_load_filename" type="str" value="$(arg data_folder)/$(arg filename)" /> -->
<param name="output_calibrated_transform_filename" type="str" value="$(arg data_folder)/$(arg calibrated_filename)" />
</node>
<!-- running camera_to_ros node-->
<!-- node pkg="camera_to_ros" type="camera_to_ros" name="camera_to_ros" output="screen"/-->
<!-- running extrinsic_calibration node-->
<node pkg="camera_calibration" type="extrinsic_calibration" name="extrinsic_calibration" output="screen"/>
<!-- running DK node-->
</launch>