I’m having a similar issue. I posted it as a bug report via that link, but was just told to come here since they can “only help with game setup related questions”.
I’ve been using Tobii 4C with Tobii Stream Engine for a few years to create little interactive games for Windows (with a paid license). I’ve never tried accessing the Head Pose data stream before but now have a need for it. However, the Tobii 4C head pose callback, once subscribed, always reports a validity of INVALID (0) and all zeroes for the head position XYZ and head rotation XYZ. This happens even with the minimal C++ head pose example given in the Stream Engine documentation.
To make matters weirder, the Stream Engine Interop wrapper class for C# returns some malformed head pose data struct that seems to draw its data from the left/right gaze origin values. The head position is identical to left gaze origin XYZ, but is always marked as INVALID; meanwhile, the head rotation X value is the right gaze origin Z value (!), suggesting that the right gaze origin XY values are being falsely mapped to head rotation YZ validity (the previous two struct fields, both always INVALID). This supports the hypothesis that the
tobii_head_pose_callback_t wrapped by Interop in C# is actually accessing the
We tried rolling back the Tobii Core Eyetracking version to 2.13.1 as per the website’s indication that later versions have head tracking problems, but it made no different. I’ve seen scattered reports of other users reporting the same bug (except the weird Interop issue). Is this a known issue with Tobii Stream Engine or the 4C?
I’ve attached a screenshot of the console output for the minimal C++ example, and a Unity log showing the Interop malformed struct issue (LGO/RGO = left/right gaze origin, HP = Head Position Validity + XYZ, HPR = Head Rotation Validity XYZ + XYZ).
Help would be much appreciated!