Fuer korrekte Daten wichtige Konfigurationsoptionen:
Setup->Calibration->Geometry->Stimulus Screen Resolution
: Die Aufloesung des Experimentalmonitors
Setup->Calibration->Geometry->Stimulus Physical Dimension
: Die Groesse des Experimentalmonitors
Setup->Calibration->Geometry->Monitor-Head Distance
: Der Abstand der Augen zum Experimentalmonitor
Setup->Preferences->Hardware->Eyetracker->Config->Operation Mode
: Aufzeichnungsrate des Geraets (240 oder 350 Hz)
Setup->Preferences->Hardware->Eyetracker->Config->Assignment
: Rechtes Auge oder linkes Auge aufzeichnen (wenn monocular). Muss mit der Kamerastellung ("Left-Right") uebereinstimmen.
Setup->Preferences->Hardware->Remote/Remote1->Ethernet->Config
: Einstellungen fuer das Netzwerkinterface ueber das die Kommunikation mit dem Experimentalrechner laeuft. Port
ist immer "4444"; Listen
= Interface fuer ankommende Pakete (ueblicherweise etwas wie "192.168.1.1"); Send UDP packets to
= Interface des Experimentalrechners ("192.168.1.2" oder "192.168.1.10")
Zuerst die Einstellungen nur am Turm vornehmen.
Erst jetzt die Augenposition im Augenbild kontrollieren
Wenn die VP bequem sitzt, das Auge in der Mitte des Augenbilds auf dem IVX-Rechner zu sehen ist, koennen die Softwareeinstellungen angepasst werden:
Tracking-Einstellungen: Um Augendaten erheben zu koennen muss die IVX-Software im von der Kamera uebermittelten Augenbild die Pupille und den Cornealreflex (CR; kleiner weisser Punkt im Augenbild) identifizieren koennen. Dies muss 1x in einer Sitzung, vor der Kalibrierung, eingestellt werden. Ist dies erreicht (= stabiles Tracking), erscheint (abh. von den "overlay"-Einstellungen) ein schwarzes Kreuz auf Pupille bzw.ein weisses auf dem CR. Bei instabilem Tracking bittet man die VP, den Mittelpunkt zu fixieren und reguliert ueber zwei Schieberegler unter dem Augenbild:
Pupil Threshold
: Reguliert das Tracking der Pupille.
CR Threshold
: Reguliert das Tracking des CR.
Hat man ein stabiles Tracking erreicht. Bitte man die VP einmal ueber alle fuer die Kalibrierung verwendeten Punkte auf dem Bildschirm zu schauen und reguliert ggf. an Punkten mit instabilem Tracking nach.
Weitere Parameter:
Dynamic Threshold
: Regelt die Pupillenhelligkeit bei Augenbewegungen online nach. Kosten: groesseres Rauschen (laut SMI < 0.1 GRAD, wen exakte Messungen gemacht werden sollen deaktivieren); zeitliche Verzoegerung beim online-streaming (2 samples = 8.4 Hz, bei blickkontingenten Experimenten deakivieren!).
Display AOI
: Ueber Advanced->AOI
kann man das fuer das Tracking relevante Fenster (= Area Of Interest) verkleinern, und ueber die Option Display Aoi
anzeigen lassen. Kann ein Hilfsmittel sein, wenn man Trackingschwierigkeiten hat.
Bei der Kalibrierung wird die Augenposition (d.h. das Augenbild) mit Bildschirmkoordinaten abgeglichen; d.h. korrekte Kalibrierung ist Voraussetzung fuer korrekten Augendaten.
Zu starten ueber Calibration->Start
. Zwei Modi
Calibration->Auto Accept
aktivieren.
Calibration->Auto Accept
deaktivieren.
Nach der Kalibrierung deren Korrektheit kurz auf willkuerlich gewaehlten Punkten kontrollieren.
Calibration->Drift Correction
machen, die die dortige Abweichung auf allen Blickkoordinaten verrechnet. Aber: Drift ist nicht unbedingt an allen Blickkoordinaten gleich gross, d.h. man koennte nach einer Drift Correction an anderen Orten falsche Koordinaten bekommen.
Sobald mehrere Personen mit unterschiedlichen Einstellungen an der IVX-Software arbeiten sollte jeder sein eigenes Profil verwenden, damit er nicht die Einstellungen des/r anderen zerschiesst.
Anlegen eines Profils: Nachdem man seine Einstellungen gemacht hat waehlt man ueber Setup->Save Setup
einen Dateiname unter dem man seine Einstellungen ablegen moechte (z.B. im IVX-Verzeichnis unter C:\Programme\SMI\iView X\jim01.ivs
)
Laden eines Profils: Das Laden eines Profils geht nur beim startup des Programms und muss als Kommandozeilenparameter uebergeben werden. Dazu
Ctrl+Shift+linke Maustaste
) iViewX-Programms z.B. auf den Desktop legen
Einstellungen
unter Ziel
hinter den Programmaufruf die Konfigurationsdatei eintragen; z.B. C:\Progra\mme\SMI\iView X\iView.exe C:\Progra\mme\SMI\iView X\jim01.ivs
Beim oeffnen dieses Icons wird das IVX-Programm mit den zuvor abgespeicherten Einstellungen geladen und Aenderungen an der Konfiguration ... FIXME, NACHLESEN!
Die folgende Auflistung ist weder vollstaendig, noch soll sie die online-Hilfe des IVX-Programms ersetzen. Sie enthaelt Optionen, mit denen wir schon eigene Erfahrungen gemacht haben, weil sie geaendert wurden oder/und wichtig/kritisch sind ...
Option | Semantik | Anmerkungen |
Setup -> Eyetracker -> Advanced -> Overlays | Anzeigeoptionen fuer das Augenbild: Pupillenfadenkreuz/CR-Fadenkreuz/Konturen/AOIs anzeigen/nicht anzeigen | Den "Advanced"-Dialog erreicht man auch ueber den Advanced -Button unterhalb des Fensters des Augenbilds |
... -> AOI | Area Of Interest im Augenbild einstellen | Moeglichkeit, den fuer die Augendaten relevanten Augenbereich zu verringern |
... -> Rejection | Diverse Parameter zur Regulierung des Trackingverhaltens | Achtung: Nur veraendern, wenn man weiss, was man tut! FIXME: mehr? |
... -> Rejection-> reflex pupil distance | Legt die min- und max-Werte fuer Abstand Pupille - CR fest. Dass in extremen Blickpositionen (z.B. oben rechts) der CR verloren wird kann damit zusammenhaengen; dann den max-Wert vergroessern. | Achtung: Wird ueblicherweise nicht veraendert, nur bei sehr schlechtem Trackingverhalten anfassen! |
... -> Rejection-> reflex perimeter | Regelt die min- und max-Werte fuer die Groesse des CR (in Pixeln) fest. Muss ggf., bei VPs mit sehr kleinem CR, verkleinert werden. | Achtung: Wird ueblicherweise nicht veraendert, nur bei sehr schlechtem Trackingverhalten anfassen! |
... -> Rejection-> pupil density | Muss (u.a.) verstellt werden, wenn auf Augenlider oder -brauen getrackt wird. | Achtung: Wird ueblicherweise nicht veraendert, nur bei sehr schlechtem Trackingverhalten anfassen! |
... -> Linecut | Graphik zur Qualitaet des Augenbilds | Ist ein indirektes Mass fuer die Qualitaet des Augenbilds: die Vertiefung in dieser Grafik, die die Pupille markiert sollte sich moeglichst tief von der Umgebung absetzen; ausserdem sollten moeglichst wenig "Streifen" zu sehen sein, d.h. einzelne nach oben ausbrechende Linien im Diagramm |
Setup -> Calibration -> Method -> Calibration Method | Wieviele Punkte und welche Methode soll zur Kalibrierung verwendet werden? | |
Setup -> Calibration -> Method -> Check Level | FIXME! Stefanie? | |
Setup -> Calibration -> Geometry -> Stimulus Screen Resolution | Bildschirmaufloesung des Experimentalbildschirms in Pixel | Achtung: Muss stimmen sonst falsche Werte! |
... -> Stimulus Physical Dimension | Groesse des Experimentalbildschirms in mm | Achtung: Muss stimmen sonst falsche Werte! |
... -> Montior-Head Distance | Entfernung Auge-Experimentalbildschirm in mm | Achtung: Muss stimmen sonst falsche Werte! |
Setup -> Preferences -> Hardware -> Eyetracker -> Config -> Operation Mode | Aufzeichnungsrate des Geraets (240 oder 350 Hz) | |
Setup -> Preferences -> Hardware -> Eyetracker -> Config -> Adjust Image | Regelt Helligkeit und Kontrast des Augenbilds. | Achtung: Wird ueblicherweise nicht veraendert, nur bei sehr schlechtem Trackingverhalten anfassen! Die Darstellung des Augenbilds reagiert sehr sensibel auf eine Aenderung der Werte. |
... -> Assignment | Welches Auge wird getrackt? | Achtung: Muss mit der Hebelstellung ("Left" - "Right") am Turm uebereinstimmen! |
Setup -> Preferences -> Hardware -> Remote -> Ethernet -> Config -> Listen | Auf welchem Netzwerkinterface (und welchem Port) sollen Daten vom Experimentalrechner empfangen werden? | Ist die IP-Adresse, die in der Netzwerkkarten-Definition von Windows eingetragen ist (z.B. "192.168.1.1). Port ist ueblicherweise 4444. |
... -> Send UDP packets to | An welche IP-Adresse (und welchen Port) sollen Daten vom IVX an den Experimentalrechner gesendet werden? | Ist die IP-Adresse der Netzwerkkarte, ueber die der Experimentalrechner mit dem IVX-Rechner verbunden ist (z.B. "192.168.1.2). Port ist ueblicherweise 4444. Wenn der Experimentalrechner eingeschaltet ist und das Netzwerkkabel in beiden Netzwerkkarten steckt, sollte die Kontrollleuchte neben den Optionen gruen leuchten. |
Auf dem Experimentalrechner wurden zwei Umgebungen zur Experimentalsteuerung benutzt: "Presentation" unter Windows und C unter DOS und Linux. Die weiteren Anmerkungen in diesem Teil beziehen sich auf die letzte Alternative (DOS).
Komponenten (von uns verwendete Versionen)
MSDOS-Betriebssystem installieren
...
Netzkartentreiber installieren
Das Angebot an Treibern fuer Netzwerkkarten unter DOS ist beschraenkt. Fuer die verbreitet 3Com-Serie 3C90x sollten Treiber unter http://support.3com.com/infodeli/inotes/techtran/e36e_5ea.htm verfuegbar sein.
C:\net\driver\
)
autoexec.bat
ergaenzen:
c:\net\driver\pktdvr\3c90xpd
DJGPP installieren
djgpp ist eine Portierung des GNU-C-Compilers auf MS-DOS/Windows und bringt neben dem Gnu-C-Compiler (gcc) etliche tools zur Programmierung mit.
C:\djgpp
) und Installationshinweise in der Datei readme.1st
lesen.
autoexec.bat
ergaenzen:
set PATH=c:\djgpp\bin;%PATH% set lib=c:\djgpp\lib set include=c:\djgpp\include set djgpp=c:\djgpp\djgpp.env
Allegro installieren
Allegro ist eine maechtige Grafik-Bibliothek
C:\djgpp\allegro)
entpacken
docs/build/djgpp.txt
):
cd c:\djgpp\allegro fix.bat djgpp make make install
Watt-32 installieren
Watt-32 ist eine C-Bibliothek zur Verwendung der TCP/IP-Protokollfamilie. Sie wird fuer die Kommunikation mit dem IVX-Rechner benoetigt. Sie ist ein Port der BSD-Socket-API, d.h. umfasst die meisten der low-level-Routinen der socket-Programmierung unter Unix/Linux-artigen Betriebssystemen.
watt32s-2.2-dev.10.zip
- gebraucht zum Testen evtl. aber auch die binaries - watt32b-2.2-dev.10.zip
- und zum Aendern der IVX-Schnittstelle evtl. die Dokumentation - watt32d-2.1-dev.1.zip
) und entpacken (z.B. nach C:\djgpp\watt
)
install
)
cd c:\djgpp\watt\src set WATT_ROOT=c:\djgpp\watt configur.bat djgpp fix.bat djgpp make -f djgpp.mak make install
c:\djgpp\watt\wattcp.cfg
) erzeugen:
my_ip = 192.168.1.10 hostname = "exp-pc" ; optional netmask = 255.255.255.0 gateway = 192.168.1.1
autoexec.bat
ergaenzen:
set WATT_ROOT=c:\djgpp\watt set WATTCP.CFG=c:\djgpp\watt set ETC=c:\djgpp\watt set C_INCLUDE_PATH=c:\djgpp\watt\inc set LIBRARY_PATH=c:\djgpp\watt\lib
Fuer die Programmierung von Eyetracking-Experimenten in C wurde ein selbstgeschriebenes Interface (ivx_udp.h
zur Kommunikation mit dem IVX-Rechner ueber das UDP-Protokoll (in DOS und Unix/Linux) verwendet.
ivx_udp.h
erledigt das die Funktion int receive_current_udp2(ulong *timer_counter)
.)
ET_INC
und ET_REM
. Der Zeitpunkt der Bearbeitung der anderen Direktiven ist der IVX-Software ueberlassen; weshalb z.B. ET_REC
-Aufforderungen (Starten der Aufnahme) einige ms spaeter Wirkung zeigen.
Im folgenden Hinweise zu folgender Auswertungsstrategie:
Bei der Auswertung der Augendaten haben sich uns etliche bugs (des iView X- sowie des Begaze-Programms) gezeigt, auf die an passender Stelle im folgenden hingewiesen wird. SMI hat wiederholt versprochen diese zu beheben, weshalb sie in neueren Programm-Versionen evtl. nicht mehr auftreten.
Das iView X-Programm bietet die Moeglichkeit, die Rohdaten im internen idf-Format oder als ASCII-File (*.txt) zu speichern. Es empfiehlt sich, beides zu machen, da man evtl. das txt-File fuer eine nachtraegliche Korrektur der event-Daten benoetigt.
Neben dem ivx-Programm kann man nachtraeglich das Programm *IDFConvert* verwenden, um aus idf-Dateien txt-Dateien zu erzeugen (vgl. u.).
Bekannte Bugs
Begaze
IDF-Converter
Das in der iView X-Software mitgelieferte Programm IDFConvert bietet 3 Funktionen: Konvertieren
trim events at set limits
) falsch mit den Set-Grenzen umzugehen, weshalb er bisher nicht zur Erzeugung von event-Daten benutzt wurde.
Bekannte Bugs
Dieser Schritt war bisher nur deshalb notwendig, da begaze bei der Erzeugung der event-Daten MSGs verschluckt, die fuer die weitere Auswertung gebraucht werden. Dafuer wurde ein selbstgeschriebenes Perl-script verwendet, das aber noch nicht so allgemein ist, dass es generisch fuer jedes durchgefuehrte Experiment verwendet werden konnte. Vgl. EyetrackerSoftware:beformat
Ausgehend von den durch begaze erzeugten event-Daten muessen die Daten fuer die weitere Auswertung evtl. weiterverarbeitet oder umformatiert werden. Dafuer wurden zweierlei tools verwendet:
SMI hat die Moeglichkeit im Fehlerfall ueber das Internet den IVX-Rechner remote zu steuern und zu pruefen. Fuer die online-Sitzungen sind folgende Vorkehrungen getroffen worden: