Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/janfreyberg/tobii-psychopy
A package to use Tobii Eyetrackers with psychopy in python
https://github.com/janfreyberg/tobii-psychopy
Last synced: 3 months ago
JSON representation
A package to use Tobii Eyetrackers with psychopy in python
- Host: GitHub
- URL: https://github.com/janfreyberg/tobii-psychopy
- Owner: janfreyberg
- License: gpl-3.0
- Created: 2016-06-15T09:56:05.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-07-16T13:45:40.000Z (over 5 years ago)
- Last Synced: 2023-10-20T20:38:03.923Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 42 KB
- Stars: 13
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
⚠️ THIS LIBRARY IS NO LONGER MAINTAINED. ⚠️
Unfortunately, I no longer work in psychology and therefore don't have
access to tobii devices. If you'd like to take the project forward, please do!# tobii psychopy
This is a port, with some modifications, of a script written by @SogoHiroyuki, to make it easier to use tobiis from psychopy.
The original is located here:
http://www.s12600.net/psy/etc/python.html#TobiiControllerI have taken the Psychopy version of his script and adapted it to:
- not use PIL
- have a slightly more intuitive calibration procedure### Installation
Install by typing: pip install git+https://github.com/janfreyberg/tobii-psychopy.git#### Dependencies
You will need:
- numpy (`pip install numpy`)
- psychopy (`pip install psychopy`, but check the requirements at [psychopy.org](www.psychopy.org)
- the tobii pro analytics sdk 3.X ([from the tobii website](http://www.tobiipro.com/product-listing/tobii-pro-analytics-sdk/))
- datetime (`pip install datetime`)### Usage
You can try out the controller by running tobiicontroller.py as a script rather than importing it: enter `python tobiicontroller.py` in a commandline in the same directory as the file.When using it as part of a PsychoPy experiment, import it first, and then create a "controller" class by calling `myController = tobiicontroller.TobiiController(window)`, where `window` is the handle of an open psychopy window.
The following functions of the controller can be used for calibrating and tracking:
- `myController.findEyes()` mirrors the eyes so you can adjust the angle of the tobii and move the participant to the right distance
- `myController.doCalibration()` calibrates the scanner. You can provide, as an optional argument, a list of tuples that contain the coordinates of your points. You should provide this list in "Active Display Coordinates", where `(0.0, 0.0)` is top left, and `(1.0, 1.0)` is bottom right. The default is `[(0.5, 0.5), (0.1, 0.9), (0.1, 0.1), (0.9, 0.9), (0.9, 0.1)]`, and more or fewer points aren't really advisable.
- `myController.setDataFile(filename)` for setting where to save data. Currently, this overwrites whatever is in the file before, so make sure you set a new file for each trial you do. You can provide `None` if you don't want data to be saved.
- `myController.startTracking()` and `myController.stopTracking()` for tracking. This means the tobii actually produces data that gets picked up by python.
- `myController.recordEvent(eventString)` if you want to record something that happened. This makes sure you have a record of events - i.e. stimulus onset - that is synchronised to the tobii eye tracking data stream.
- `myController.getCurrentGazePosition()`, `myController.getCurrentGazeAverage`, `myController.getCurrentPupilSize`, `myController.getCurrentEyePosition`, if you want to get online estimates of where the subject is looking, what the pupil size is, and where the eyes are in 3D space, respectively.