gmlServiceSimpleCalibration Class Reference

Inherits from

Detailed Description

Manage automatic 2D-2D geometric calibration for exactly one client.

Caveats:

  • the grabber used must be running on the same machine as this service
  • concurrent calibration is not possible
  • the points must be sent by the client in the camera's reading order
  • matrices are transferred in row-major order
  • point coordinates are transferred in (x,y) order (column-major)

Service channels:

calibration (duplex)

Used to negotiate calibration with a GUI client, as follows:

  1. the client asks for the calibration processs to start:

    ``Calibrate``
    
  2. the service acknowledges:

    ``Calibrating``
    
  3. the client displays a grid, and sends the point coordinates in camera reading order, in display coordinates:

    ``Points`` 12.34 56.78 90.12 34.56
    
  4. the service finishes calibration and acknowledges; an error estimate in display pixels is provided:

    ``Done`` 1.23
    

If an error occur at any point during the calibration process, the service sends back an error message on this channel and disconnects.

matrix (duplex)

The results of the latest successful calibration will be sent to any peer that connects to this channel. If no calibration has been performed yet, the unit matrix will be sent.

When a calibration is completed, the new results will be broadcast to all connected peers.

grabber (input)
Connects to the "once" channel of a GML Frame Grabber service. It is used to fetch a frame before and after the client displays a calibration grid.

Public Member Functions

constructor args

destructor