System MarshalByRefObject
Cognex.VisionPro.Implementation CogObjectBase
Cognex.VisionPro.Implementation CogSerializableObjectBase
Cognex.VisionPro.Implementation CogSerializableChangedEventBase
Cognex.VisionPro.CalibFix CogHandEyeCalibrator
Namespace: Cognex.VisionPro.CalibFix
Assembly: Cognex.VisionPro.CalibFixPlus (in Cognex.VisionPro.CalibFixPlus.dll) Version: 69.0.0.0
The CogHandEyeCalibrator type exposes the following members.
| Name | Description | |
|---|---|---|
| CogHandEyeCalibrator |
This constructor creates a default CogHandEyeCalibrator object.
| |
| CogHandEyeCalibrator(CogHandEyeCalibrator) |
Copy constructs a CogHandEyeCalibrator object.
| |
| CogHandEyeCalibrator(SerializationInfo, StreamingContext) |
Serialization construct a CogHandEyeCalibrator object.
|
| Name | Description | |
|---|---|---|
| ComputeRaw2DFromCamera2D |
Compute camera calibration ( Raw2DFromCamera2D) for a camera using a group of
calibration feature correspondences from different calibration plate poses.
| |
| ComputeRaw2DFromCamera2Ds |
Compute camera calibration (Raw2DFromCamera2D) for all cameras using a group of
calibration feature correspondences from different calibration plate poses.
| |
| CreateObjRef | Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.) | |
| Dispose |
Destruct this CogHandEyeCalibrator.
| |
| Dispose(Boolean) | ||
| Equals | (Inherited from Object.) | |
| Execute(CogFeatureCrspsMCamerasNPoses, Rectangle , CogTransform2DRigid ) |
Compute the CogHandEyeCalibrationResults for the supplied corresponded
point pairs, pelrects, and UncorrectedHome2DFromStage2D poses,
using the current parameter settings.
| |
| Execute(CogFeaturePositionsMCamerasNPoses, Rectangle , CogTransform2DRigid ) |
Compute the CogHandEyeCalibrationResults for the supplied
trackedRaw2DFeatures, pelrects, and UncorrectedHome2DFromStage2D
poses, using the current parameter settings.
| |
| Execute(CogFeatureCrspsMCamerasNPoses, Rectangle , CogTransform2DRigid , CogHandEyeCalibrationResults) |
Recompute the CogHandEyeCalibrationResults for the supplied
corresponded point pairs, pelrects, and
UncorrectedHome2DFromStage2D poses,
reusing each camera's Raw2DFromCamera2D from
the input CogHandEyeCalibrationResults.
| |
| Execute(CogFeatureCrspsMCamerasNPoses, Rectangle , CogTransform2DRigid , CogTransform2DCameraCalibration ) |
Recompute the CogHandEyeCalibrationResults for the supplied
corresponded point pairs, pelrects, and
UncorrectedHome2DFromStage2D poses,
reusing each camera's intrinsics parameters from the input raw2DFromCamera2Ds
and recomputing the extrinsic parameter.
| |
| Execute(CogFeaturePositionsMCamerasNPoses, Rectangle , CogTransform2DRigid , CogHandEyeCalibrationResults) |
Recompute the CogHandEyeCalibrationResults for the supplied
trackedRaw2DFeatures, pelrects, and UncorrectedHome2DFromStage2D poses,
reusing intrinsics parameter from the input CogHandEyeCalibrationResults
and recompute the extrinsic parameter.
| |
| Execute(CogFeaturePositionsMCamerasNPoses, Rectangle , CogTransform2DRigid , CogTransform2DCameraCalibration ) |
Recompute the CogHandEyeCalibrationResults for the supplied
trackedRaw2DFeatures, pelrects, and UncorrectedHome2DFromStage2D poses,
reusing intrinsics parameter from the input raw2DFromCamera2Ds
and recompute the extrinsic parameter.
| |
| Finalize |
Finalize this CogHandEyeCalibrator.
(Overrides Object Finalize .) | |
| GetAttributes |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetClassName |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetComponentName |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetConverter |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetDefaultEvent |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetDefaultProperty |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetEditor |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetEvents |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetEvents( Attribute ) |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
| GetLifetimeService | Retrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.) | |
| GetObjectData |
Implements the GetObjectData method of the ISerializable interface.
(Inherited from CogSerializableObjectBase.) | |
| GetProperties |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetProperties( Attribute ) |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetPropertyOwner |
Implements the corresponding member of the ICustomTypeDescriptor interface.
May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.) | |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| InitializeLifetimeService | Obtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.) | |
| MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
| MemberwiseClone(Boolean) | Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject.) | |
| OnChanged(Int64) |
This method should be called internally whenever the object's state may
have changed.
(Inherited from CogSerializableChangedEventBase.) | |
| OnChanged(CogChangedEventArgs) |
This method may be called internally whenever a derived object's state
may have changed and the derived object expresses this change via a
derived CogChangedEventArgs class.
(Inherited from CogSerializableChangedEventBase.) | |
| ResumeAndRaiseChangedEvent |
Re-enables raising of the Changed event after SuspendChangedEvent
has been called, and raises the Changed event if the
ChangedEventSuspended count is reduced to zero and any changes were
made while events were suspended. Must be called once for each call to
SuspendChangedEvent.
(Inherited from CogSerializableChangedEventBase.) | |
| SuspendChangedEvent |
Temporarily suspends the raising of the Changed event. May be called
more than once, and a corresponding call to ResumeAndRaiseChangedEvent
must be made for each call to SuspendChangedEvent.
(Inherited from CogSerializableChangedEventBase.) | |
| ToString | (Inherited from Object.) |
| Name | Description | |
|---|---|---|
| SfDistortionModel |
This bit will be set in the EventArgs of a Changed event
every time the value returned by DistortionModel
may have been changed.
| |
| SfHome2DUnitLengthReference |
This bit will be set in the EventArgs of a Changed event
every time the value returned by Home2DUnitLengthReference
may have been changed.
| |
| SfMinimumRotationSpan |
This bit will be set in the EventArgs of a Changed event
every time the value returned by MinimumRotationSpan
may have been changed.
| |
| SfMotionCapability |
This bit will be set in the EventArgs of a Changed event
every time the value returned by MotionCapability
may have been changed.
| |
| SfMovingCamera |
This bit will be set in the EventArgs of a Changed event
every time the value returned by MovingCamera
may have been changed.
| |
| SfNextSf | ||
| SfSeparateCalPlate |
This bit will be set in the EventArgs of a Changed event
every time the value returned by SeparateCalPlate
may have been changed.
| |
| SfTimeout |
This bit will be set in the EventArgs of a Changed event
every time the value returned by Timeout
may have been changed.
| |
| SfTimeoutEnabled |
This bit will be set in the EventArgs of a Changed event
every time the value returned by TimeoutEnabled
may have been changed.
|
| Name | Description | |
|---|---|---|
| ChangedEventSuspended |
If nonzero, indicates that the raising of the Changed event has been
suspended. This value is incremented when SuspendChangedEvent is called
and decremented when ResumeAndRaiseChangedEvent is called.
(Inherited from CogSerializableChangedEventBase.) | |
| DistortionModel |
The optical distortion model to be used in computing
Raw2DFromCamera2D.
| |
| HasChanged | (Inherited from CogSerializableChangedEventBase.) | |
| Home2DUnitLengthReference |
Specifies how unit length in Home2D is established.
| |
| MinimumRotationSpan |
The minimum required rotation angle span in radians among
all input uncorrectedHome2DFromStage2D poses for motion capabilities
that allows rotation. The run-time function will throw an
exception if the rotation angle span among all input
uncorrectedHome2DFromStage2D poses is less than this
minimum requirement.
| |
| MotionCapability |
The motion capability of the stage.
| |
| MovingCamera |
Indicates if the cameras are moving or stationary.
| |
| SeparateCalPlate |
Indicates if running separate calibration plate hand-eye calibration or regular big calibration plate calibration.
This is only applicable when using corresponded point pairs as input for Execute overloads.
| |
| StateFlags |
Returns the complete set of state flags supported on this object. The
flags may be indexed by name as shown in the following C# code snippet:
if (changedObject.StateFlags["Color"] & eventArgs.StateFlags) { ... }
(Inherited from CogSerializableChangedEventBase.) | |
| Timeout |
The maximum time in milliseconds that the Execute method
will be allowed to run if TimeoutEnabled is true.
| |
| TimeoutEnabled |
Enable or disable timeout for the Execute methods.
|
| Name | Description | |
|---|---|---|
| Changed |
This event is raised when one or more parts of the object's state may
have changed.
(Inherited from CogSerializableChangedEventBase.) |
The CogHandEyeCalibrator computes the mathematical transform to map image coordinate positions to and from their corresponding coordinates in the coordinate system defined by the motion axes of the stage. This is a 2-D transform. This operator provides no 3-D information.
This operator can handle stationary and moving camera configurations. In the stationary-camera configuration, the physical position of the cameras remains unchanged when the motion stage moves. Typically, when calibrating cameras on such a system, a calibration plate is affixed to the motion stage and is moved by the motion stage during calibration. In the moving-camera configuration, the cameras may be mounted on the motion stage so that their physical positions change relative to the stage's home position. Typically, when calibrating cameras on such a system, a calibration plate is affixed to the machine's base and remains stationary during calibration, while the motion stage moves the cameras around. In both configurations, the relative position among all cameras always remains unchanged.
This operator also models systematic errors in the motion stage and determines the relationship between the parameters used to control the motion stage, i.e. (X,Y,Theta) and the actual physical pose of the stage in the home coordinate system.
Coordinate Systems
- Home coordinate system (Home2D)
Home2D is the base reference space in which all other coordinate spaces and their relationships are described. Home2D is defined by the X axis of the motion stage and the motion stage's center of rotation. The origin is at the stage's center of rotation when the stage is at the home position. The X-axis of Home2D is perfectly aligned with the motion-stage's X-axis. The Y-axis of Home2D is exactly 90 degrees from the X-axis and in the general direction of the motion stage's Y-axis. - Image coordinate system (Raw2D)
Raw2D is the pixel space coordinate system of a single camera. There is one instance of such a coordinate system for each camera. Each camera's Raw2D coordinate system is independent of every other camera. - Camera coordinate system (Camera2D)
Camera2D is the physical orthonormal coordinate system for a single camera. There is one instance of such a coordinate system for each camera. The origin of Camera2D is at a position in Home2D that corresponds to the center of the camera's pelrect. Its X axis is parallel to the Raw2D X-axis at the Camera2D origin. The Y axis is exactly 90 degrees from the X-axis and in the general direction of the Raw2D Y axis. - Calibration target coordinate system (Plate2D)
Plate2D is the (global) coordinate system of the calibration plate. At any instance of time, all calibration features viewed by all cameras are described in the same Plate2D coordinate system. However, this space may be moved around in the Home2D coordinates by the motion stage. Plate2D is an orthonormal coordinate system, although its length unit may have a non-identity scale factor from Home2D. Plate2D and Home2D may have different handedness. - Stage coordinate system (Stage2D)
Stage2D is an orthonormal coordinate system that is attached to the motion stage's center of rotation, and moves along with the motion stage.
Handedness The operator assumes independent handedness among Home2D, Camera2D, and Plate2D.
Stage Pose and Systematic Errors in the Motion Stage
- Home2DFromStage2D (Actual physical pose of the motion stage)
Home2DFromStage2D is the actual physical pose of the motion stage in Home2D. It defines the relationship between Home2D and Stage2D and can be represented by a 2D rigid transform. - UncorrectedHome2DFromStage2D (Commanded pose of the motion stage)
Due to systematic errors in the motion stage, the commanded pose of the motion stage may not match the actual physical pose of the motion stage in Home2D (i.e., Home2DFromStage2D). The term UncorrectedHome2DFromStage2D is used to describe the commanded pose of the motion stage because it represents the user's best guess of the pose of the motion stage prior to calibration.
Use cases of hand-eye calibration
We have three different usage cases for hand-eye calibration, which are:
- Regular (using a big calibration plate) hand-eye calibration.
- Separate calibration plates based hand-eye calibration.
- TrackedRaw2DFeatures (from a part) based hand-eye calibration.
-----------------------------------------------------------------------------
Regular big calibration plate based hand-eye calibration
___ ___
| | Camera 1 | | Camera 2
|___| |___|
/_\ /_
___ ___
| | Camera 3 | | Camera 4
|___| |___|
/_\ /_
____________________________________________________
/ Motion Stage /|
/ _______________________________________ / |
/ / /| / |
/ / * * * * * * * / / / |
/ / / / / |
/ / * * * * * * * / / /
/ / / / /
/ / * * * * * * * / / /
/ / Big calibration plate / / /
/ / * * * * * * * / / /
/ / / / /
/ / * * * * * * * / / /
/ / / / /
/ / * * * * * * * / / /
/ /______________________________________/ / /
/ |______________________________________|/ /
/ /
/___________________________________________________/
| |
| |
-----------------------------------------------------------------------------
Separate calibration plates based hand-eye calibration
___ ___
| | Camera 1 | | Camera 2
|___| |___|
/_\ /_
___ ___
| | Camera 3 | | Camera 4
|___| |___|
/_\ /_
____________________________________________________
/ /|
/ __________ __________ / |
/ / /| / /| / |
/ / * * / / / * * / / / |
/ / * * / / / * * / / / |
/ /_________/ / /_________/ / /
/ |_________|/ |_________|/ /
/ calibration plate 1 calibration plate 2 /
/ /
/ Motion Stage /
/ __________ __________ /
/ / /| / /| /
/ / * * / / / * * / / /
/ / * * / / / * * / / /
/ /_________/ / /_________/ / /
/ |_________|/ |_________|/ /
/ calibration plate 3 calibration plate 4 /
/___________________________________________________/
| |
| |
-----------------------------------------------------------------------------
Tracked Raw2D features (from a part) based hand-eye calibration
___ ___
| | Camera 1 | | Camera 2
|___| |___|
/_\ /_
___ ___
| | Camera 3 | | Camera 4
|___| |___|
/_\ /_
____________________________________________________
/ /|
/ _________ _______ / |
/ / \ Motion Stage / \ / |
/ / * \ / * | / |
/ / * /________________/ * | / |
/ |\___ ____/| /
/ \__/ /____/ /
/ / Runtime part // /
/ / (Calibration Object) // /
/ / // /
/ _____/ //___ /
/ / _____________ * \ /
/ / * /_____________\ /| /
/ / * * // \\ * * // /
/ |\____________// \\___________// /
/ \____________/ \___________/ /
/ /
/___________________________________________________/
| |
| |
-----------------------------------------------------------------------------For regular calibration plate hand-eye calibration and separate calibration plate hand-eye calibration, depending on the value of property SeparateCalPlate, different calibration method will be called.