Project Ideas for CSE 40771

Given that this class is in a computer science and engineering department, the course projects will ask you to exercise both a scientific and an engineering role. The job of a scientist is to pose questions and then answer them in a methodical fashion. The job of an engineer is to build things that work, within the constraints of the users and available knowledge.

Note: Each project idea is presented in increasing order of difficulty of construction. Consequently, I will expect students attempting the easier projects to produce more data and thorough analysis. For the harder projects, more credit will be given for just getting the system working, although a collection of quantitative results is still required.

Measurement Projects

  • Global Positioning System. What is the accuracy of the Garmin GPS-18 in space and time? How long does it take to acquire a GPS fix? Does it matter whether the unit has recently been used? (Hint: Yes.) How accurate is a GPS fix? Does it change over time? How does the quality of a fix change with the number of satellites used in the computation? Find places on campus that are partially obstructed, and measure the variance in accuracy as the number of satellites change. How does this affect TeamTrak?

  • Ad-Hoc Wireless Ethernet. What is the range and reliability of an ad-hoc Ethernet network under varying conditions? How far apart can two conventional laptops communicate? Does it matter whether they are in a wide open outdoor area, or in a long hallway? (Hallways can reflect and channel RF.) How long does it take to discover a network, determine an IP address, and begin communicating? Does it matter if the nodes start far apart and come together, or vice versa? How does this affect TeamTrak?

  • Infrastructure Wireless Ethernet. What is the range and reliability of a variety of wireless base stations? Using TeamTrak and a GPS, produce a map of the outdoor wireless coverage across campus. (Hint: You can do this without modifying TeamTrak at all.) What is the range of once base station? Does it matter whether you approach from afar, or start from inside? Do some areas have better or more distant coverage than others? What are the implications for TeamTrak?

  • Bluetooth. Bluetooth is a short-range networking technology, typically used for communication in the area of a desktop or within an automobile. (Note that BlueTooth is built into the TeamTrak laptops, it just needs to be enabled in the control panel.) What is the range of Bluetooth under varying conditions? What is the performance of activities such as file transfer? Does performance vary with range? Like Ethernet above, does it matter whether you are inside or outside? What are the implications for TeamTrak?

  • Accelerometer. As you will discover very shortly, a GPS does not work in all situations. Obviously, it cannot pick up a signal indoors. GPS often also has trouble in dense cities with high rise buildings. Other sensors can be used to provide location data when a GPS is not available. A digital accelerometer (such as the SparkFun Sense-SerAccel-v5-D) can measure acceleration in three axes at once. Measure the output of the accelerometer while walking or running around campus. Try different positions for the device: attached to your foot, your belt, or your hat. How accurate is the accelerometer, compared to the GPS, when used simultaneously? Can you use it to measure paces? Could this be used for TeamTrak?

  • Digital Compass. The GPS can report the position of a person, but it cannot tell what direction you are heading. However, a digital compass like the PNI V2Xe can give magnetic heading regardless of movement. Figure out how to connect and read data off of the compass. Is the compass stable, or does it vary over time? How sensitive is the compass to tilting in various directions, without changing the direction? (i.e. How careful must the user be?) The compass claims to be insensitive to local magnetic fields (e.g. speakers, power supplies, small magnets). Is this true? How far away must the compass be held from such fields?
  • Engineering Projects

  • TeamTrak Run Analysis Tool. A TeamTrak network produces a lot of data: Each node keeps a logfile detailing its view of the network once per second. After conducting an experiment, we would like to reconstruct an experiment for visualization and analysis. Build a tool that can load multiple log files simultaneously, and visualize the state of the network. Controls should allow the viewer to move forward and backward in time, as well as see the global routing table at any given time. (Java would be a good language for this project.)

  • TeamTrak Internet Relay. Currently, TeamTrak requires all participants to be in the same general vicinity on the same ad-hoc wireless network. Modify TeamTrak so that it also works across the Internet. To do this, change the ethernet module to transmit UDP packets to a fixed host at Notre Dame. Then, build a relay server on that host that forwards all received packets to all other nodes that it has heard from in that last five minutes. Demonstrate that you can build and run a TeamTrak network over the wide area. Measure the scalability of the central server. Discuss the strengths and weaknesses of this approach, compared to a local ethernet broadcast.

  • TeamTrak Over BlueTooth. Although Bluetooth has a much shorter range than Ethernet, it consumes much less power and could be used to carry information from, say, a high powered node mounted on a vehicle to nearby inexpensive handsets. Modify TeamTrak to also pass packets over Bluetooth, in addition to Ethernet. (Hint: Make use of the Windows sockets interface with the AF_BLUETOOTH address family, so the code will be similar to that of the ethernet.)

  • Instant Map Sharing. TeamTrak currently allows each node to keep its own copy of a map, and add shapes to it one by one. Modify TeamTrak so that when one user adds an item to the map, the changes are propagated to all users, allowing the map to be constructed collaboratively. Extra challenge: When a new node. joins the network, all of the collected changes should be propagated to that node.

  • New Sensor Support for TeamTrak. Add support for a new kind of sensor such as the accelerometer or digital compass explored in the measurement project. Create a new thread to robustly initialize and query the device. Integrate the sensor data into the local data structures and display, and then communicate the new information to all other nodes through the routing protocol. Demonstrate that all nodes can make use of data obtained remotely.

  • Distributed Video Monitoring. TeamTrak currently has the capability to read and display a camera image, but does not currently do anything with that image. Modify TeamTrak so that each node of the system communicates an image to all others, perhaps once per second. Every node should then receive and display all images in an appropriate place on the screen, so that any user can see through the eyes of all others. You will most likely have to reduce the size or frequency of the video frames sent to each node, in order to fit in the available bandwidth.

  • Mobile Satellite Imagery. Satellite imagery can be obtained from a variety of sources online. (Example: world,midwest, campus). Build in imagery support for TeamTrak. Start by modifying TeamTrak to load a single image from disk, and then scale and display it in the proper place, according to the user's current location. Once that works, then modify the code to download and display new images as the user's position changes.