Description: The switched-beam directional antenna in the figure was developed in collaboration
with the MicLab at the Università degli Studi di Firenze. The antenna
implements an indoor localization system that works using a single
anchor node. Thanks to the 3D arrangement of the faces, the system
can estimate both the azimuth and elevation Angle of Arrival (AOA)
of the messages transmitted by a target node. The AOA information
collected by the antenna is sufficient for absolute 2D target localization
and tracking. A paper describing the system will soon appear on
IEEE Communications Letters.
Description: This is an indoor-localization
application developed in collaboration with Intel Corp. The goal is to
track a mobile target in a dense sensor deployment with 50 anchor
nodes. Despite the large number of reference devices, multi-path
propagation due to reflections from the metallic walls makes localization
challenging. We are currently investigating and comparing different
localization techniques. Preliminary results are available here.
Description: I designed this board during the 2007 summer internship at Motorola Labs, Tempe, AZ.
The module contains a low power 16-bit microcontroller (TI MSP430F23x0),
an IEEE 802.15.4/ZigBee compatible radio (Maxstream XBee/XBee Pro),
and a Bluetooth transceiver (BlueRadios BR-C40A). The board is designed to support indoor localization. In particular,
the two radios can be used to localize both sensor nodes (using
the XBee radio) and mobile users carrying Bluetooth
enabled devices (using the BR-C40A radio). Networking software
to support multi-hop routing is written in C++/Assembler.
Year: 2007
Language: C++/Assembler
Range-Free Localization Using Self-Organizing Maps
Description:
The Self-Organizing Map (SOM) is a neural network paradigm that has found numerous applications in the context of exploratory data analysis, pattern recognition and vector quantization. The SOM technique also implements a natural solution to the problem of estimating the node positions in ad-hoc networks using connectivity data. The SOM approach is lightweight, works with or without anchor nodes, and has proven effective in a variety of simulated scenarios. A paper describing the SOM solution applied to localization is available here.
Description:
In many Wireless Sensor Network applications a PC collects the information gathered by the sensors and displays the
results to the user. During
my 2006 summer internship at Motorola Labs, Tempe, AZ, I worked on a project where the PC
is replaced by a phone. The connection between the phone and the
WSN is made possible by a Bluetooth Radio module installed
on one of the sensor nodes. Sensor data such as temperature, light, battery
voltage, CO2 level, and received signal strength are displayed in
real-time on the phone's screen. The application on the phone is written in J2ME; in addition to visualization purposes,
it allows sending commands to the wireless network (e.g. to change the sampling
period of the nodes). A short paper describing the project can be
found here.
Year: 2006
Language: nesC/TinyOS, Java (J2ME)
The video shows the software running on the phone. Sensor readings are displayed in real time thanks to the Bluetooth connection with the WSN gateway. Note the sensor #9 shown at the end. It measures the CO2, and the reported level increases after blowing on the sensor. The software version shown in the video was developed using Visual Studio .NET.
close video
Angle of Arrival Estimation using Directional Antennas
Description: This software implements a system for Angle of Arrival estimation using commercially available sensor nodes (TelosB) and a directional antenna. A description of the antenna can be found here. The software running on the sensor boards, written in nesC/TinyOS, enables collection of Received Signal Strength (RSS) measurements through bursts of radio messages exchanged on the four antenna faces. By comparing the RSS values with the radiation patterns of the antenna, the direction of the incoming signal can be estimated. In our experiments we used the Multiple Signal Classification (MUSIC) technique and a custom implementation of a Least Squares estimator. In environments without strong multi-path components, the system is able to estimate the angle of the transmitting node with an average error as low as 5-6 degrees.
Year: 2006
Language: nesC/TinyOS, Java
A short video showing the GUI software, written in JAVA, that control the messages exchanges and display real-time values of the RSS value measured.
Description:
The term Localization, or geolocation, refers to the task of computing the position of a set of sensors when GPS is not available. To this purpose, a set of proximity constraints or distance measurements are collected between neighbor nodes. In
this localization solution, the sensor network is modeled as a mesh of masses
connected by springs. Each mass point represents a sensor node,
while each spring connecting couple of nodes represents the available measurement (proximity or distance estimates). The
node positions are computed by iteratively relaxing the forces that
acts on the masses.
The software shows the estimated node positions computed using a spring-mass model. When the system is initialized with the true node locations, the estimates converge to a stable equilibrium. In the video you can see some nodes being pulled away from their positions and rapidly going back to their initial locations. Note that the spring-mass approach does not work when starting from randomly initialized positions. It's almost impossible to untangle the nodes, even by manually trying to adjust some of their positions.
Description: In this demo application an Intel Imote is used to demonstrate Bluetooth
connectivity with a PDA. The mote generates random data (think about
that as possible sensor readings) that are displayed in real-time
on the PDA's screen (Dell Axim x30). The software running on the
Imote, written in nesC, contains a custom implementation of
the Bluetooth Service Discovery Protocol (SDP). Other layers of the Bluetooth stack were implemented
by Intel Research groups. The software running on the PDA is written
in Java. The Java Virtual Machine running on the PDA is the J9 from
IBM.
Year: 2005
Language: nesC/TinyOS, Java
The PDA interface is also used to control the transmission rate of the Imote. Note the max throughtput of about 1000 byte/sec. At some point I disable the scren refresh, and the througthput increases to about 2000 byte/sec.
Description: Three Java applets embedded in an HTML page are used to show
sensor data collected by a remote Wireless Sensor Network. The first
applet provides a graphical representation of the network topology.
It shows the routes used by each sensor to forward the data to the
base station. The second applet displays real time plots of the sensed
values: temperature, light, CO2 level, battery
Level, and Received Signal Strength (RSS). Finally, the third applet
generates
automatic email alerts when some of the sensor readings trigger user-defined thresholds.
Description: NirEditor is an XML editor for legislative drafting developed within
the NIR (Norme in Rete) project. The software, implemented in collaboration
with a research group at the ITTIG-CNR, is a tool that simplifies
editing and maintenance of complex legal documents. The editor ensures compliance
with the Document Type Definition (DTD) used to standardize electronic accessible
documents in the Italian guiridic system.
Description: This software uses a custom implementation of the Finite Element
Method (FEM) to simulate transient heat propagation in 3D structures.
It has been used to simulate
the thermal processes that regulate the DNA amplification reaction
(PCR = Polymerase Chain Reaction). The simulator can also be used as a tool to optimize the design of new
heaters and reaction chips for PCR. The software includes a simple
mesh generator tools and 2D/3D viewers for the
simulated thermal processes. A VRML module is used to provide interactive
models of the three-dimensional structures interested by heat propagation.
Description: This application provides a platform for the thermal control of
PCR in plastic micro-devices. The
system has been effectively used to regulate fast thermal processes
(up to 30C/s), thus significantly reducing the time required by the DNA
amplification. Along with the control functionalities, analysis
and benchmark tools are included to facilitate development of more efficient PCR solutions. A flexible reaction
protocol management is available.
Description: The term Reinforcement Learning (RL) refers to a class of algorithms that dynamically learn to solve a problem. Differently from other supervised techniques, the training is not based on samples. Reinforcement learning relies on a reward function that measures how well the solution is performing. The application in the figure uses RL to control the temperature of an unknown system. The goal is to reach the setpoint in the shortest time possible and limiting the overshoot. This was a preliminary study to implement an embedded temperature controller for the Polymerase Chain Reaction (PCR) project described here.
Description: Communicating Modular
Timed Petri Networks (CMTPN) are oriented graphs used to model concurrent
systems. They are often used to simulate
and verify systems subjected to complex temporal constraints. This
editor has been developed as a tool for the visual editing of large
CMTPNs. An intuitive GUI and a rich set of
editing functionalities (cut, copy, paste, drag and drop, undo,
redo, ...) has been implemented to facilitate the editing of CMPTN
drawings.
Description: This project relies
on Continuous Hidden Markov Models (CHMM) to implement a Speaker
Verification algorithm. The application's goal is to authenticate users
identity by analyzing their voices. A few utterances of a test phrase
are needed to train the system. The vocal signal is first processed
with a FFT-based algorithm for the extraction of a set of characterizing
features. The features are then used to train the CHMM and
create a statistical model describing the user's speech. During the verification phase the user is requested to repeat
the test phrase, which is matched against the stored model to verify the claimed identity.
Description: This Video Analysis
software was created to discover the presence of text captions within
digital videos. Each frame is analyzed
with a heuristic algorithm to quickly identify block
of texts superimposed on the images. A database containing the caption
images and their temporal location is created as result of the analysis.
Description: This software was
created for a subtitling company who needed a tool for the temporal
synchronization of subtitles with digital video. The application
implements a graphical user interface that allows to interactively
change the position of subtitles using scrollable timeline.
Year:
Language: Ms Visual C++ / ActiveX
Automatic Speech Recognition
Description: The Speech Recognition
task consists in the conversion of a speech signal into text. This
software implements a Speech Recognition algorithm that uses Neural
Networks and a preprocessing algorithm based on FFT (Fast Fourier
Transform) for the extraction of significant parameters from the
vocal signal. The neural networks are initially trained using the
features extracted from short segments of voice containing several
utterances of the different phonemes composing the Italian language.
After the initial training phase, the software can be use to process
longer speech sample that are then converted into text. The software
is user-dependent, so it can only recognize the voice of the user
who trained the system.
Description: An algorithm based
on fractal geometry is used to create random topological maps. These
maps are then rendered using 3D techniques that produce realistic
images of virtual landscapes. The images reported were created
using a 80286 PC with 1MB of Ram and a video card capable of 640x480
w 256 colors.