| 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 |