Projects gallery

Switched-Beam Antenna for Indoor Localization



Related paper (PDF)


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.

Year: 2008

Language: MATLAB


Indoor Tracking


Click to see project's website


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.

Year: 2008

Language: MATLAB

 

Board for Indoor Localization

larger picture


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

click to start flash video


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.

Year: 2007

Language: MATLAB

 

Phone Based Monitoring Application

click to start flash video

larger picture


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)

 

Angle of Arrival Estimation using Directional Antennas

larger picture


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

 

Spring-Mass Based Sensor Localization

larger picture


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.

Year: 2006

Language: Java

 

Bluetooth Connectivity (Intel Imote)


larger picture


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

 

Web-Based Remote Monitoring Application



larger picture


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.

Year: 2005

Language: nesC/TinyOS, Java

 

NirEditor



larger picture


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.

Year: 2004

Language: Java

 

   
 Finite Element Heat Simulation



Click to see project's website


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.

Year: 2003

Language: Matlab / C++

 

   
 PCR Control



Click to see project's website


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.

Year: 2002

Language: Ms Visual C++

 

   
 Reinforcement Learning



larger picture


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.

Year: 2002

Language: Visual C++

 

   
 Communicating Modular Timed Petri Networks Editor



larger picture


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.

Year: 2000

Language: Java

 

   
 Speaker Verification using CHMM



larger picture


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.

Year: 2000

Language: MS Visual C++

 

   
 Video Analysis



larger picture


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.

Year: 2000

Language: Ms Visual C++

 

   
 Video Spot



larger picture


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.

Year: 1994

Language: C

 

   
Virtual Landscapes



Click to see image gallery


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.

Year: 1994

Language: C / Assembler

Last Updated January 23, 2009
© 2010 - Gianni Giorgetti