Projects gallery

Switched-Beam Antenna for Indoor Localization
   


 

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 is used to implement 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 Communication Letters.

Year: 2008

Language: MATLAB

 

Indoor Tracking
   

Description: An indoor-localization application developed in collaboration with Intel. 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. Some of the results are available here.

Year: 2008

Language: MATLAB

 

Board for Indoor Localization
   

click on picture to enlarge

Description: This board was designed during my summer internship at Motorola Labs (Tempe, AZ) in 2007. 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 purpose for this board is to run software for indoor localization. In particular, the two radios can be used to localize both sensor nodes (using the IEEE 802.15.4/ZigBee protocol) and mobile users that carry Bluetooth enabled devices (e.g. PDAs or Cell Phones). Networking software to support multi-hop routing was written in C++/Assembler.

Year: 2007

Language: C++/Assembler

 

Phone Based Monitoring Application
   

click on picture to enlarge

Description: In Wireless Sensor Network applications a PC is usually used to collect the information gathered by the sensors and display the results to the user. In this project, which was investigated during my summer internship at Motorola Labs (Tempe, AZ) in 2006, the PC is replaced by a phone. The connection between the phone and the WSN is made possible by a Bluetooth Radio module that was installed on one of the sensor nodes. Sensor data (Temperature, Light, Battery voltage, CO2 level and Received Signal Strength) are displayed in real-time on the phone screen. In addition to visualization purposes, the application on the phone (written in J2ME) can be also used to send 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

 

Angle of Arrival Estimation using Directional Antennas
   

click on picture to enlarge

Video (WMV 2.5MB)

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, implements a scheme that is used to exchange radio messages and measure the RSS (Received Signal Strength) on the four faces of the antenna. By comparing the RSS values with the radiation pattern of the antenna, the direction of the arriving signal can be estimated. In our experiments we used both the well-known MUSIC (Multiple Signal Classification) technique and a custom implementation of a LS (Least Squares) estimator. In environments without strong multi-path components, the system was 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
   

click on picture to enlarge

Video (WMV 2.1MB)

Description: Localization, one of the most challenging tasks in Wireless Sensor Networks applications, consists in computing the sensor positions using a set of proximity constraints or distance measurements. In this application, the sensor network is modeled as a mesh of masses connected by springs. Each mass point represents a sensor nodes, while the springs connecting couple of nodes represent the measurements (proximity or distance estimates) available for those nodes. The node positions are computed by iteratively relaxing the forces that acts on the masses.

Year: 2006

Language: Java

 

Bluetooth Connectivity (Intel Imote)
   

click on picture to enlarge

Video (WMV 10MB)

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 50). The software running on the Imote, written in nesC, contains a custom module that implements the Bluetooth SDP (Service Discovery Protocol) compatible with the TinyOS environment. 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). Throughput up to 2000 bps has been demonstrated.

Year: 2005

Language: nesC/TinyOS, Java

 

Web-Based Remote Monitoring Application
   

click on picture to enlarge

Description: Three Java applets embedded in HTML page are used to show real time sensor data collected by a remote Wireless Sensor Network. The first applet provides a graphical representation of the network topology (i.e. the routes used by each sensor to forward the data to the base station). The second one displays real time plots of the sensed values: Temperature, Light, CO2 level (on selected sensors), Battery Level and RSS (Received Signal Strength). Finally, the third applet can be used to set threshold values on the sensed values to generate automatic email alerts.

Year: 2005

Language: nesC/TinyOS, Java

 

NirEditor
   

click on picture to enlarge

Description: NirEditor is a 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 aims to simplify the editing and the maintenance of complex legal documents compliant with the DTDs that define a new standard for electronic accessible laws.

Year: 2004

Language: Java

 

   
 Finite Element Heat Simulation
   

Description: This software uses a custom implementation of the FEM (Finite Element Method) for the simulation of transient heat propagation in 3D structures. It was developed to simulate and have a better understanding of the thermal processes that regulate the DNA amplification reaction (PCR). It 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 e 3D viewers for visualization of 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
   

Description: This application provides a platform for the thermal control of PCR in plastic micro-devices using a custom hardware setup. The system has been effectively used to regulate fast thermal processes (up to 30C/s), significantly reducing the time required by the DNA amplification. Along with the control functionalities, analysis and benchmark tools are included in the software in order to facilitate the development of more efficient PCR solutions. A complete reaction protocol management is also available.

Year: 2002

Language: Ms Visual C++

 

   
 Reinforcement Learning
   

click on picture to enlarge

Description: The term "Reinforcement Learning" refers to a class of learning algorithms that can be used to train an agent to solve particular classes of problems. Differently from other supervised techniques, the agent is not told how to solve a problem, but it is given a reward which depends on how good it is performing. This application uses reinforcement learning techniques to train a software agent to control the temperature of a dynamical unknown system. The agent is allowed to use only a finite set of discrete control inputs (i.e. power levels) and it has to learn to reach a setpoint temperature with the minimum error possible. This was a preliminary study to implement a temperature control algorithm on an embedded system with limited output capabilities.

Year: 2002

Language: Visual C++

 

   
 Communicating Modular Timed Petri Networks Editor
   

click on picture to enlarge

Description: Communicating Modular Timed Petri Networks (CMTPN) are oriented graphs modeling concurrent and parallel tasks within a system. 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 graphical user interface and a rich set of editing functionalities (cut, copy, paste, drag and drop, undo, redo, ...) has been implemented to facilitate the creation of CMPTN drawings.

Year: 2000

Language: Java

 

   
 Speaker Verification using CHMM
   

click on picture to enlarge

Description: This project relies on Continuous Hidden Markov Models for the implementation of a Speaker Verification algorithm, an application that can authenticate users’ identity 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. This set of features is then used to train the CHMM and create a statistical model describing how the user pronounces that phrase. During the verification phase the user is requested to repeat the test phrase. This is matched against the model previously created in order to verify if the user corresponds to the claimed identity.

Year: 2000

Language: MS Visual C++

 

   
 Video Analysis
   

click on picture to enlarge

Description: This Video Analysis software was created to discover the presence of text captions within digital videos. Each frame of the digitalized sequence is analyzed with a few heuristic techniques that aim 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
   

click on picture to enlarge

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.

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 spoken phrases that are 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
   

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 creating using a 286 PC with 1MB of Ram and a video card capable of 640x480 w 256 colors.

see more images

Year: 1994

Language: C / Assembler

Last Updated 19th November 2008
© 2008 - Gianni Giorgetti