Real-Time Arousal Detection Using Galvanic Skin Response
- Creator: Dessislava Vassileva email , Boyan Bontchev email
- Publisher: Rage project
- Owner: Sofia University email
The asset detects player’s arousal based on measured Galvanic Skin Response (GSR), or Electro-Dermal Activity (EDA), and can be used for adaptation of digital games and other affective computing applications.
Galvanic Skin Response (GSR), also referred to Electro-Dermal Activity (EDA), is directly dependent on the activity of the sweat glands and is often used to index the autonomic arousal. GSR offers a popular and affordable way for detection of player’s arousal in adaptive digital games and other affective computing applications. The asset produces some real-time features of GSR signal measured from a particular player and, as well, indicates the level of player´s arousal using a user-defined scale.
The asset produces real-time features of GSR signal measured from particular player, together with the level of player´s arousal using a user-defined scale. It receives a filtered raw signal from a simple, low-cost biofeedback device allowing sampling rate up to 0.8Khz. Measurements are carried out with two electrodes placed on two adjacent fingers. Recording, filtering and feature extraction might be executed on a computer (server) different than the game machine, in order to speed up all the required processing. The results are to be communicated from the server-side to the client component in order to be used for game adaptation.
The asset can be used for adaptation of digital games and other affective computing applications. Before starting with GSR measuring and arousal recognition, asset setup parameters should be initialized (client side). These parameters include:
- required sample rate [Hz] – the frequency of measuring the GSR signal;
- time window [s] – the length of time for calculating the moving average of arousal;
- levels of arousal scale - from 1 to N.
The applied sample rate should be less than 0.8KHz.
After a calibration period, the client-side expects to receive request for the indexed arousal level of the player and replies the found arousal level in real time. As well, the asset returns values of mean tonic activity level, phasic activity represented by mean and maximum amplitude of skin conductance response (all in micro-siemens), rate of phasic activity (response peaks/sec), SCR rise time, SCR 1/2 recovery time, and slope of tonic activity (in micro-siemens/sec). Due to the intensive computing processing required for filtering and logging of the raw signal, as far as calculation of signal features, the asset is developed with a server and client side components communicating each other via sockets.
Reported bugs will be fixed taking into account:
- identified issues will be resolved based on requests that include enough information to support replication and understanding of the problem;
- requests should be submitted through the repository “Issues” page: https://github.com/ddessy/RealTimeArousalDetectionUsingGSR/issues.
Application settings are divided into two groups - basic application settings and advanced application settings.
- The basic application settings in ./Resources/realTimeArousalDetectionAssetSettings.xml are as follows:
- SocketPort – the number of the port of the socket that will communicate with the asset;
- SocketIPAddress – IP address of the socket that will communicate with the asset;
- COMPort – define the GSR device COM port. If it has value N.A., the asset works with one random chosen COM port (but usually only one COM port is available);
- FormMode – the application run in background mode if it has value BackgroundMode;
- LogFile – path to the log file;
- DefaultTimeWindow - default value for the time window;
- SamplerateLabel - sample rate of the GSR device;
- ArousalLevel - the number of arousal levels.
- The advanced application settings in ./Resources/realTimeArousalDetectionAssetSettings.xml are as follows:
- MinGSRDeviceSignalValue - the smallest possible value that can be detected by the GSR device;
- MaxGSRDeviceSignalValue - the largest possible value that can be detected by the GSR device;
- CalibrationTimerInterval – in the calibration period it is the time interval during which the asset measures the arousal status of the current user;
- ButterworthPhasicFrequency – frequency used in the Butterworth filter for the phasic signal;
- ButterworthTonicFrequency – frequency used in the Butterworth filter for the tonic signal;
- ApplicationMode – if it has value TestWithoutDevice the asset works with data from a file (that is specified in the setting TestData), but not with real data from the GSR device;
- TestData – path to the file that specified the static GSR data when the value of the setting ApplicationMode is TestWithoutDevice.
May 1, 2017
The version 1.0.0 implies an asset integration process with following steps:
- Start the asset - start the DisplayGSRSignal.exe file by clicking onto it. The socket will be started at the port specified in the configuration file, and the device starts measuring. You can do the following:
- You can stop and start the socket alternatively by clicking the “Start/Stop socket” button.
- In order to start visualization of the GSR signal, press the “Start” button. At any moment you can stop the device by pressing the “Stop” button and, next, to start it again.
- You can switch on/off the visualization denoised signal visualization by check/uncheck the checkbox over the “Start” button.
- After stopping the device, you can use the mouse wheel in order to zoom in/out each one of the axes, while the mouse cursor is placed on graphic. For resetting the zoom on the axis X or Y, just click on the circle button in the end of the scrollbar of the corresponded axis (fig. 2).
- Check if the asset’s socket server is available;
- Run a socket client on the address (that is stated in the setting SocketIPAddress) and port (that is stated in the setting SocketPort) specified in the application settings;
- At the beginning send to the asset message with content “SOCP” for starting calibration period;
- After the calibration period send message “EOCP” for ending calibration period;
- When you need information for the status of emotional arousal of the current user send message to the asset with the content “GET_EDA”;
- At the end of arousal measurement of the current user send message “EOM”.
Apache 2.0 (Apache License 2.0)