HP Omnicept Data
Use the built in Data Logger to add additional data collected from the HP Reverb Omnicept Sensors. For the data available see this page in the Vizard Documentation. The example is adding "heartRate" to the get_additional_data function. Use a similar approach for cognitive load, or eye openness. Pupil Diameter will be added automatically.
import viz,vizfx, viztask
import settings
def setCustomTracking(boolean):
settings.CUSTOM_TRACKING_DATA = boolean
setCustomTracking(True)
from utils import sightlab
from settings import *
sightlab.is_GUI = 1
omnicept = viz.add('omnicept.dle')
eyeTracker = omnicept.addOmnicept()
def sightLabExperiment():
global logger
while True:
def get_additional_data():
heartRate = eyeTracker.getHeartRate()
return [heartRate]
yield viztask.waitKeyDown(' ')
logger = sightlab.DataLogger(sightlab.participant, sightlab.trialNumber + 1, sightlab.use_vive_pro,
additional_columns=['Heart Rate']+['FLAG'], start_time=sightlab.startTime)
viz.sendEvent(TRIAL_START_EVENT)
logger.start_logging(additional_data_func=get_additional_data)
yield viztask.waitKeyDown(' ')
viz.sendEvent(TRIAL_END_EVENT)
logger.stop_logging()
viztask.schedule(sightlab.experiment)
viztask.schedule(sightLabExperiment)
To just use SigthLab to record data from the sensors with the Omnicept while running an external application see this download link (will need to overwrite the "settings.py" file and add these files to the SightLab root folder. Example will be in ExampleScripts- Omnicept- Data_Capture_Only.py and Data_Capture_Only_gaze_mat.py (that also saves the gaze mat transform matrix)
You can then run the two data capture examples and it will save the Omnicept data to the utils/data folder. You can additional data to this as well from what's available here: https://docs.worldviz.com/vizard/latest/#Omnicept.htm?Highlight=omnicept
Select 'EyeTracking Data Only' when choosing the hardware
There's code to do a sync (by pressing 't') so that you can try to have a way to synchronize with the external application. This can be changed to a network event or some other signal as well.
Link here for that example:
https://drive.google.com/file/d/1Nt_eniOWBVumXhzza2arPEKQ4FcJhaMp/view?usp=sharing
Note: Even though you can get the eye tracker orientation data, that won't be too meaningful without the head tracker data (which does not seem possible to do in this way). Metrics like Pupil Diameter, Eye Openness and Cognitive Load would make sense though and would just require synchronization, either using a keypress, or ideally a network event.