First test app
After we chose our supermarket idea, we discussed this with Tobias. Our initial concerns were that the supermarket idea was very simple and that we would need to extend this idea to create more of a challenge. Tobias confirmed this with us and basically asked us to add complexity. We were initially going to use proximity to determine which supermarket items would pop up on the user's phone based on how close the user is to the beacon.
Through our discussion, Tobias mentioned we could incorporate fingerprinting which will hopefully give us more accurate information on where the user is in the supermarket. Fingerprinting involves measuring signal strengths from multiple sensors (the fingerprint) at reference points and storing values (mean, median, etc) or distributions in a database. This database can be used to position the user based on the signal strengths they receive from the multiple sensors. We decided to try this using our six sensors positioned around a room and train a model to predict our user's position using machine learning.
Test area
Originally we imagined testing our app in an actual supermarket or library, which has similar aisles to a supermarket. Upon changing to a machine learning technique we now require a test area that we can access easily and frequently to both train and test our app. Additionally, we need to present our app to the class at the end so we need a location near the university. We decided to use the computer lab, CO327 which has a good layout with two aisles and computer desks marking out two of the supermarket shelves.

Figure 1. Left) Plan view of test room. Beacon positions in red. Right) Cool action shot of room.
First test app
Sam put together an app so we can take a first look at the signal strengths of the estimote beacons in different parts of the room. This required setting up the beacons to start ‘ranging’ instead of monitoring. While monitoring creates a virtual fence to detect when you’re moving in and out, ranging actively scans for any nearby beacons and delivers results to you every second. Ranging will allow us to come up with a way of roughly fingerprinting the users location.
The first step of the code was to try and receive a list of beacons that the device has picked up in the area. We wanted to get the RSSI (Received Signal Strength Indicator) for each of the individual beacons and display that on a simple user interface so we could get an idea of how those numbers looked. Once we could see what we were working with, we could then decide the best course of action required to take with our newly found data.
Figure 2. Test app. The hex numbers on the left are beacon IDs and the numbers on the right are signal strength.
After a little bit of testing in the room, the numbers did not seem to fluctuate much when the device was sitting still, this was a good indicator that we could use fingerprinting of some form to teach our program what these values meant at specific locations.
The trade-off for this method is that although ranging provides more granular and comprehensive beacon data, this comes at the expense of draining the battery faster than monitoring. This means that it’s usually not a good idea to run ranging for extended periods of time, e.g., hours. It certainly wouldn’t be viable to run it at all times. Although this is a great way to build our app, it may not be a viable option for a real supermarket open 12+ hours a day.
Next Step
From here, we want to develop our app to work with the machine learning algorithms so that we can start to accurately predict which aisle the user is in. We have already foreseen the problem of the lists flickering between isles as the prediction algorithm changes its mind on the current aisle of the user. So we will have to brainstorm solutions to overcome this issue. In its most basic form, we have already come up with the idea to somehow ‘lock’ the aisle based on the higher weighted prediction, but we haven’t discussed any implementation for this solution as of yet.
Written by Celine, James and Sam.
Comments
Post a Comment