sccn / lsl_archived

Multi-modal time-synched data transmission over local network
242 stars 133 forks source link

how to establish a connection between Tobii glasses 2 and LSL #221

Open Data-Anal-Ojisan opened 7 years ago

Data-Anal-Ojisan commented 7 years ago

Hello.

I had installed a lab streaming layer and tried to measure with Tobii industry (Tobii glasses 2 ) using Tobii Eyetracker-1.10 and LabRecorder-1.12d. When starting up the Tobii.exe in the Eytracker-1.10, some information about Tobii server address was required to establish the rink (as below). image

I checked the Tobii server address and port information at a command prompt and input the information, but I could not connect of the rink (as below). image

Are there anyone who succeeded in establishing the connection between Tobii eye tracker and LSL or anyone who knows how to establish the connection?

I am very grateful if you tell me the way.

Thank you for your kind response.

dmedine commented 7 years ago

Yeah, the Tobii 1 connector is not going to work with Tobii 2. I did make a branch that has a little Python script that should work with your glasses. It is just a rough draft. There is no GUI or anything. Also, since then, Tobii's SDK has changed considerably (and for the better) and the next draft of this LSL App should be based on that.

Here's the link:

https://github.com/sccn/labstreaminglayer/tree/tobii2/Apps/Tobii2

On 9/10/2017 5:52 AM, Ryosuke-HIRAMTO wrote:

Hello.

I had installed a lab streaming layer and tried to measure with Tobii industry (Tobii glasses 2 ) using Tobii Eyetracker-1.10 and LabRecorder-1.12d. When starting up the Tobii.exe in the Eytracker-1.10, some information about Tobii server address was required to establish the rink (as below). image https://user-images.githubusercontent.com/31760481/30245974-749ce194-9626-11e7-8749-0e9846b7f834.png

I checked the Tobii server address and port information at a command prompt and input the information, but I could not connect of the rink (as below). image https://user-images.githubusercontent.com/31760481/30245982-b06418fa-9626-11e7-94d8-a74cf2291dae.png

Are there anyone who succeeded in establishing the connection between Tobii eye tracker and LSL or anyone who knows how to establish the connection?

I am very grateful if you tell me the way.

Thank you for your kind response.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sccn/labstreaminglayer/issues/221, or mute the thread https://github.com/notifications/unsubscribe-auth/ADch7l303DhuoD8uHiIptKVuTiAgUdk7ks5sg1zugaJpZM4PSMjx.

Data-Anal-Ojisan commented 7 years ago

thank you for your kind response. I finally established the connection between Lab-Recorder and Tobii glasses 2 using "tobii2_lsl.py" that you introduced. While I could not succeed calibration, I had succeeded to generate the xdf file. Then I tried to check the data using matlab-importer. Only information data such as "nominal state", "channel format" and so on were recorded, but important data such as "time-series" and "time-stamps" were not recorded.

I think I must have made a mistake, but I don't know what went wrong.

I am very glad if you tell me the correct way.

thank you for your kind response.

dmedine commented 7 years ago

Well, indeed the time-series and time-stamps are critical. I am currently traveling but will run some tests when I get back to the office.

On 9/21/2017 9:06 AM, Ryosuke-HIRAMTO wrote:

thank you for your kind response. I finally established the connection between Lab-Recorder and Tobii glasses 2 using "tobii2_lsl.py" that you introduced. While I could not succeed calibration, I had succeeded to generate the xdf file. Then I tried to check the data using matlab-importer. Only information data such as "nominal state", "channel format" and so on were recorded, but important data such as "time-series" and "time-stamps" were not recorded.

I think I must have made a mistake, but I don't know what went wrong.

I am very glad if you tell me the correct way.

thank you for your kind response.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/sccn/labstreaminglayer/issues/221#issuecomment-331071072, or mute the thread https://github.com/notifications/unsubscribe-auth/ADch7lOY6xUlNldbz20B-iofpbl8PnJGks5skgsEgaJpZM4PSMjx.

dmedine commented 7 years ago

It just occurred to me that you might not be looking at the right part of the stream structure. To load an xdf file:

s = load_xdf('xdf_file.xdf');

Then you should have an array of structures with 4 fields: info, segments, time_series, andtime_stamps. So, to find the nominal sampling rate you would look in s{1}.info, but the data itself would be in s{1}.time_series.

Maybe you are already aware of this. The other thing to check is that you are connecting to the right ip. On line 26 of tobii2_lsl.py is where the ip address is set. This needs to be the ip of the glasses on your network.

On 9/21/2017 9:06 AM, Ryosuke-HIRAMTO wrote:

thank you for your kind response. I finally established the connection between Lab-Recorder and Tobii glasses 2 using "tobii2_lsl.py" that you introduced. While I could not succeed calibration, I had succeeded to generate the xdf file. Then I tried to check the data using matlab-importer. Only information data such as "nominal state", "channel format" and so on were recorded, but important data such as "time-series" and "time-stamps" were not recorded.

I think I must have made a mistake, but I don't know what went wrong.

I am very glad if you tell me the correct way.

thank you for your kind response.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/sccn/labstreaminglayer/issues/221#issuecomment-331071072, or mute the thread https://github.com/notifications/unsubscribe-auth/ADch7lOY6xUlNldbz20B-iofpbl8PnJGks5skgsEgaJpZM4PSMjx.

