Download presentation
Presentation is loading. Please wait.
Published byAriel Patterson Modified over 7 years ago
1
BCI++: AN OBJECT-ORIENTED BCI PROTOTYPING FRAMEWORK
A free application for BCI research BCI++ is set of tools for the development of realtime BCIs. It was initially developed for internal use with our instruments, but it resulted so flexible and extensible that we thought it was a good idea to make it available to the BCI community. Luca Maggi, Sergio Parini, Paolo Perego Giuseppe Andreoni
2
Structure of the framework
TCP/IP Hardware Interface Module AEnima BCI++ allows the implementation of virtually any EEG based BCI. This figure shows the structure of the framework: we have an EEG Acquisition hardware, a software module, called Hardware Inteface Module, which manages the acquisition and the processing, and a second module, called AEnima, for the implementation of the user interface wich is connettected to the Hardware Interface Module by a TCP/IP connection. The hardware interface module and AEnima can run on the same computer or on two separate PC, in our experimental set-up we use two PC, one for the operator and one for the user. User interface Home automation EEG acquisition device
3
Plug in approach HIM AEnima Data acquisition 3D Driver initialization
Plot Storage & communication AEnima 3D Driver initialization Communication Graphical Triggers TCP/IP Common interface Common interface SSVEP In this presentation we shall focus on the two software module: the HIM, and AEnima. Both modules are written in C++ language using cross-platform libraries, but the actual builds are for Microsoft Windows. Each module have a core block which can’t be modified and which handles all the tasks that are common to every protocol and a common interface allows the loading of plug-ins. The Behaviour of your specific BCI system will be controlled by the plug-in your can develop. When started the two modules will load the plug-in and your BCI will run. Thanks to this approach we will have a common solid base for the platform, which will simplify the deployment of updates without rebuilding everything and will make possible to share applications and algorithms without recompilation. ERD/ERS P300 Algorithms
4
Hardware Interface Module
Hardware Interface Module (HIM): Multiplatform code using WxWidgets (Open Source LGPL); Acquisition management; Online signal plot; Real-time visualization filters; Algorithm selection; Manual triggers. Supported Hardware Kimera II G.Mobilab (G.Tec - Austria) PLE (SXT - Italy) Virtual instruments for debug and simulation More to come!! (you ask, we try) Under test: Neuroscan (Compumedics) The hardware interface module manages the EEG acquisition from the instrumentation. Using a simple interface you can control the acquisition, you can decide which algorithm to run and look at the plot of both the raw signal and of the output of the algorithm. There are also six buttons to add manual triggers. You can choose between different devices: together with our prototype KimeraII, the him also supports the G.Mobilab by G.Tec, and acqusition board by SXT sistemi per telemedicina and some virtual instruments for debug and testing purposes. We are currently testing the interface with Neuroscan by TCP/IP.
5
Algorithm Plug-IN Each algorithm is a plug-in in a separate DLL.
The base ‘Algorithm’ class exports the common interface which comprises: Processing in Matlab® and C language; Sample by sample processing (eg. Spatial and Time domain filtering); Short and long windowing with independent overlap; Automatic profiling: execution time and frequency; Automatic feedback plot; The developer have to focus on the processing only by Inheriting a specific class and implementing the desired virtual methods. While all the functions are handled by the main module, the algorithm must be specified by your plug-in. The processing is handled by a class called Algorithm from which you can inherit the common interface with the HIM and many other useful functions. The processing can be done both by C functions and by Matlab using the already included automation APIs. In order to make the use of pre-existing algorithms easier both calls based on moving windows or based on a sample by sample approach are supported. The base class automatically implements some functions witch are very handy in the in laboratory use of the system: - a performance profiling of your code (you can know how much time the execution of your algorithm requires); - the online plot of the outputs of your algorithms.
6
WIZARDS Do you need Matlab®? Shall I ask for a calibration file?
Press ‘finish’ and the wizard will generate the code for you Since the set-up of a workspace for a DLL can be difficult, we developed some Wizards for Visual Studio, which do the most of the work for you. For instance if you already have a working algorithm, you can create your own wrapper using the appropriate wizard. This slide shows a page dedicated to algorithm written in Matlab language. The first question asks if you need the initialization of the Matlab Engine, The second question asks if the algorithm must ask for a calibration of setting file at start-up In the third part you are asked to insert the name of the matlab functions you are using. When you press finish, the wizard will generate a working code for you, you will just have to compile it and to copy the DLL in the HIM folder. Insert the name of your functions
7
SPECIFIC WIZARD AVAILABLE!
AENIMA Module Is based on a multi-platform graphical engine - IrrLicht (OpenSource Graphical Engine LGPL); High level functions for a simplified creation of complex virtual environments; Uses OpenGL, DirectX and software emulation; Animated 3D mesh support, scene editor available ; Home automation enabled; The second module is AEnima and is used to develop user applications with and high level of multimedial content. The 3D rendering is managed by a free graphical engine called Irrlicht wich supports both OpenGL and DirectX. As in the HIM, we have a core module wich manages all the communication with the HIM for control and triggering and the management of the graphical engine, thus we can focus on the development of the protocol or application. A module for the control of a home automation system was also inserted. With the same approach adopted for the Hardware interface module specific wizards are available to simplify the firsts steps in the implementation of new protocols. EVEN FOR AENIMA SPECIFIC WIZARD AVAILABLE!
8
Results Depending on your need you can create very simple interfaces or complex 3D enviroments; just to give you and idea i will show you some videos. The first is a simple left/right feedback control application for the motor imagery,
9
Results The second is a more complex application in wich the feedback is replaced by a 3 dimensional representation of two hands,
10
Results the third one is the astrobrainfight application controlled by the SSVEP. The user controls the Red spaceship in order to collide with the green one and to score one point
11
Home automation Home automation system interface:
Commercially available and worldwide diffused home automation system Ease of installation Interfaced using OpenWebNet language and a RS232 compatible communication The basic function are implemented in C language As I told you before AEnima supports a library for the control of a MyHome based home automation system by BTicino using the OpenWebNet language. MyHome is quite cheap and extremely easy to install, thus we could build a simple demonstrator in the little room where we perform the acquisitions in our laboratory. In the figure we can see a planimetry, and as you can it is very small, we installed some lights, a fan and we can switch on and off the speaker of the computer.
12
Results This final video shows the control of the home automation system using the SSVEP protocol. We can see an application composed of several menues and submenues wich can be operated by controlling a cursor. The user is going to switch on some lights.
13
Conclusions and open points
The framework is free of charge: Beta version: first week of October 2008 Beta Testers Needed: please contact us at Estimated release date 15th of October on the web: We are currently closing the documentation for the beta version. We would be happy if anybody wanted to help us or to try the framework, in this case you can ask us here or send us an . In the middle of october a dedicated website with the framework and a forum should be online, finally i hope you will enjoy out logo.
14
Thank you
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.