Home Forums Software Development Calibration flow using Stream Engine API 4.1 with professional license

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #19288
    Jordi Espada
    Participant

    Hi there,

    I have a Tobii ET5 with professional license. Everything is fine with its initialization and subscribe gaze data but the calibration part is a bit confusing and there’s no calibration examples in the Stream Engine API docs,

    https://tobiitech.github.io/stream-engine-docs/

    I would like to calibrate 5 points (4 in screen squares and one in the center) and show calibration results in the display in case it should repeat calibration or not.

    I would like to know the flow about the process of calibrate this points and get calibration results.

    I will thankful for your response!

    #19327
    Grant [Tobii]
    Keymaster

    Hi @jespa007, can you kindly clarify what language you are working with under the Stream Engine please? Thereafter we can create a small custom sample for you that should illustrate how to accomplish your needs. Many thanks.

    #19335
    Jordi Espada
    Participant

    Hi,

    I’m using C++ language language and the last C Stream Engine API I’ve downloaded is stream_engine_windows_x64_4.1.0.3.zip. If you give me the example how to calibrate in C format it will fine too.

    Thanks so much 🙂

    #19348
    Grant [Tobii]
    Keymaster

    Hi @jespa007, we have created for you a tutorial to demonstrate how to accomplish your intended calibration goals which you can download @

    Please go through it and let us know how you get on. Best Wishes.

    #19353
    Jordi Espada
    Participant

    Hi Grant [Tobii],

    Thanks so much for the doc!!! I’m was able to perform a calibration as the documents describes but when I get the calibration result through tobii_calibration_point_data_receiver function I get garbage information, but it seems the first element is ok.

    Maybe I doing a wrong use of the function or the calibration process.

    1. For example when I capture calibration gaze information through the function tobii_calibration_collect_data_2d, is enough calling one time or it has to be more times ?

    2. Another thing is, If I’ve calibrated 5 points I suppose that what tobii_calibration_point_data_receiver it returns is a pointer with a total size of
    the size of tobii_calibration_point_data_t multiplied by the total of points calibrated (in my case 5) ?

    3. And last thing, int the document describes,

    “The circles are the actual calibration points. The data displayed in the plot is made available to client applications through the tobii_calibration_parse function which, returns contains a collection of tobii_calibration_point_data_t which in turn contains coordinates for where the calibration point was displayed and where the collected gaze points were estimated after calibration”

    but according the tobii_calibration_point_data_t structure,

    typedef struct tobii_calibration_point_data_t
    {
    float point_xy[ 2 ];

    tobii_calibration_point_status_t left_status;
    float left_mapping_xy[ 2 ];

    tobii_calibration_point_status_t right_status;
    float right_mapping_xy[ 2 ];
    } tobii_calibration_point_data_t;

    It seems that only gives one plot per calibrated point, and not gives and array of eyetracker calibrated points … but again. May be I misunderstood something.

    I will thankful for your response,

    #19359
    Grant [Tobii]
    Keymaster

    Hi @jespa007, glad you found the document useful. Let me try to address your points.

    1. For example when I capture calibration gaze information through the function tobii_calibration_collect_data_2d, is enough calling one time or it has to be more times ?

    tobii_calibration_collect_data_2d should be called once per coordinate you want to calibrate, so for a typical 5 point calibration sequence it should be called 5 times.

    2. Another thing is, If I’ve calibrated 5 points I suppose that what tobii_calibration_point_data_receiver it returns is a pointer with a total size of
    the size of tobii_calibration_point_data_t multiplied by the total of points calibrated (in my case 5) ?

    tobii_calibration_point_data_receiver_t will be called once for each tobii_calibration_point_data_t that is contained in the “calibration blob” so the pointer is a pointer to a tobii_calibration_point_data_t

    3. It seems that only gives one plot per calibrated point, and not gives and array of eyetracker calibrated points … but again. May be I misunderstood something.

    Consumer trackers (4C, ET5) will only return an average point that is computed from all of the collected samples. Tobii Pro trackers returns each individual sample. So, with ET5 it will not be possible to reproduce the image in the document from the calibration results. The way to solve that is to show additional stimuli points and collect additional data after the calibration is completed and base the visualization (and calibration quality assessment) on that data instead. It has several advantages, most of all that it will represent actual eyetracking quality better than the calibration data.

    Hopefully this clarifies the situation, please let us know if we can provide any further information. Best Wishes.

    #19378
    Jordi Espada
    Participant

    Hi Grant Tobii,
    Thanks so much for your responses! I’ve solved the issues and my doubts about my question 2 and 3. The trick was to wait 5 times responses from tobii_calibration_point_data_receiver calls in order to get each calibrated point.

    Thanks so much again and have good day.

    #19379
    Grant [Tobii]
    Keymaster

    Great! Glad to know you are up and running now Jordi. Please don’t hesitate to get in touch again should require any further assistance. Best Wishes.

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.