CogHandEyeCalibratorRemoteCameras Execute Method (CogFeatureCrspsMCamerasNPoses,  Rectangle ,  CogTransform2DRigid ,  CogTransform2DCameraCalibration )Cognex VisionPro
Reuse the internal camera parameters (from the supplied camera calibration results of the remote cameras) to compute CogHandEyeCalibrationRemoteCamerasResults for the remote cameras based on the supplied corresponded point pairs extracted from images of the separate calibration plates being shuffled between primary station and remote station captured with remote cameras, pelrects of remote cameras, and uncorrectedHome2DFromStage2D poses. This overload performs a full hand eye calibration on the remote station so that it doesn't require that the remote cameras and primary cameras to have overlapped/connected plate features in their FOVs when moving the calibration plates between primary station and remote station (via the highly repeatable motions).

Namespace: Cognex.VisionPro.CalibFix
Assembly: Cognex.VisionPro.CalibFixPlus (in Cognex.VisionPro.CalibFixPlus.dll) Version: 65.1.0.0
Syntax

public CogHandEyeCalibrationRemoteCameraResults Execute(
	CogFeatureCrspsMCamerasNPoses remoteCamerasCrsps,
	Rectangle[] remoteCamerasPelRects,
	CogTransform2DRigid[] uncorrectedHome2DFromStage2Ds,
	CogTransform2DCameraCalibration[] remoteCameraRaw2DFromCamera2Ds
)

Parameters

remoteCamerasCrsps
Type: Cognex.VisionPro CogFeatureCrspsMCamerasNPoses
The corresponded point pairs for the remote cameras.
remoteCamerasPelRects
Type:  System.Drawing Rectangle 
The pelrects of the remote cameras, used to extract the corresponded point pairs. There should be one pelrect for each camera. There is no relationship between the pelrects of two separate cameras. It is used to define the camera coordinate system (i.e. Camera2D) to be at the center of the pelrect.
uncorrectedHome2DFromStage2Ds
Type:  Cognex.VisionPro CogTransform2DRigid 
The sequence of UncorrectedHome2DFromStage2D poses that were used to move the stage before the remote cameras acquired the images that provided the corresponded point pairs.
remoteCameraRaw2DFromCamera2Ds
Type:  Cognex.VisionPro CogTransform2DCameraCalibration 
The pre-calibrated remote cameras' calibration results, which is expected to have better accuracy. Only the intrinsic parameters of input camera calibrations are kept during computing the hand-eye calibration, while the extrinsic parameter are recalculated based on the corresponded point pairs.

Return Value

Type: CogHandEyeCalibrationRemoteCameraResults
A CogHandEyeCalibrationRemoteCameraResults containing the results of the calibration, i.e. a CogHandEyeCalibrationRemoteCameraResults object for each remote camera.
Exceptions

ExceptionCondition
ArgumentNullException If the remoteCamerasCrsps argument is null.
ArgumentNullException If the remoteCamerasPelRects argument is null.
ArgumentNullException If the uncorrectedHome2DFromStage2Ds argument is null.
ArgumentNullException If the remoteCameraRaw2DFromCamera2Ds argument is null.
CogTimeoutExpiredException If TimeoutEnabled is true and this method does not complete within Timeout milliseconds.
ArgumentException If any of the following is true:
  • Any of the input arguments is empty.
  • The number of poses in remoteCamerasCrsps is different from the number of items in uncorrectedHome2DFromStage2Ds.
  • The number of cameras in remoteCamerasCrsps is different from the number of items in remoteCamerasPelRects.
  • The number of cameras in remoteCameraRaw2DFromCamera2Ds is different from the number of items in remoteCamerasPelRects.
  • The number of cameras in remoteCamerasCrsps is inconsistent in different poses.
  • The handedness flip between camera and plate is inconsistent in different poses.
ArgumentException If any of the following is true:
  • The uncorrectedHome2DFromStage2Ds parameter has fewer than 4 elements.
  • All elements of the uncorrectedHome2DFromStage2Ds parameter have exactly the same translation component.
  • The rotation span among all elements of uncorrectedHome2DFromStage2Ds is less than 1.0 degrees.
ArgumentException If any Raw2D feature position in the remoteCamerasCrsps argument falls outside its corresponding pelrect.
ArgumentException If the input data is degenerate.
ArgumentException If any of the following is true:
  • The Raw2DFromCamera2D transform for any of the items in remoteCameraRaw2DFromCamera2Ds is null.
  • If the supplied remoteCameraRaw2DFromCamera2Ds is using a lens distortion model different from the one set in this calibrator.
Remarks

The purpose of this overload is to support moving previously-calibrated cameras and calibrating the camera extrinsic poses using potentially sparse feature correspondences.

Requires:

  • Between the previous and current calibration, there should be no change to the cameras' intrinsic parameters, e.g. focal length, focus, aperture, lens unit, camera body.
  • Between the previous and current calibration, the cameras' extrinsic parameters changes such as in-plane rotation and translation, are to be expected. Small changes to non-in-plane rotation and translation that cause changes in perspective are also allowed.

See Also