SPINE (Signal Processing in Node Environment) is a software Framework for the design and fast prototyping of Wireless Body Sensor Network (BSN) applications. SPINE enables efficient implementations of signal processing algorithms for analysis and classification of sensor data through libraries of processing functionalities. It also embed an application-level communication protocol.
SPINE is organized in two interacting macro-components, which are respectively implemented on commercially available sensor devices and on the personal coordinator (such as an Android smart-phone or tablet, or a personal computer). Communication among these devices is wireless, using the Bluetooth 2.1 or IEEE 802.15.4 standards.
The high-level SPINE API (at coordinator level) allows for dynamic and flexible configuration of sensing and processing funcionalities available at the sensor node level. Many biophysical sensors and signal processing funcionalities are natively implemented and available to application developers; in addition, the SPINE framework has been carefully designed to allow for very easy integration of new, custom-defined sensor drivers and processing funcionalities.
Sensor Platforms
SPINE supports the most popular TinyOS-enabled sensor platforms (mote):
- Shimmer (rev. 1.3 and 2R);
- TelosB/Tmote Sky;
- MicaZ.
Physical Sensors
The following physical sensors are natively supported by SPINE (each one is generally available only on specific sensor platforms):
- Accelerometers and gyroscopes, force and pressure (for postural, gesture and activity monitoring);
- Electro-cardio-gram sensor (ECG) (for cardiac monitoring);
- Electro-impedance-plethysmographic sensor (EIP) (for respiratory rhythm and volume);
- Electro-myographic sensor (EMG) (for muscolar activity);
- Photo-plethysmographic sensor (PPG) and SpO2 (pulse oximetry and blood oxygen saturation, for indirect measurement of hear-rate and breathing);
- Galvanik Skin Response sensor (GSR) (e.g. for emotion recognition);
- Environmental temperature sensor;
- Humidity sensor;
- Light sensor.
The application developer, through the SPINE API available at the coordinator, can perform data collection of the raw signals from one or multiple available sensors (even simultaneously). It is possible to configure dinamically sensor parameters such as the sampling frequency (from less than 1Hz up to about 200Hz).
Signal Processing
Depending on application needs, each sensor node can also be configured (through the SPINE API available at the coordinator) to perform simple pre-processing operations to user-selectable time windows of the sensor signals, for instance to reduce the amount of data the sensor nodes has to transmit over-the-air back to the coordinator. Specifically, SPINE provides native support for several general-purpose processing functions, including:
- Average, Median and RMS;
- Max and Min;
- Amplitude;
- Variance and standard deviation;
- Zero-crossing;
- Entropy;
- Cross-Axial Energy.
In addition, SPINE also provides some dedicated functionalities which can be applied only is certain physical sensors are available (e.g. pitch and roll features are based on accelerometry data).
Reference paper
- G. Fortino, R. Giannantonio, R. Gravina, P. Kuryloski and R. Jafari, “Enabling Effective Programming and Flexible Management of Efficient Body Sensor Network Applications,” in IEEE Transactions on Human-Machine Systems, vol. 43, no. 1, pp. 115-133, Jan. 2013, doi: 10.1109/TSMCC.2012.2215852. Awarded with A. P. Sage Best SMC Transactions Paper Award
Code Repository
Latest stable version (SPINE 1.3 release), source code and documentation are available for free download at our GitHub project.
We welcome contribution from all users, including bug reports and fixing, suggestions, and forks of SPINE.
Proposals for new sub-projects and forks should be sent via e-mail at .rgravina@dimes.unical.it by specifying a short workplan with a description of the new functionalities, the impact on existing code, and the expected time for the first stable release.
BSN research prototypes
As a middleware for the development of BSN applications, SPINE has been adopted to prototype several BSN research systems, including:
- Physical rehabilitation assistant;
- Fall detector;
- Physical activity monitor;
- Smart step-counter;
- Mental stress detector;
- ECG monitoring;
- Handshake detection system.