Is it possible to collect EEG data using a third-party EEG system while a subject performs a task in a KINARM Lab? If so, how do I synchronize data between the two systems, and is it possible to have online real-time control of the KINARM Lab using EEG-derived signals?
A number of BKIN customers have successfully recorded EEG data from subjects while using a KINARM Lab. Depending on the goals/needs, there are a couple of considerations about what is possible and how to achieve it.
Because the KINARM Lab has fewer data acquisition channels (i.e. analog inputs) than is typically required for EEG recordings, a separate EEG recording system is needed. However, that can result in separate data files: one with EEG data and one with KINARM data. Because no two clocks are every perfectly synchronized, this separation of data requires post-experiment synchronization for proper data analysis. There are a number of possible approaches that can be used to solve/avoid this problem.
- The most common approach is to use digital I/O channels to sync the EEG data with the KINARM data. KINARM Labs include a number of digital output channels, so this approach requires an EEG system that can record external digital inputs. The KINARM Lab can be programmed to use these channels in multiple ways, for example:
- To send a pulse on digital channel 1 to indicate trial start and to also send a pulse every xxx ms on digital channel 2 to provide a “clock” signal
- To send digital channel 1 high for as long as EEG recording is desired and to also send a pulse every xxx ms on digital channel 2 to provide a “clock” signal
- Any other combination of digital channel controls (i.e. the KINARM Lab can be programmed to control digital pulses at a max rate of 4 kHz).
- It is also possible to use digital I/O channels to send digital words (e.g. 8-bit or 16-bit signals). As with the prior solution, this approach requires an EEG system that can record digital signals that 8 or 16-bit wide.
- Another option is to connect the EEG and KINARM Labs using Ethernet and send data or synchronization pulses via UDP. This approach requires an EEG system that can either stream out data over UDP, or receive and record data over UDP. The KINARM Lab can be programmed to either send and/or receive customized UDP packets, which can be used to:
- Send synchronization packets, analogous to the digital I/O described above.
- Send all KINARM data from the KINARM Lab to the EEG so that the EEG system saves all data in a single data file (thus avoiding the need to synchronize data post-experiment).
- Send some pre-processed EEG data to the KINARM Lab so that the KINARM lab saves all data in a single data file (also avoiding the need to synchronize data post-experiment)..
Online control of a KINARM robot using EEG:
It is possible to control the KINARM robot, in real-time, using EEG data. As per above, there will need to be an external EEG system capable of recording and analyzing the EEG data. There are then a couple of options for sending a “command” from that EEG data back to the KINARM Lab to provide real-time control.
- Send the command from the EEG to the KINARM Lab via analog signals. This approach requires an EEG system with analog outputs. KINARM Labs are available with an optional analog input module, so the EEG system would have to analyze the data and then convert that analysis into a desired “command” signal (e.g. force in the x and y directions) as analog outputs. The KINARM Lab would then have to be programmed to use those analog inputs as input commands.
- Send the command from EEG to the KINARM Lab via UDP. This solution is similar to the analog signals solution, but the communication would be via Ethernet and UDP. As per above, the KINARM Lab can be programmed to receive and interpret and UDP packet, so this approach would require an EEG system that is capable of turning the desired “command” into a UDP packet.