Data-Anal-Ojisan commented 7 years ago

It seems that it was not enough in the previous explanation, so I will explain the current situation in detail.

I let 'tobii2_lsl_sample_by_sample.py' recognize Tobii glasses 2 (seen as below).

output

As you seen, I required to press enter key to calibrate. Then I pressed the key, but nothing was changed although I finished the calibration using Tobii's data acquisition system. On the other hand, since the connection between 'tobii2_lsl_sample_by_sample.py' and 'LabRecoredr' was established (seen as below), I started the recording. The reason I also established the connection between LabRecorder and Keyboard is to confirm whether the LabRecorder works correctly.

labrec

Before recording of LSL, I started the recording of Tobii glasses 2 using Tobii's data acquisition system. In addition, during recording of LSL, I pressed some keys to send dates to LSL. After recording of LSL, I imported the xdf file in MATLAB using 'matlab importer'. The content of xdf file was cellar array of structures (1*2). As you expect, one structure {1,1} consisted of keyboard data set, another structure {1,1} consisted of Tobii 2 glasses data set respectively. Information data of both structure's had been recorded, but [time series] and [time stamps] data of Tobii 2 glasses (structure {1,2}) had not been recorded (seen as below) while these data of keyboard hab been recorded correctly.

a1 1 a1 2

This is the detail of all the problems in my situation.

I think the problems are caused by using sample version of Tobii2_lsl.py. However, when I applied same information used in sample version on Tobii_lsl.py, I succeeded to recognize Tobii glasses 2 (as first picture), but failed to establish the connection between LabRecorder. So, Tobii2_lsl.py does not work correctly in my environment. I seem it's critical issue, but I can't correct it now.

This is just my opinion. How do you think about this situation?

I am glad if you give me your opinion.

dmedine commented 7 years ago

So it looks to me like the glasses simply isn't communicating the python script. I don't have my eyeglasses in front of me right now so I can't do any testing on my end, but, you will need to make sure that the serial number (line 126 of tobii2_lsl.py) corresponds to your hardware. There might be a couple other hard coded things in there like that.

Unfortunately, this is just a mock-up and not a finished solution. There is no error checking. If the glasses aren't connected I don't think the script will give you any feedback. You should get a message after calibration. It will print out either 'Calibration successful' or 'Calibration failed, using default calibration instead'. If you don't see these messages, the program never enters the output loop and no samples are sent, although the stream is already established, which is why labrecorder can see it.

Can you please confirm that the IP and Port number are correct in (tobii2_lsl_sample_by_sample.py(https://github.com/sccn/labstreaminglayer/blob/tobii2/Apps/Tobii2/tobii2_lsl_sample_by_sample.py#L27-L28)?

On 10/5/2017 6:18 AM, Ryosuke-HIRAMTO wrote:

It seems that it was not enough in the previous explanation, so I will explain the current situation in detail.

I let 'tobii2_lsl_sample_by_sample.py' recognize Tobii glasses 2 (seen as below).

output https://user-images.githubusercontent.com/31760481/31207982-70cf5e62-a9bc-11e7-85e6-729b12cf9709.PNG

As you seen, I required to press enter key to calibrate. Then I pressed the key, but nothing was changed although I finished the calibration using Tobii's data acquisition system. On the other hand, since the connection between 'tobii2_lsl_sample_by_sample.py' and 'LabRecoredr' was established (seen as below), I started the recording. The reason I also established the connection between LabRecorder and Keyboard is to confirm whether the LabRecorder works correctly.

labrec https://user-images.githubusercontent.com/31760481/31208259-86cbb0ce-a9be-11e7-91db-86b7fcac6899.png

Before recording of LSL, I started the recording of Tobii glasses 2 using Tobii's data acquisition system. In addition, during recording of LSL, I pressed some keys to send dates to LSL. After recording of LSL, I imported the xdf file in MATLAB using 'matlab importer'. The content of xdf file was cellar array of structures (1*2). As you expect, one structure {1,1} consisted of keyboard data set, another structure {1,1} consisted of Tobii 2 glasses data set respectively. Information data of both structure's had been recorded, but [time series] and [time stamps] data of Tobii 2 glasses (structure {1,2}) had not been recorded (seen as below) while these data of keyboard hab been recorded correctly.

a1 1 https://user-images.githubusercontent.com/31760481/31208954-112466ea-a9c3-11e7-8695-ab5b3ef46b91.PNG a1 2 https://user-images.githubusercontent.com/31760481/31208957-14ced79e-a9c3-11e7-9b95-863264d77bb2.PNG

This is the detail of all the problems in my situation.

I think the problems are caused by using sample version of Tobii2_lsl.py. However, when I applied same information used in sample version on Tobii_lsl.py, I succeeded to recognize Tobii glasses 2 (as first picture), but failed to establish the connection between LabRecorder. So, Tobii2_lsl.py does not work correctly in my environment. I seem it's critical issue, but I can't correct it now.

This is just my opinion. How do you think about this situation?

I am glad if you give me your opinion.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/sccn/labstreaminglayer/issues/221#issuecomment-334354437, or mute the thread https://github.com/notifications/unsubscribe-auth/ADch7gZ-V6QHThIzA2vnhQmeVF-09BJ0ks5spFiAgaJpZM4PSMjx.