CS 8803: Mobile Computing and IoT Fall 2021
Programming Assignment 2
Handed Out: Oct 25th, 2021 Due: 11:59pm, December 01st, 2021
1 Objective
Collect location-based ambiance information.
2 Programming Assignment
2.1 Collecting location based ambiance data (50 points)
The goal here is to understand how various sensor readings can serve as fingerprints to
localize yourself indoors. Collect the following sensor readings from your smartphone by
walking along the corridors of any building you are able to access (including your home/dorm
etc.): magnetometer/compass, light (optional), sound, WiFi, gyroscope, and accelerometer.
The exact walking pattern does not matter, but make sure that you can repeat this pattern.
You will walk the same trajectory at least 3 times. Also, collect approximate information
about your walking trajectory. This includes how long the straight parts of the corridor
are and where are the turns. Record the approximate time you took to walk the trajectory
as well. Previously, students have found it useful to record themselves to approximately
reconstruct the timing of their trajectory.
2.2 Plotting obtained data (50 points)
Once you have this data, your goal is to visualize how the compass, light, and audio capture
of the phone was affected by the environment. You will produce three different graphs, one
for each sensor (compass, light or WiFi, audio). All of these graphs are produced offline;
you will collect and store data on the phone and then use a software like Python or Matlab
to plot the following graphs.
On the compass graph, plot the compass heading (you may start with 0 degrees) over time
(i.e., the X axis of this graph should be time and the Y axis should vary from 0 to 360).
Below this graph, draw the ground-truth direction/trajectory graph (drawn approximately
based on time you walk and angle you turn in the corridors).
On the light graph (if your phone supports light sensor), measure the light intensity over
time and overlay it with the ground-truth direction/trajectory graph.
On the WiFi graph (if your phone does not have light sensor), measure the signal strength
over time with one WiFi access point. Plot it overlay with ground-truth direction/trajectory
1
graph.
On the sound graph, the microphone recording spectrogram should be plotted and overlayed
with the ground-truth direction graph. You may use software such as Audacity to produce
the spectrogram, and place the ground truth graph below.
Now, perform the same walking 3 more times with at least 5 minutes between each walk. Do
you observe the same patterns? Show one graph using any of the three sensors that shows
repeated patterns across different walks.
3 What to Submit
Each group will submit the following documents:
The three graphs described above for compass, light or WiFi, and audio.
One graph showing repeated pattern for any one sensor
One CSV file with all the sensor readings collected for generating the 1st set of graphs:
___PA2.csv
All submissions should be made on canvas.
4 Ground Rules
Group members are expected to split the work somewhat evenly. Follow COVID-19 ap-
propriate behavior; I do not require you to collect data together or process it together, so
split the assignment according to your comfort level. You may exchange generic information
such as links to standard documentation for collecting WiFi signal strength, etc. on Piazza.
However, do not share code directly. Stackoverflow is fine, developer.android.com is fine,
your own blog link is not fine to share across groups. Graphs should be your own, data
should be your own. It will be cross-checked with others for plagiarism. Groups of 2 are
expected. Submit only one per group.