|
Following is a list of suggested projects, obviously biased by my own
interests and research. You are free to suggest your own topic as well.
For all the projects listed below I will provide the needed hardware
and software resources, although this may require you to work in my
lab in case the equipment is such that I cannot let you take it with
you. For projects of your suggestion, unless they strike my interest,
you are responsible for arranging for the needed resources. I do expect
that all of you have access to a PC running windows or Linux.
-
Actuation control for self-aware embedded systems (2 students)
The abilities to move and use other actuators significantly affect
the capabilities of an embedded system. This project involves developing
a motion control system for a Linux powered actuation mechanism. The
mechanism allows moving a sensing and processing platform, referred
to
as the payload, across a two dimensional transact. The horizontal location
of the payload can be controlled by moving a cable drawn across pulleys
and its vertical location can be modified by changing the sag of the
cable. A serial port interface will be provided to the motor control
board which drives the cable. The project deliverable will include:
-
the
processing primitives required for converting instructions
for moving in specific cartesian coordinates into the length and
sag control
of
the cable carrying the payload
-
building the above processing primitive
into an embedded Linux kernel driver for the serial port
communication protocol of the motor control board
-
suggesting methods for initializing
the location of the node and tracking its location accurately
This project relates to a larger project called NIMS (Networked
Info-Mechanical Systems) which was recently awarded to UCLA by the
National Science Foundation as one of the eight nationwide "Large
Information Technology Research" projects. The NIMS project is exploring
the use of sensor nodes with controlled actuation and robotic abilities
to enable highly adaptive, robust, and self-aware monitoring of environmental
systems.
-
Environment mapping using distance ranging for self-aware locomotion
For embedded computers to be self-aware and be able to reconfigure
their locations in response to the run time dynamics of the environment,
it is necessary for them to learn the presence of obstacles in the
deploymnent
scenario. They may then move to new positions which allow their sensors to
cover the scene best in the presence of obstacles. For instance, a camera
may be blocked by a person standing very close to it. If the camera can detect
this obstacle, it can move to look around it. It is hard for the camera to
learn about the obstacle by processing the image it collects. Rather, if
an acoustic or laser ranging device gives it a map of the distance of objects
around it, it is easy to estimate which objects are potential obstacles.
-
Deliverables: This project would involve:
-
Developing and interfacing a range sensor to a serial port on
an embedded linux platform (ArmLinux or Familiar)
-
Developing the processing primitives for using the range data
to estimate static and mobile obstacles
- Suggest mobility control algorithms which take the above estimates
as inputs and control the sensor node position
This project too relates to the NIMS project mentioned previously.
-
Process management for environmentally powered computer systems
(2 students)
Portable computing systems such as laptops, pocket PC's, personal
servers and several intelligent mobile devices must operate from
batteries. To
increase the operating lifetime of the battery we can charge
it from environmental sources. It has been observed that the exact
time profile
of the load current drawn from a battery significantly affects
the lifetime of the battery. Analytical models to predict the lifetime
of the battery
under time varying loads have been developed and can be used
for process scheduling to optimize throughput. In legacy applications,
batteries
are charged at constant current from wall chargers. In emerging
applications such as embedded sensor networks however, apart from
supplying a time
varying load, the battery is also subjected to a time varying
charging current supplied from an environmental energy harvesting
module. It thus
becomes important to study the effect of this variable charge
on available battery capacity for optimal process scheduling. This
project involves:
-
Measuring
the time taken for battery charging at
various supply currents and charging profiles.
-
Developing models
to predict charge extraction
from environment for available supply current
profiles, analogous to discharge models mentioned in the
refernces.
- Proposing suitable guideleines
for process scheduling in harvesting supported systems
References:
-
A Model for Battery Lifetime Analysis for Organizing
Applications on a Pocket Computer, IEEE Trans VLSI (to
appear), Daler Rakhmatov,
Sarma Vrudhula, Deborah Wallach
-
Energy Management for Battery
Powered Embedded Systems, Daler Rakhmatov and Sarma Vrudhula,
ACM Trans Embedded Computing
Systems, August 2003.
- An Environmental Energy Harvesting Framework
for Sensor Networks, Aman Kansal and Mani Srivastava,
ACM/IEEE Int'l
Symposium
on Low Power Electronics and Design (ISLPED) 2003.
-
Energy cost of
wireless communication in sensor nodes (2 students)
Embedded systems that wirelessly communicate are a new class of
embedded systems, but their performance characteristics have been
studied rather poorly. Energy is particular is considered to be a
key system performance metric, and moreover much of the energy cost
goes towards communications. As such, the energy cost of communicating
a bit (Joules per bit) is an interesting metric. However, most of
the studies of this have been limited to what happens on the physical
layer on a single link, and even that has not been done consistently
since different platforms have different division of hardware and
software functionality. The goal of this project will be to take
the MICA2
mote sensor node running the Tiny
OS operating
system, and conduct a systematic measurement-based study of energy
cost of
communication when these nodes are used in a multihop network.Specifically,
answer the following questions:
- Energy is spent in the various layers of the protocol
stack for each useful application level bit
- Receive vs. Transmit energy/bit.
- Energy spent in hardware vs. software
- Effect of varying network and traffic characteristics
(node density, # of hops between source and destination,
frequency and size of messages generated at the source etc.)
An approach might be to do measurements with a small number of real
nodes in a small network, and then develop energy model, and use
them in simulations of larger networks using a simulator such as
NESLsim.
-
Sensor processing for Smart Table (2 students)
As part of the Smart
Kindergarten project, Philip
Steurer, a recent graduate from UCLA,
developed Smart
Table as an exploration into sensor-instrumented furniture
for pervasive computing environments. The Smart Table is designed to detect,
identify, localize, and track objects placed on top of the table. This
is accomplished by having a grid of hall sensors under the table top and
instrumenting the bottom side of the objects with a unique 2-D magnetic
pattern so that each object triggers a unique set of "magnetic pixels"
in
the hall sensor grid. The table is functional and a simple recognition
algorithm runs on it in software. The problem is essentially one of object
recognition in a binary image. The gaol of this project will be to come
up with a robust algorithm to identify and localize objects, and implement
it in real-time (either in software or on a FPGA board as performance requirements
dictate).
-
3-D orientation and pedestrian navigation from magentometer and
accelerometer (2 students)
As part of the Smart
Kindergarten project mentioned above, another interesting widget
that was made is the iBadge,
which is a sensor instrumented wireless badge meant
to be worn by people. Among other sensors, the iBadge has a 3-D mangetometer
and a 3-D accelerometer (or, more precisely, two 2-D accelerometers mounted
orthogonally). One goal of this project would be to design
and implement as embedded software a method to find the 3-D orientation
(pitch, roll, yaw) of the iBadge. The magnetometer will yield deviation
from north-south and from the earths magnetic plane. Digital compasses
use them, for example. The accelerometer will give tilt off the
vertical by measuring the contribution of gravity (acceleration) along
the various axes. You will also need to develop software to interface
with the sensor, and
characterize
the
performance
of your
system.
-
Inertial navigation for wearable embedded systems (2 students)
The goal of this project will be to implement an inertial navigation
system for pedestrians by combining magnetometer and accelerometer
readings. Further, post-processing may be used to correct for errors
by incorporating constraints (e.g. obstacle information) provided
by data from a map. The implementation platform will be off-the-shelf
sensor
modules
connected
to the StarGate embedded computing board from Intel (the heart behind
Intel's "Personal
Server" that received a lot of press attention lately).Papers
at http://topo.epfl.ch/publications/publications.php will
be a good starting point for the algorithms.
-
LifeLog using iBadge (2 students)
This project explores using iBadge to
do what some people call "LifeLog"
- gather various bits of information about a person over a course
of time, or mor specifically, a trace of multi-modal sensor data
about
one's life.
The iBadge has a bunch of sensors that provide information about
the wearer or the
wearer's
surrounding. However, it doesn't have much local storage. Moreover,
the wearer may be outside the range of any network infrastructure
for long
periods of time. So the idea will be to have a body-area network
to dump data from iBadge to a "Personal
Server" that one carries in the pocke. Later, when one is
near a wireless access point, the collected data may be opportunistically
transmit it to backend. The project will involve linking iBadge to
the
Personal Server via Bluetooth, defining end-to-end protocols, and
backend application for browsing or displaying the LifeLog sensor
traces.
-
Modeling of batteries and energy harvesting subsystems
(1 student)
Recent research has shown the important role of battery management
- the same battery can yield drastically different energy output
depending
on how it is discharged. For example, see the thesis
by Sung Park. However, simulators used by embedded system designers
typically have simplistic models of batteries as fixed-sized buckets
of energy. In part this is because batteries have usually been modelled
as sets of coupled PDEs. Lately, however, simpler models have emerged
that are reasonably accurate (e.g. work from Arizona). Similarly, the
availability of energy harvesting in the form of solar cells make the
battery subsystem behavior even more complex. The goal of this project
will be to create a simulation framework within NESLsim. that
lets one model battery-based systems.
-
Collaborative magnetic sensing in senosr networks (2 students)
Magnetometers, such as those on the iBadge and
the mote,
are magnetic sensors that detect the local magnetic flux, including
that of the earth.They can be used in two ways. One is as a digital
compass (as in project #5 above). Another is to detect the presence
of ferro-magnetic targets nearby - e.g. a vehicle, a tank a person
carrying gun etc. A problem is that the noise level is quite high
so that the tiny signals are lost in the background noise of earth's
magnetic field and other man-made magnetic fields. As a result, the
range of these magnetometers is quite short. A possible idea is to
use multiple magnetometers collaborating with each other to help
improve the signal to noise ratio, for example, by cancelling common
mode noise.The principle would be similar to that of using multiple
antennas to improve wireless communications. The goals of this project
would be to develop and implement such an approach to detection and
localization of targets by a wireless sensor network where each node
is equipped with magnetometers. The hardware and software environment
for this isalready available, and the focus will be on algorithm
development and implementation.
-
Sensor-based distributed light control (2 students)
The premise of this project is to explore applications of networked
embedded systems in distributed real-time control. The specific target
here is control of multiple lights (lamps) based on readings from a set
of
light
sensors to achieve a desired spatial distribution of light intensity
in an indoor space. In other words, the user specifies the light intensity
distribution required (possibly unspecified in parts of the space). You
need to develop a distributed method that uses sensor readings from selected
points in space together with the desired distribution to dynamically
control the intensity of a set of lamps. The implementtion will be using
a network of Motes as light sensors and a set of software controlled
dimmable lamps.
-
Over-the-air re-programming of wireless sensor nodes in an ad hoc
setting (2 students)
Real-life deployment of wireless sensor networks may consist of
a large number of sensor nodes distributed in space. For example,
some applications
call for 10s of thousands of motes in
a few square mile outdoor area. Clearly, software development is a
pain in such a setting. If there is a bug, and new firmware needs to
be programmed
in, how will one do it? One would liek to be able to do this over the
air. However, we immediately have issues of efficiency and robustness.
For example, it would be inefficient to send one copy of the new firmware
for each of the new node. Multicast of some sort can be utilized. Similarly,
incremental updates where only a diff of the new and old firmware is
sent may be a good idea. As to robustness, clearly we should have some
mechanism so that if the new firmware itself is buggy, then the node
can somehow revert to a base communication protocol of minimal functionality.
The goals of this project is to develop such an over the air update
capability for networks of motes or MK-II,
and be such that it will scale to large networks. The focus will be
on software (protocol and algorithm) implementation and issues of efficiency,
robustness etc. and on identifying (and time permitting prototyping)
hardware enhancements
to the nodes to facilitate over the air updates. A starting reference
might be "Efficient Code Distribution in Wireless Sensor Networks"
by
N. Reijers, K. Langendoen (Delft University of Technology) at the recent
ACM WSNA 2003.Also, ideas from how this is done for cell phones will
be useful, although the problem there is a lot simpler
as the network is not ad hoc and not as resource constrained.
A variant of this project (separate project) would
be to provide boot-time over-the-air loading - the idea being that
when
the sensor
node boots
up, it fetches
its image from a central repository. Across the sensor field, there
might be a few differenty types of images that are needed. So significant
efficiencies can be had by loading to groups of nodes instead of
node at a time. You may also need to consider images that are almostthe
same - e.g. have different values for some configuration parameters.
As prior work, it would be instructive to see how BOOTP/TFTP are
used
in wired
settings
to
provide
boot
images
to desktop
computers with assist from the DHCP server. Look at the Ethernet
Bootloader for ATmega 128- it might provide a good starting point
since ATmega 128 is what is used in motes or MK-II.
-
Robust ad hoc localization of wireless sensor nodes in the presence
of obstacles (2 students)
The ability of nodes in large scale networks of embedded systems
to discover their absolute or relative location in space is quite
important.
Several techniques have been developed for this, including recent
dissertation by my student Andreas Savvides, who as part of the AhLoS project
used sensor nodes equipped with ultrasound rangers to measure distance
between nearby nodes and then solved a distributed optimization problem
to calculate positions of the nodes. However his as well as other
techniques developed in recent years, while able to handle measurement
noise, do
not address the presence of obstacles and outliers. The goals of
this project will be to build upon one of the existing schemes to
develop
a method for localization that is robust to obstacles. The first
step will be to characterize the performance in the presence of obstacles.
The second step will be develop algorithmic enhancements to deal
with
obstacles. We have a small number of sensor nodes with ultrasound
ranging. So the project ideally will consist of simulation on synthetic
data followed by simulations using real-life data, and time permitting
a centralized on-line implementation.
-
Graphical embedded OS for sensor node management (2 students)
For purposes of remote configuration, control, and management, it
is good to provide a graphical interface to the users and administrators
of sensor networks. One approach would be to have the system
management application talk to sensor nodes via a custom protocol
or perhaps
something like SNMP. Another approach would be to provide a
simple web server on each sensor node, and this make a sensor node
visible
as web service. Some new embedded OS come with the ability
to provide web server and even simple GUI environments using VNC.
One such OS
is the Contiki OS which
scales down to really tiny microcontrollers. The goal of this
project is to get Contiki to run on motes or MK-II networked
sensor nodes, and use Contiki's web server and desktop GUI
capabilities to provide an environment for remote management,
monitoring, and
configuration of individual sensor nodes. This this will require
providing the
ability
to tunnel
IP packets via
multihop
routing.
-
Porting Nut/OS RTOS + WebPort to MICA-II Motes (1 student)
Nut/OS is
an interesting RTOS for ATMega 128, the microcontroller used in MICA-II
Motes. It comes in with a complete TC/IP stack, a boot loader, and
WebPort, a simple web interface to monitor and control I/O
ports of an embedded system via TCP/IP by using a browser. This can
be a good environment for remote management,
monitoring, and
configuration of individual sensor nodes, in the same spirit as the
previous project. The goal of this project will be to port Nut/OS
to MICA-II Mote, and create back-end software for controlling individual
nodes.
-
Wireless sensor network nodes with novel forms of mobility - flying,
hovering, submersible (2 students)
Lately there has been a fair bit of interest in sensor nodes that
are mobile so that after deployment they could be moved to improve
sensing or communication performance. An example is the RoboMote from
USC which created a miniature tracked mobile platform using the motes sensor
nodes. However, other forms of mobility are need: in the air and
inside water. The goal of this project will be to develop an air
borne (using off-the-shelf blimps) or submersible (using model submarines)
or floating (suing model boards) platform controlled locally by a
mote which is wirelessly networked to other such mobile nodes.
-
Near-field magnetic communication (2 students)
A company Aura Communications recently made
it to Slashdot because they are using nearfield magentic communications
to provide an energy-efficient short-range wireless link for applications
similar to those targeted by Bluetooth. Nearfield communications is
actually a pretty old concept and off and on there have been attempts
at exploiting in wireless sensors etc. The goal of this project is
to study this technology (using the avaluation kit from the company),
see how it works in a sensor network type application in terms of
performance
and energy efficiency, and propose a sensor node
design based on it.
-
Synthesis or generation of embedded software for sensor nodes (2
students)
In embedded systems it is now very common to start from a high level
description (MATLAB, LABVIEW, block diagram, Statechart etc.) of
the functionality, and automatically generate or even synthesize
the
low-level C code
from it. However, no such thing exists yet for sensor nodes where
by and large programming continues to be a the level of C. The goal
of this project will be to create a design flow from high level description
of the functions at a sensor node to
the low level C code for the firmware. The high level description
might be a Simulink description or perhaps a block diagram in Labview,
or something else of your choice.
-
Common framework for localization in time, space, and transducer
parametes (2 students)
When a distributed embedded system such as a wireless sensor network
starts up, it goes through a phase of self-configuration where the
nodes figure out where they are in time, space, and transducer parameters
relative to other nodes or relative to absolute references. These
problems are one of timing synchronization, spatial localization,
and sensor calibration. Thus far these problems have been treated
separately with separate sets of techniques for each. Examples from
work at UCLA: timing synchronization - Elson et. al., Ganeriwal et.
al.; spatial localization
- Savvides et. al.; sensor calibration - Bychkovskiy et. al. However,
there is a common thread underlying these problems. A node first
measures a value that tells how distant it is from its neighboring
nodes in that dimension - e.g. time offset, range, difference in
transducer gain. Next, these measurements together impose a set
of constraints that the global soultion must satisfy. So these problems
reduce to one of distributed constrained optimization. The goal of
this project is to establish a common algorithmic framework and distributed
service to handle these three tasks.
-
Design of an embedded system or subsystem for some interesting
application (# of students depends on complexity)
You can design embedded system for some interesting application.
For example, biometric or other authentication mechanisms for personal
devices such as the Personal
Server (Authentec makes
fingerprint sensors that may be used for such a project).
Run your ideas by me!
-
Design tools for embedded systems, prticularly for sensor networks
(# of students depends on complexity)
You can create a design tool to automate or simplify any facet of
the over all embedded system design flow. In particular, tools re
sorely laccking for distributed embedded systems such as sensor networks.
Run your ideas by me!
|