Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it - Brian Wilson Kernighan
WSNs
Compression Algorithms for Biosignals acquired from Wearable IoT Devices
Wearable Internet of Things (IoT) devices permit the massive collection of biosignals (e.g., heart-rate, oxygen level, respiration, blood pressure, photo-plethysmographic signal, etc.) at low cost. These, can be used to help address the individual fitness needs of the users and can be exploited within personalized healthcare plans. In our recent research activity, we have developed algorithms for the lightweight and efficient (lossy) compression of these signals. Below, you will find the link to a Matalb demo code that we used to demonstrate the strikingly good performance of our signal compression technique based on denoising autoencoders [SPL15]. ECG and PPG signals from the Physionet database and our own collected traces from a Zpehyr BioHarness 3 chestband were used for the tests.
- Developers: Davide Del Testa, Michele Rossi
- Download: Matlab code (downloadable as a Media file from IEEExplore)
Papers
- [SPL15] Davide Del Testa, Michele Rossi, Lightweight Lossy Compression of Biometric Patterns via Denoising Autoencoders. IEEE Signal Processing Letters, Vol. 22, No. 12, September 2015.
Compressive Data Gathering
Compressive Sensing (CS) is an efficient signal processing technique for the acquistion and reconstruction of signals. Since 2009, we have designed several CS-based compression strategies, using them to efficiently gather data in distributed (multi-hop) Wireless Sensor Networks (WSNs). For an efficient utilization of CS, it is of utmost importance to find a suitable transformation basis under which the signal of interest is sparse. Typically, standard transforms such as FFT and DCT do a good job for video signals, but in [ITA09] we found that this is not the case for environmental WSN signals, and this substantially affects the performance of CS recovery algorithms in WSNs. To solve this, in [TW12] Principal Component Analysis (PCA) was used to find good sparsification bases "on-the-fly", i.e., by analyzing (at runtime) the signal that is being sampled. This made it possible to efficiently use CS in WSNs but we noted that there was still room for improvement. In the recent paper [SE15], we further enhanced the technique of [TW12] by refining they way in which we capture the spatio-temporal correlation properties of the WSN field. To do that, we combined covariogram estimation techniques (geostatistics) with another recent technique from the literature, which is called "Kronecker CS". This led to a very efficient CS sampling and compression algorithm (that in [SE15] is compared against popular compression algorithms from the literature as well as with several CS variants).
Next, you can find our implementation of the NESTA CS recovery algorithm [CS1] and as well the Matlab code [CS2] that we used in [SE15] to assess the performance of our Covariogram-based CS (and other compression algorithms) for correlated spatio-temporal signals.
[CS1] NESTA CS recovery algorithm
- Developers: Davide Zordan, Marco Visonà, Riccardo Masiero, Giorgio Quer, Michele Rossi
- Download: D. Zordan, G. Quer, R. Masiero, and M. Rossi, C++ Implementation of the NESTA Algorithm for Signal Recovery through Compressive Sensing [92 kB], May 2010. License: Software License.
[CS2] Covariogram-based CS
- Developers: Davide Zordan, Mohsen Hooshmand, Michele Rossi
- Download: CS simulation framework [319 kB], February 2016.
Our papers
- [SE15] Mohsen Hooshmand, Michele Rossi, Davide Zordan, Michele Zorzi, Covariogram-based Compressive Sensing for Environmental Wireless Sensor Networks. IEEE Sensors, Vol. 16, No. 6, March 2016.
- Michele Rossi, Mohsen Hooshmand, Davide Zordan, Michele Zorzi, Evaluating the Gap Between Compressive Sensing and Distributed Source Coding in WSN. IEEE International Conference on Computing, Networking and Communications (ICNC), February 16-19, Anaheim, California, US, 2015.
- [TW12] Giorgio Quer, Riccardo Masiero, Gianluigi Pillonetto, Michele Rossi and Michele Zorzi, Sensing, Compression and Recovery for WSNs: Sparse Signal Modeling and Monitoring Framework, IEEE Transactions on Wireless Communications Vol. 11, No. 10, October 2012, pp: 3447-3461. Real World WSN Signals used in the paper, see also the acknowledgments.
- Riccardo Masiero, Giorgio Quer, Daniele Munaretto, Michele Rossi, Jörg Widmer and Michele Zorzi, Data Acquisition through joint Compressive Sensing and Principal Component Analysis, IEEE GLOBECOM 2009, Honolulu, Hawaii, US, Nov. 30-Dec. 4, 2009.
- Riccardo Masiero, Giorgio Quer, Michele Rossi, Michele Zorzi, A Bayesian Analysis of Compressive Sensing Data Recovery in Wireless Sensor Networks, IEEE SASN 2009, Saint Petersburg, Russia, Oct. 12-14, 2009.
- [ITA09] Giorgio Quer, Riccardo Masiero, Daniele Munaretto, Michele Rossi, Joerg Widmer and Michele Zorzi, On the Interplay Between Routing and Signal Representation for Compressive Sensing in Wireless Sensor Networks, Workshop on Information Theory and Applications, Information Theory and Applications Workshop (ITA) 2009, San Diego, CA, US, Feb. 8-13, 2009.
Acknowledgments: the work on CS has been funded in part by the University of Padova, through the project "MOSAICS: MOnitoring Sensor and Actuator networks through Integrated Compressive Sensing and data gatering" (grant. no. CDPA 094077, 2009-2011).
Modeling and Generation of Space-Time WSN Signals
In the past few years, a large number of networking protocols for data gathering through aggregation, compression and recovery in Wireless Sensor Networks (WSNs) have utilized the spatio-temporal statistics of real world signals in order to achieve good performance in terms of energy savings and improved signal reconstruction accuracy. Nevertheless, little has been said in terms of suitable spatio-temporal models of the signals of interest. These models are very useful to prove the effectiveness of the proposed data gathering solutions as they can be used in the design of accurate simulation tools for WSNs. In addition, they can also be considered as reference models to prove theoretical results for data gathering algorithms. We addressed this gap by devising a mathematical model for real world signals that are correlated in space and time. Our method allows one to reproduce synthetic signals with tunable correlation characteristics. The accuracy of this method has been tested through analysis and comparison against large data sets from real world testbeds. A scientific paper has been published to IEEE GLOBECOM 2011 (see below). Next, you can download the Matlab code of our signal generation tool.
- Developer: Davide Zordan.
- Acknowledgements: this work has been funded in part by the University of Padova, through the project "MOSAICS: MOnitoring Sensor and Actuator networks through Integrated Compressive Sensing and data gatering" (grant. no. CDPA 094077, 2009-2011).
- Download: Matlab code for the generation of Space-Time correlated WSN data [2.3 MB]
Papers
Davide Zordan, Giorgio Quer, Michele Zorzi and Michele Rossi, Modeling and Generation of Space-Time Correlated Signals for Sensor Network Fields, IEEE GLOBECOM 2011, Houston, Texas, US, 5-9 December 2011.
CoAP implementation for TinyOS
This TinyOS library is a nesC implementation of the CoAP-01 draft currently being discussed by the IETF Core working group. It is designed to handle up to COAP_MAX_TRANSACTION concurrent transactions (default: 5). The library offers two different interfaces CoAPClient and CoAPServer, which respectively implement client and server functionalities. The implementation of the actual client and server functions are merged in the library to enable high code-reuse thus minimizing RAM/ROM occupation. This implementation has been tested on the telosb platform.
- Developers: Angelo P. Castellani, Mattia Gheda
- Features: ROM: 2668 kB, RAM: 1801 kB (with default values)
- Download: https://telecom.dei.unipd.it/tlcrepos/castellani/iot/coap (user=password=guest)
Papers
- Angelo P. Castellani, Mattia Gheda, Nicola Bui, Michele Rossi and Michele Zorzi, Web Services for the Internet of Things through CoAP and EXI, IEEE ICC 2011 Workshop on Embedding the Real World into the Future Internet (RWFI-2011). Kyoto, Japan, 5-9 June, 2011.
Synapse: wireless reprogramming for WSNs
Synapse++ is a reprogramming system for wireless sensor networks (WSNs) exploiting Fountain Codes (FCs). These allow it to scale in highly populated and noisy networks. In order to speed up the decoding process and decrease its computational complexity, we engineered the FC encoding distribution through a genetic optimization approach, so as to make FCs usable in resource constrained sensor nodes. Further, novel channel access and pipelining techniques have been jointly designed so as to fully exploit the benefits of FCs, mitigate the hidden terminal problem and reduce the number of collisions. All of this makes it possible for Synapse to recover data over multiple hops through overhearing by limiting, as much as possible, the number of explicit retransmissions. Synapse also features new bootloader and memory management modules which makes it possible to load and disseminate program images written using any language. Below, you can download the TinyOSv2 implementation of the Synapse reprogramming suite.
- Developers: Giovanni Zanca, Nicola Bui, Riccardo Crepaldi, Michele Rossi.
- Download:
- Synapse and installation script [404.9 kB]
- Installation and usage manual [250.2 kB]
- License
Papers
- Michele Rossi, Nicola Bui, Giovanni Zanca, Luca Stabellini, Riccardo Crepaldi and Michele Zorzi, SYNAPSE++: Code Dissemination in Wireless Sensor Networks using Fountain Codes, IEEE Transactions on Mobile Computing, Vol. 9, No. 12, December 2010, pp: 1749-1765.
- Michele Rossi, Giovanni Zanca, Luca Stabellini, Riccardo Crepaldi, Albert F. Harris III, and Michele Zorzi, SYNAPSE: A Network Reprogramming Protocol for Wireless Sensor Networks using Fountain Codes, IEEE SECON 2008, San Francisco, California, US. June 16-20, 2008.
Demos
- Nicola Bui, Cristiano Tapparello, Michele Rossi and Michele Zorzi, Reprogramming over the Air and Sensor Island Management through SYNAPSE++, Demo Abstract, IEEE SECON, Rome, Italy. June 22-26, 2009.
- Riccardo Crepaldi, Albert F. Harris III, Michele Rossi, Giovanni Zanca and Michele Zorzi, Fountain Reprogramming Protocol: a Reliable Data Dissemination Scheme for Wireless Sensor Networks Using Fountain Codes, Demo Abstract, ACM SenSys, Sydney, Australia. Nov. 6-9, 2007.
Secure Code Update
Secure Code Update (SCU) is a secure wireless reprogramming system for Wireless Sensor Networks (WSNs). This solution achieves different security goals. 1) Through a dedicated authentication protocol it provides protection against the corruption of code images during their dissemination. Authentication routines exploit a lightweight asymmetric T-time signature algorithm and allow the out-of-order reception of data blocks. 2) Confidentiality is provided through the implementation of a lightweight symmetric encryption suite, designed to leverage the processing capabilities offered by IEEE 802.15.4 radios. 3) Also, SCU offers protection against denial of service attacks at the data link layer.
- Developers: Moreno Dissegna, Nicola Bui, Michele Rossi
- Download: SCU TinyOS Source Code [3.5 MB]
Papers
- Nicola Bui, Moreno Dissegna, Michele Rossi, Osman Ugus and Michele Zorzi, An Integrated System for Secure Code Distribution in Wireless Sensor Networks, Sixth IEEE PerCom Workshop on Pervasive Wireless Networking (PWN) 2010, Mannheim, Germany, April 2, 2010.
Optimization Software
Stochastic Shortest Path Solver
This code implements the Stochastic Shortest Path (SSP) solver proposed in [SSP] and is based on the Focused Real Time Dynamic Programming algorithm of [FRTDP]. This is an optimized algorithm to solve SSP problems having a very large state space (successful tests have been run for up to 1 billion of states). The code below can be used to obtain the results of [SSP] and can be easily modified to solve any other SSP problem. Our implementation uses the Boost C++ Libraries, which must be installed to successfully compile the code.
- Developers: Cristiano Tapparello, Michele Rossi
- Source code [25kB]
- How-to
Papers
- [SSP] Michele Rossi, Cristiano Tapparello, Stefano Tomasin, On Optimal Cooperator Selection Policies for Multi-Hop Ad Hoc Networks, IEEE Transactions on Wireless Communications. Vol. 10, No. 2, February 2011, pp: 506-518.
- [FRTDP] T. Smith and R. G. Simmons, Focused real-time dynamic programming for MDPs: squeezing more out of a heuristic, in Proc. National Conference on Artificial Intelligence, Boston, MA, July 2006.
Misc
SolarStat: Modeling Photovoltaic Sources through Stochastic Markov Processes
The Matlab code below implements a tool to derive simple but yet accurate stochastic Markov processes for the description of the energy scavenged by outdoor solar sources. In particular, we target photovoltaic panels with small form factors, as those exploited by embedded communication devices such as wireless sensor nodes or, concerning modern cellular system technology, by small-cells. Our models are especially useful for the theoretical investigation and the simulation of energetically self-sufficient communication systems including these devices. The Markov models that can be obtained with SolarStat are obtained from solar radiation databases. Below, you can download the Matlab code along with the solar radiance data from NREL: The National Renewable Energy Laboratory for years 1999 to 2010 for several locations in the US (Chicago, Los Angeles, Odessa, Reno and New York). These radiance patterns are already formatted and ready for being used with the SolarStat tool. A paper describing the adopted methodology and the results that we have obtained is available below.
- Developers: Marco Gianfreda, Marco Miozzo, Michele Rossi
- Download: Source Code [48.1 MB]
Papers
- Marco Miozzo, Davide Zordan, Paolo Dini and Michele Rossi, SolarStat: Modeling Photovoltaic Sources through Stochastic Markov Processes. IEEE ENERGYCON, IEEE Energy Conference, May 13-16, Dubrovnik, Croatia, 2014.