@@ -104,7 +104,8 @@ def create_charuco_board(
104104def get_multiple_perspective_camera_calibration_dataset (
105105 auto_cam_cal_robot : AutomaticCameraCalibrationRobot ,
106106 max_num_images : int = 10000 ,
107- distances : Optional [np .ndarray ] = None ,
107+ distances_x : Optional [np .ndarray ] = None ,
108+ distances_z : Optional [np .ndarray ] = None ,
108109 x_axis_rots : Optional [np .ndarray ] = None ,
109110 y_axis_rots : Optional [np .ndarray ] = None ,
110111 z_axis_rots : Optional [np .ndarray ] = None ,
@@ -161,7 +162,8 @@ def get_multiple_perspective_camera_calibration_dataset(
161162 viewpoints = get_relative_viewpoints_from_board_pose_and_param (
162163 R_vision_to_target ,
163164 tvec_vision_to_target ,
164- distances = distances ,
165+ distances_x = distances_x ,
166+ distances_z = distances_z ,
165167 x_axis_rots = x_axis_rots ,
166168 y_axis_rots = y_axis_rots ,
167169 z_axis_rots = z_axis_rots ,
@@ -883,7 +885,8 @@ def convert_camera_t_viewpoint_to_origin_t_planning_frame(
883885def get_relative_viewpoints_from_board_pose_and_param (
884886 R_board : np .ndarray ,
885887 tvec : np .ndarray ,
886- distances : Optional [np .ndarray ] = None ,
888+ distances_x : Optional [np .ndarray ] = None ,
889+ distances_z : Optional [np .ndarray ] = None ,
887890 x_axis_rots : Optional [np .ndarray ] = None ,
888891 y_axis_rots : Optional [np .ndarray ] = None ,
889892 z_axis_rots : Optional [np .ndarray ] = None ,
@@ -936,8 +939,10 @@ def get_relative_viewpoints_from_board_pose_and_param(
936939 List[np.ndarray]: a list of 4x4 homogenous transforms to visit in the "principal" cameras
937940 frame
938941 """
939- if distances is None :
940- distances = np .arange (0.5 , 0.7 , 0.1 )
942+ if distances_x is None :
943+ distances_x = np .arange (0.3 , 0.7 , 0.1 )
944+ if distances_z is None :
945+ distances_z = np .arange (- 0.2 , 0.3 , 0.1 )
941946 if x_axis_rots is None :
942947 x_axis_rots = np .arange (- 20 , 21 , 5 )
943948 if y_axis_rots is None :
@@ -951,7 +956,8 @@ def get_relative_viewpoints_from_board_pose_and_param(
951956 x_axis_rots = [radians (deg ) for deg in x_axis_rots ]
952957 y_axis_rots = [radians (deg ) for deg in y_axis_rots ]
953958 z_axis_rots = [radians (deg ) for deg in z_axis_rots ]
954- translations = [tvec + R_board [:, 2 ] * dist for dist in distances ]
959+
960+ translations = [(tvec + R_board [:, 2 ] * dist + R_board [:, 0 ] * d2 ) for dist in distances_z for d2 in distances_x ]
955961 R_base = R_board @ R_align_board_frame_with_camera
956962
957963 def euler_to_rotation_matrix (roll : float , pitch : float , yaw : float ) -> np .ndarray :
0 commit comments