Posts

The Smart Shopping App

Image
Challenges and solutions Working with the android turned out to be a frustrating process from start to finish. Our first challenge was getting the project to work with Google’s Material Components, which took us several hours just to get a card to appear on the screen. Our biggest UI challenge was all learning how to use Android’s layout types and how to work with the verbose XML files. These issues arose merely due to our inexperience working with Android Studio and Material IO, but as the project went on our ability to translate designs to code greatly improved. Due to 3 programmers working on this project at all times, there were several times where we would accidentally overwrite other programmers changes to the code base. This error came down to overtiredness from late nights and several programmers working on the same issues without realising. To mitigate this issue, we upped our git game and put a strong focus on using the Issue Driven Development software development methodo...

Finding the Best Model

Image
Finding the best machine learning model  Data collection We changed our training app so it outputs seven different types of data to be used for training the models. The app outputs mean, median and root mean squared (RMS) data in both sliding window and non-sliding window forms. It also outputs the raw data. Mean, median and RMS were calculated from five readings. The difference between the sliding and non-sliding window is that the non-sliding window keeps the batches separate so we end up with at least 80% fewer data points. With the sliding window version the raw data is shared so we end up with only 4 fewer readings than the raw data. There is about five times as much data for the amount of time spent training for sliding window although both methods are calculated from the same data ultimately. Generating data and training models To generate the training data we walked up and down the aisles in our test area for 20 minutes each to ensure that there was enough data to pr...

User Interface Design

Image
First design We started playing around with some user interface design ideas using Figma (https://www.figma.com). The app will consist of two activities which are the "list" and “shop” activities. We wanted our list UI to feel like a shopping list or notepad so we tried using a notepad like yellow colour with lines under the words (Figure 1). When the user goes into shopping mode they should be able to cross items off the list and see a line through them. They should be able to uncross items if they accidentally cross them out. The Aisles are displayed as separate pages and they will automatically switch when the user moves to a different aisle. Figure 1 : First Design Second round app design After some thought, we simplified the app design and added some functional ideas (Figure 2). We added a text field with an auto-suggestion drop down box so users can enter in items and select them from those that actually exist in our database. We added a shop button so the...

Testing the state trainer and predictor app

Testing the state trainer and predictor app Our first app used only raw signal data and the Bayes network machine learning algorithm to build the model. We trained the models for three minutes per aisle by walking around within the bounds of the aisle. We then tested the app by walking up and down the aisles and checking which aisle our model placed us in. The predictions were not very accurate using this method. We experimented with some other models such as IBK and random forest. We also tried moving the beacons to different walls and training it by standing in for set periods of time instead of moving around. None of these significantly improved the accuracy of prediction. Next steps It was clear that if we wanted our app to function well, we would have to try everything in the hopes that one method will work well. So similar to our last assignment we decided to write an app that could simultaneously test many different models and features (raw, mean, median, RMS). Improving o...

Configuring and Setting up the Beacons

Image
Test Area Following on from our last blog, we have decided where to position our beacons in the computer lab room. We confirmed that we want to position each of the six beacons along the outside of the room (as shown in the previous blog). We have positioned the beacons in this way to ensure we can use at least 2 beacons at each reference point which will help to make our location sensing more precise. The more beacons we can get sensory information from for a single reference point, the closer we can pinpoint where the user will be. In our simplified example, if we only used the signal strength from one beacon (Figure 1.), the user could be anywhere within the red circle. However, if we add a second and third estimote to determine where the location is, we can make our reference points more precise (Figure 2.) The middle reference point (as shown by the plus sign in the middle of the aisle) has sensory data from 3 different estimote beacons. There are only a few places that have all 3...

First test app

Image
Adding complexity to the original idea 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 sens...

Brainstorm 1

Image
Assignment 3: Brainstorm 1 Our first meeting consisted of us brainstorming ideas in order to decide what our ubiquitous prototype will be. We decided to brainstorm ideas based on either of our first two milestones, including using the Estimotes or going down the machine learning path. Our initial ideas included the following: Estimotes: 1) The supermarket Using the estimote beacons to let us know where each item on our shopping list is based on proximity to the aisle (estimote). We thought this idea demonstrated ubiquitous computing well and will be simple to implement. Therefore, it will need to be implemented well. 2) Tables/Hospo Using the estimote beacons to connect a restaurant to its customers. Each table will have a beacon, the user can then use an app to order food, view the menu, make a payment, and we can ping which tables have devices connected so a user could see how busy the restaurant is before you go. 3) Coffee Loyalty Cards This is a very simple idea that...