Assembly: Cognex.VisionPro.CalibFixPlus (in Cognex.VisionPro.CalibFixPlus.dll) Version: 69.0.0.0
Parameters
- correspondedPointPairs
- Type: Cognex.VisionPro CogFeatureCrspsMCamerasNPoses
The corresponded point pairs to be processed.
- pelRects
- Type: System.Drawing Rectangle
The pelrects used to extract the corresponded point pairs. There should be one pelrect for each camera. The input pelRects specifies the pelrect of each camera. There is no relationship between the pelrects of two separate cameras. It is used to define the origin of camera coordinate system (i.e. Camera2D) which is at the center of the pelrect.
- uncorrectedHome2DFromStage2Ds
- Type: Cognex.VisionPro CogTransform2DRigid
The sequence of UncorrectedHome2DFromStage2D poses that were used to move the stage when the images that provided the corresponded point pairs were acquired.
- raw2DFromCamera2Ds
- Type: Cognex.VisionPro CogTransform2DCameraCalibration
The previously computed calibration results which is 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 provided corresponded point pairs.
Return Value
Type: CogHandEyeCalibrationResultsA CogHandEyeCalibrationResults containing the results of the analysis, i.e. a CogHandEyeCalibrationResult object for each camera.
| Exception | Condition |
|---|---|
| ArgumentNullException | If the correspondedPointPairs argument is null. |
| ArgumentNullException | If the pelRects argument is null. |
| ArgumentNullException | If the uncorrectedHome2DFromStage2Ds argument is null. |
| ArgumentNullException | If the raw2DFromCamera2Ds 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:
|
| NotSupportedException | If SeparateCalPlate value is true and MotionCapability is Not RotationAndTranslation. |
| ArgumentException |
If MotionCapability is RotationAndTranslation and any of the
following is true:
|
| ArgumentException |
If MotionCapability is RotationOnly and any of the following is true:
|
| ArgumentException |
If MotionCapability is TranslationOnly1Axis and any of the
following is true:
|
| ArgumentException |
If MotionCapability is TranslationOnly2Axes and any of the
following is true:
|
| ArgumentException | If any Raw2D feature point in the correspondedPointParams argument falls outside its corresponding pelrect. |
| ArgumentException | If the input data is degenerate. |
| ArgumentException |
If any of the following is true:
|
The purpose of this overload is to support calibrating cameras whose mounting positions have been changed since previous calibration, using potentially sparse feature correspondences.
This method handles 2 different usage cases depending on the value of SeparateCalPlate, if SeparateCalPlate is true, the algorithm assumes that there is a different calibration plate under each camera. The physical location of the feature in the input correspondences are in different Plate2D spaces. If SeparateCalPlate is false, then it means all the camera are looking at the same calibration plate, the physical locations of all the features are defined in an unified Plate2D space. Currently only MotionCapability RotationAndTranslation is supported for separate calibration plate hand-eye calibration.
If SeparateCalPlate is false, The current value of MotionCapability will affect the result returned by this method:
- If the MotionCapability is RotationOnly, the operator cannot recover the orientation of the plate placement pose, so it arbitrarily defines the orientation of the Home2D coordinate space to be the same as the Plate2D coordinate space orientation.
- Similarly for TranslationOnly1Axis or TranslationOnly2Axes, the operator cannot recover the center of rotation of the plate placement pose, so it will arbitrarily define the origin of the Home2D coordinate system to be the same as the Plate2D origin.
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.