Reuse the internal camera parameters (from the supplied
camera calibration results of the remote cameras) to compute the
CogHandEyeCalibrationRemoteCamerasResults for the remote cameras based on the supplied
tracked feature points
on a part from the remote station, pelrects of the remote camera, 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 tracked features in their FOVs when moving the part between
primary station and remote station (via the highly repeatable motions).
Namespace: Cognex.VisionPro.CalibFixAssembly: Cognex.VisionPro.CalibFixPlus (in Cognex.VisionPro.CalibFixPlus.dll) Version: 69.0.0.0
Syntax
public CogHandEyeCalibrationRemoteCameraResults Execute( CogFeaturePositionsMCamerasNPoses remoteCamerasTrackedRaw2DFeatures, Rectangle[] remoteCamerasPelRects, CogTransform2DRigid[] uncorrectedHome2DFromStage2Ds, CogTransform2DCameraCalibration[] remoteCameraRaw2DFromCamera2Ds )
Parameters
- remoteCamerasTrackedRaw2DFeatures
- Type: Cognex.VisionPro CogFeaturePositionsMCamerasNPoses
The tracked Raw2D feature positions from the images acquired by the remote cameras.Each tracked Raw2D feature includes x,y coordinate and a validation value. For different poseID of i, remoteCamerasTrackedRaw2DFeatures[i][cameraID][featureID] (with the same cameraID and featureID) should always correspond to the same physical feature. The validation value indicates whether this feature is visible in current camera under current pose.
- remoteCamerasPelRects
- Type: System.Drawing Rectangle
The pelrects of the remote cameras. 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 tracked Raw2D features.
- remoteCameraRaw2DFromCamera2Ds
- Type: Cognex.VisionPro CogTransform2DCameraCalibration
The remote cameras' previously computed calibration results which are expected to have better accuracy (e.g., using calibration plate). The intrinsic parameters of input camera calibrations are kept during computing the hand-eye calibration, while the extrinsic parameter are recalculated based on the tracked Raw2D features.
Return Value
Type: CogHandEyeCalibrationRemoteCameraResultsA CogHandEyeCalibrationRemoteCamerasResults containing the results of the calibration, i.e. a CogHandEyeCalibrationRemoteCamerasResult object for each remote camera.
Exceptions
| Exception | Condition |
|---|---|
| ArgumentNullException | If the remoteCamerasTrackedRaw2DFeatures argument is null. |
| ArgumentNullException | If the remoteCamerasPelRects argument is null. |
| ArgumentNullException | If the uncorrectedHome2DFromStage2Ds argument is null. |
| ArgumentNullException | If the remoteCameraRaw2DFromCamera2Ds argument is null. |
| ArgumentNullException | The Raw2DFromCamera2D transform for any of the items in remoteCameraRaw2DFromCamera2Ds is null. |
| CogTimeoutExpiredException | If TimeoutEnabled is true and this method does not complete within Timeout milliseconds. |
| ArgumentException |
If any of the following is true:
|
| ArgumentException |
If any of the following is true:
|
| ArgumentException | If any Raw2D feature position in the remoteCamerasTrackedRaw2DFeatures parameter argument falls outside its corresponding pelrect. |
| ArgumentException | If the supplied remoteCameraRaw2DFromCamera2Ds is using a lens distortion model different from the one set in this calibrator. |
| ArgumentException | If the input data is degenerate. |
Remarks
The purpose of this overload is to support moving previously-calibrated cameras and calibrating the camera extrinsic poses using potentially sparse feature correspondences.
Currently, The only supported stage MotionCapability MotionCapability is RotationAndTranslation. Any other stage MotionCapability will cause exception.
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