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.

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

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

  3. 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.
  4. 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.

  5. 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).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  20. 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!

  21. 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!

 
Contact: Mani Srivastava (mbs@ee.ucla.edu)