Openvibe Intro
Total Page:16
File Type:pdf, Size:1020Kb
1 Introduction to OpenViBE Jussi T. Lindgren, PhD [email protected] HYBRID / Inria Rennes J. T. Lindgren / OpenViBE 1 2 Part I What is OpenViBE? J. T. Lindgren / OpenViBE 2 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 2 3 An open source software platform for BCI Enjoyed by research labs, clinicians, teachers, game developers and hobbyists worldwide J. T. Lindgren / OpenViBE 3 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 3 4 OpenViBE Team 2013 Coordination at Inria (group HYBRID @ Rennes, France) • http://team.inria.fr/hybrid/ • Primary research area: Virtual Reality • Project leader: Anatole Lécuyer • OpenViBE lead engineers: Jozef Legény & Jussi T. Lindgren Landscape at Inria: • Involved teams : HYBRID (Rennes), ATHENA (Sophia), POTIOC (Bordeaux), NEUROSYS (Nancy) • Involved personnel: 5 researchers & 5 developers Industry: • Earlier OpenViBE developers Yann Renard & Laurent Bonnet now work at a related startup J. T. Lindgren / OpenViBE 4 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 4 5 Key features of OpenViBE • Data acquisition from various biosignal devices • Graphical design of signal processing chains • Plugins for DSP, classification, visualization and more • Online and offline data processing • Core in C++. Interfaces with script languages and various file formats. J. T. Lindgren / OpenViBE 5 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 5 Computer A or B 6 Client (”Designer”) Architecture Network acquisition ACME Amplifier TCP/IP Filter Computer A Server Classifier ACME Display Driver VRPN server • Boxes are plugins • Solid arrows denote EBML- encoded streams of different Arbitrary DAG designs are possible types (signal, stimulation, ...) (Shown chain is for illustration only) J. T. Lindgren / OpenViBE 6 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 6 7 Server: Its mostly about drivers Vendor Devices BrainMaster Atlantis, Discovery Brain Products actiCHamp, BrainAmp, ... Emotiv EPOC g.Tec gUSBamp, gMobilab+ MicroMed SD LTM MindMedia NeXus32B NeuroSky MindSet (MindWave in SVN) OpenEEG MonolithEEG, Modular EEG P2 TMSi Porti32 + more unstable, unsupported & beta drivers + drift correction, software tagging, … J. T. Lindgren / OpenViBE 7 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 7 8 “Designer” Client Make your own DSP chains No programming skills required J. T. Lindgren / OpenViBE 8 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 8 9 Client plugins include DSP Basic math, detrending, epoching, spatial and temporal filters, spectral analysis, signal generators, statistics, FastICA, windowing, ... Visualizations Signal, Power Spectrum, Graz, Matrix, Topographic Maps: 2D & 3D, Cue Image, Voxel Display, ... Classifiers SVM, LDA Other Script language interfaces, file I/O, etc ... J. T. Lindgren / OpenViBE 9 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 9 10 Client: Various real-time displays J. T. Lindgren / OpenViBE 10 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 10 11 Some approaches implemented on OpenViBE P300 Neurofeedback SSVEP Motor Imagery J. T. Lindgren / OpenViBE 11 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 11 12 OS’es & dev-tools supported Linux: source only GNU C++ build environment required Ubuntu: LTS & latest. Fedora: 2 latest Windows: binary available or compile with MSVC In SVN: Visual Studio IDE support (release in June-July 2013) Windows XP & Windows 7 J. T. Lindgren / OpenViBE 12 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 12 13 Software requirements • Mandatory dependencies • Server: Cmake, Boost, GTK • Client: Cmake, Boost, Ogre, OIS, CEGUI, GTK, Expat • Strong recommendations • Client: VRPN, ITPP • Optional • Client: ALUT, Eigen3, Lua, Matlab, Python27, Vorbis • On Linux, most dependencies are used from distribution packages or downloaded by the installer • On Windows, the installer downloads the deps J. T. Lindgren / OpenViBE 13 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 13 14 License v0.15.0 and before: Codebase mostly under LGPL 2 Some plugins under GPL2 Near future: The whole codebase will likely switch to Want to see your code in the OpenViBE distribution? • New stuff : New plugins, drivers, scenarios and applications can be freely contributed. You keep your rights. • Changes to core components: Rights transfer to Inria required J. T. Lindgren / OpenViBE 14 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 14 15 Commitment to OpenViBE • Past development effort: ≈ 22 man-years at Inria (and various multi-partner projects since 2005) • On-going support (2013-2015): 4 Inria engineers with 100% allocation to OpenViBE • Inria startup: Mensia Technologies (launched in Nov 2012) can support commercial users of OpenViBE More information at http://openvibe.inria.fr J. T. Lindgren / OpenViBE 15 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 15 16 Part II Interoperability J. T. Lindgren / OpenViBE 16 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 16 17 Current I/O plugins in OpenViBE File I/O Direct I/O Format Read Write Type Read Write BCI2000 X Lua Stim Stim BCI comp. IIIb ASCII Matlab X X Brainamp X Python X X TCP/IP EBML CSV X X VRPN X X EDF X GDF X X OV (≈ EBML) X X Raw X J. T. Lindgren / OpenViBE 17 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 17 18 Understanding OpenViBE Well-defined kernel interfaces and stream specifications exist Good to know… • OpenViBE uses 32:32 fixed point simulated time, in seconds • OpenViBE .ov files are catenated EBML chunks w/o headers • There is no SDK: build against the OpenViBE source tarball User and developer documentation gets you started http://openvibe.inria.fr/documentation-index/ J. T. Lindgren / OpenViBE 18 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 18 19 Making OpenViBE understand ‘XYZ’ Plugin contributions are very welcome E.g. • Readers/writers for new file formats • Language plugins (like Matlab & Python boxes) • Boxes to pass data to/from external software • Drivers that actually read from another application • TiA plugin already exists as an extension from Gipsa-Lab J. T. Lindgren / OpenViBE 19 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 19 20 We’re happy to collaborate on developments Catch us by email, forum, or IRC http://openvibe.inria.fr/contact/ J. T. Lindgren / OpenViBE 20 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 20 .