Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
g.Nautilus integration in OpenViBE
Tutorial for adding a new driver to OpenViBE using g.Nautilus and
g.NEEDaccess
Agenda
• Hardware and Software requirements
• Preparing the driver
• Implementing the driver
• Testing the driver
Software and Hardware requirements
• Hardware– g.Nautilus
• Software– OpenViBE
– OpenViBE source files
– g.NEEDaccess Client API
– Visual Studio 2010
– Glade Interface Designer Gtk+ 2 (User Interface Designer)
Preparing the driver
The driver integration of g.Nautilus into OpenViBE was done following the corresponding tutorials/instructions from the OpenViBE project website for
– Creating a new driverhttp://openvibe.inria.fr/tutorial-creating-a-new-driver-for-the-acquisition-server/
– Configuring a new driverhttp://openvibe.inria.fr/tutorial-configuring-a-new-driver/
– Building a new driverhttp://openvibe.inria.fr/build-instructions/
Preparing the driver
Run OpenViBE Skeleton generator (installed with OpenViBE) to create driver source files (.cpp, .h and .ui files)
Enter author and company as required
Provide driver and class name, as wellas basic configuration details
Click Generate! To create files in target directory
Generate Visual Studio Project
• Create FindThirdPartyGNEEDaccessAPI.cmake file used by the compiler to find header and library files for g.Nautilus from g.NEEDaccess Client API installation folder in ./contrib/cmake-modules
• Add paths of source files in existing file ./contrib/common/contribAcquisitionServer.cmake, letting the compiler know, that the files must be included
• Declare driver in existing file ./contrib/common/contribAcquisitionServer.inl
• Install OpenViBE required dependencies using the script ./scripts/win32-install_dependencies.cmd
• Set environment variables with ./scripts/win32-init_env_command.cmd
Generate Visual Studio Project
• Generate Visual Studio project using
./scripts/win32-generate_vc_proj.cmd
• Open Visual Studio project created
• Open the files created for the new driver (CDrivergNautilusInterface.h/.cpp and CConfigurationgNautilusInterface.h/.cpp) from the openvibe-acquisition-server project to edit the code
Overview of the driver parts
• Preliminary (CDrivergNautilusInterface)– Edit driver class constructor to initialize variables needed for the driver
– Free resources in destructor if needed
– Insert driver name in getName function to have it later displayed in acquisition server combobox of available drivers
• Configuration (CConfigurationgNautilusInterface)– Opens the dedicated GUI for device configuration
– Uses preConfigure function to get device capabilities and make them available in the configuration dialog
– After configuration is done, postConfigure function gets settings from the user interface
• Acquisition (CDrivergNautilusInterface)– Initialize driver, connect to device, set configuration
– Start acquisition
– Data acquisition loop to get data as long as data acquisition is running
– Stop acquisition
– Disconnect from device, do cleanup
g.NAUTILUS
32/16/8 channel wireless EEG/ExG, 3-axis accelerometer
24 bit accuracy at 250/500 Hz
a new benchmark in usability
the only wireless system with active electrode technology
g.tec's unique internal Z check with active electrodes
waterproof device with contactless charging
8 hours continuous recording and 2-3 hours charging
2.4 GHz digital transmission, range: 10 meters indoor
full integration into g.tec's software environment
g.NAUTILUS – dry electrode version
Based on g.SAHARA technology
Fast assembling speed
No gel required
Better artifact resistance due to Lightweight system, active Electrodes and short cables
No hair washing
g.NAUTILUS – 64 channels
Flexible positioning with g.SCARABEO electrodes
Run OpenViBE Acquisition Server And Designer
After building the project start OpenViBE Acquisition Server with openvibe-acquisition-server.cmd and OpenViBE Designer with openvibe-designer.cmd from destination folder
Configure g.Nautilus in acquisition server
• The OpenViBE Acquisition Server provides driver configuration (Driver Porperties button) and data acquisition settings
• In Driver combobox select „g.tec g.Nautilus using g.NEEDaccess“ and configure device using Driver Properties button
Main g.Nautilus configuration dialog
Main configuration dialog provides basic settings for subject and amplifier as well as filter and channel specific settings in further dialogs
Identifier, Age and Gender are properties required by OpenViBEDevice serial displays the connected g.NautilusSample rate: sample rates for the connected deviceInput source: Electrode, Testsignal or Shortcut as recorded signalsNetwork channel: channel used for connection between base station and headsetNumber of channels: corresponds to the number of channels selected for acquisition.Event channel: digital inputs of g.NautilusNoise reduction: enables selection of channels used for noise reductionCAR: allows to select channels for common average referenceAccleration data: displays accelerations (3D) recorded by headsetLink quality: quality of connection between base station and headsetBattery level: power remaining in the headsetValidation indicator: indicating reliability of data transmitted by headset
Select channels and settings for bipolar, CAR and noise reduction
• Channel specific settings can be changed in the „Select channels and settings for bipolar, CAR and noise reduction“ dialog
Channel section checkboxes enable user to exclude channels from acquisition.
Bipolar channel provides the possibilty to select a channel for bipolar derivation for each channel
CAR is enabled if corresponding checkboxes in main dialog are enabled
CAR checkboxes let the user decide which channel to use for common average reference
Select sensitivity and filter settings for all EEG ChannelsSenstivity and filters (bandpass and notch) can be chosen in the „Select sensitivity and filter settings for EEG channels“ dialog
Sensitvity combobox provides device specific sensitivity for EEG channels
Bandpass filter combobox provides a wide range of bandpass filters for EEG channels
Notch filter combobox enables used to chose either 50 or 60 Hz notch filter
Connect to g.Nautilus and start acquisition
• Click Connect (Verbinden) in the OpenViBE acquisition server to connect to g.Nautilus
• Start acquisition with the Play (Wiedergabe) button
Check data recorded in OpenViBE Designer
Set up signal display using OpenViBE designer
Insert Acquisition client(taken from Acquisition and Network I/O) and Signal display (taken from Visualization->Basic) for testing the data acquisition
Make sure acquisition server is running and start executing the current scenario
Display signals acquired
See acquired signals in OpenViBE Signal Display
Picture above provides signal display of 32 EEG channels, 3 acceleration sensor channels, counter, link quality, battery level, digital inputs and validation indicator
Close signal display and stop data streaming
Stop OpenViBE displaying signals (this closes Signal Display automatically)
Stop acquisition and disconnect
• Click Stopp to end data acquisition
• Click Disconnect (Trennen) to disconnect from device