Elinora’s Status Report for 04/29

This past week, I worked on finishing up the slides for our final presentation with my teammates and started working on our poster with Sirisha. For the web app, I cleaned up the formatting on the logs page, began looking into how to send data from the Python code on the Jetson to our Firestore, and set up authentication using Google OAuth (through FirebaseUI). I also spent some time with Sirisha trying to get necessary libraries for the CV code installed on the Jetson. 

My progress is behind in terms of testing because we have had difficulties with integrating the system, but we figured out the issue with installing the libraries and now only need the larger microSD card to be able to run the code. For the web app and project documentation tasks, my progress is on track. 

This coming week is our final week to work on the project. I hope to accomplish unit testing for the accelerometer in the car (as well as other units when the system is fully integrated) and full-system tests. Additionally, I will work with my teammates to complete the poster, final report, final video, and finalize/test the setup for our public demo. I also have a stretch goal of adding visual graphs for displaying the metrics on the web app. For now, we have decided that the logs page would be adequate for our purposes and that our time should be more focused on fully integrating and testing the system.

Elinora’s Status Report for 04/22/23

Over the past two weeks since my status report, I first set up the WiFi on the Jetson with the new WiFi dongle that we ordered. I had issues connecting to the ethernet in HH in order to set up the dongle initially, and had to re-register the Jetson as my device for wired internet use through CMU Computing. After that, the setup for the dongle was pretty straightforward. We are now able to connect the Jetson to a phone WiFi hotspot (or CMU-SECURE) and ssh into the Jetson remotely. 

I also worked with Sirisha to implement audio feedback and add it into the CV classification code. We were slightly delayed on this task because we needed to order another connector to account for the port differences on the Nano (we had initially planned for the speaker to connect into the USB C port on the Xavier). We then conducted a stationary test on her laptop looking away from the screen for >2s and were able to trigger the audio feedback playing through the speaker. 

For the web app, I set up cloud storage with firebase firestore. I tested adding and retrieving documents from the firestore in the web app itself. I set up hosting for the web app using firebase as well. 

My progress is mostly on schedule – I am behind on integrating data from the device into the web app, but this is because we decided to deprioritize the web app in favor of making sure the device itself works well. This upcoming week before our public demo, I will add code to store feedback data from the device directly into the firestore. After we set up account authentication, I will also add filtering of the feedback logs so that the user can only see logs for their own device. 

 

Elinora’s Status Report for 04/08/23

This week, I continued to work with Sirisha on the accelerometer and it now prints the acceleration values and estimated y velocity values. Initially, while the command “12cdetect -r -y 1” showed that the accelerometer was connected at port 68, we were unable to read the actual data from the accelerometer. We ended up having to solder our wires into the holes of one of our spare accelerometers to make the connection more direct. This soldering process took surprisingly long, but we were able to get values printed to the terminal on the Nano. I also wrote some code to estimate the y velocity based on y acceleration values (standard integration). However, this procedure is not very accurate and estimating the velocity causes drifting errors over time, which could jeopardize the feature of our project in which feedback is given depending on the velocity of the car. We are considering purchasing a new sensor that measures velocity directly to address this issue, but may considering integrating it as a stretch goal because of how much time it took to debug using this accelerometer. 

I also set up hosting of our web app using Firebase to https://drivewise-ef9a0.web.app/

Unfortunately, the WiFi dongle did not arrive until later in the week and I was unable to pick it up and start setting it up to work with the Nano. Otherwise, I am on track with the goals that I set for myself last week and our new Gantt chart. 

Next week, I hope to set up the Wifi dongle to work with the Nano, assemble the entire device and test that it still works with the power cord that we have, and work with Sirisha to send data from the Nano to the web app and display it. We want to do this using storage on Firebase. 

Here is a breakdown of the tests that I have run and are planning to run:

  • Accelerometer
    • Try subtracting the average of the first 10 y acceleration readings (per run) to calibrate the sensor before estimating velocity. Then test this in 5 runs when the device is running on a table in HH to determine that the 
    • In the car, drive at 4, 5, and 6 mph to test whether the feedback is only triggered at > 5mph. Also test while the car is stationary and on for 5 minutes (making sure that the estimated velocity does not just continue accumulating). 
  • Web App
    • Test that the recorded data displays correctly on the web app
    • Check that a user only views data from their device by doing 1 ride with a set device id of 0 and 1 test ride with a set device id of 1 and make different login accounts for each
    • Test that multiple users can be logged into different accounts on the hosted web app at the same time
  • Jetson Nano
    • Test that the Nano is able to be powered by the car (with USB A to USB C cord plugged into USB A port on car)
  • Overall System
    • Test each of our distraction cases in ideal conditions in both a stationary and moving car in an empty parking lot
    • Test each of our distraction cases (other than blinking) in nonideal conditions in both a stationary and moving (very slow) car in an empty parking lot

Elinora’s Status Report for 04/01/23

This week, I spent the majority of my time working on initial setup of hardware components. As a team we decided to switch from an Xavier to a Jetson Nano because the nano would require less power. Initially, we also did so because we thought the Nano would already have the ability to connect to WiFi (which I later learned is not the case). I met with Tamal twice this past week to set up the Jetson (first the Xavier and then the Nano after we switched). After initial connectivity issues, I was able to connect the Nano to the ethernet in HH 1307 and ssh from my laptop into the Nano. Since the Nano does not have the ability to connect to WiFi, I also placed an order for a USB WiFi dongle that is compatible with it so that we can use the Nano outside of the classroom when working in the future. 

After the Nano was set up, Sirisha and I met to connect the accelerometer to the Nano and test it. We ended up spending an hour running around campus trying to find female-to-female wires (like the ones that come with Arduinos) that we could use to connect the accelerometer to the Nano using i2c. We found them in Tech Spark and then needed. We also soldered the accelerometers to the posts that came with them, which solved our connectivity issues and we were able to detect the connection to the Nano with “i2cdetect -r -y 1”, which showed that it was connected on port 68. 

I also spent some time changing the dummy data shown on the metrics page of the web app to look more like what will realistically be sent/displayed. 

My progress is mostly on schedule with what I set for myself to do this week. I had initially said that I would write some initial code for the accelerometer this week, but with the setup time for the Jetson and accelerometer both being far longer than planned for, I was unable to get to that task. 

Before the demo, I hope to complete the initial code for measuring and printing the readings from the accelerometer connected to the Nano, with some additional action or print statement triggered when the readings indicate above a certain speed threshold (likely 5mph). For the rest of the week, I will get WiFi working on the Nano with the dongle and work with my teammates to test and tune the system.

Elinora’s Status Report for 03/25/23

This past week, I focused on fleshing out the web application with Sirisha. I implemented all the buttons that we need to navigate through the pages of the application and worked on formatting for the login, registration, and logs pages with Sirisha. I also met with Yasser to discuss what we want to have done by our interim report. Currently, we want to have the eye tracking working with a simplified calibration step for a demo on Yasser’s computer and have the web application fully working with login capabilities and dummy data. After the interim report, we will integrate the CV/ML with our hardware and display the data from the actual DriveWise device on the web application instead of just dummy data.

According to our Gantt chart, my progress is behind schedule. I did not make any progress this week incorporating the hardware components, instead deciding to focus on the web application because we’re thinking of having our interim demo not include hardware integration. This past week I was scheduled to test the website with dummy data, but we are not yet sure what we want the exact format of the data to be, so I will discuss with Sirisha and Yasser in class on Monday and then create some dummy data to test the metrics and logs parts of the web application with.

By the end of next week, I hope to complete the testing of the web application with dummy data and individually test the camera and accelerometers since I did not get to that this week.

Elinora’s Status Report for 03/18/23

This week, I mainly focused on translating our web app design into code with Sirisha, primarily working on the login and registration pages. I also looked into how we could use Firebase to store our login information for the web app and read through the intro tutorials on its website. I spent a lot of my time this week outside of class on the ethics assignment as well. 

I am mostly on schedule according to our Gantt chart. We had previously scheduled for me to assemble the device this past week, but we are still waiting on some ordered components to arrive. Last week I had set the goal that I would research and decide on a cellular dongle, but I decided to hold off on that task for a while since we won’t need the cellular dongle for 2 more weeks. 

Next week, I will finish up the structure of the web app with Sirisha and create and feed dummy data into the web app to calculate and display the corresponding graphics on the metrics page. Once we receive the accelerometer and camera, I will test the accelerometer and assemble the device. I will also be working on the second half of the ethics assignment and attending the ethics lecture, so I will make sure to plan ahead and reserve more time to work on tasks for the project outside of class.

Elinora’s Status Report for 03/11/23

Earlier in the week, Sirsha and I set up the initial structure of our web application in React over VSCode LiveShare. We programmed the frontend basics for the login and stats pages and tested that we could access these pages by clicking different buttons on the web app (like the “Login” button leading from the login page to the stats/home page). We also decided to add an additional page to our UI design in which users can access the individual log for each time that feedback is triggered from their device. Viewing this page provides users with more detail regarding the kind of inattention that they exhibited and the layout of the page is included in this week’s team status report. I spent the rest of my time this week working on the design report with Yasser and Sirisha. More specifically, I was assigned the introduction, use-case requirements, architecture, and parts of the implementation and design trade studies sections. I also briefly tested the speaker that we ordered and confirmed that it played sound clearly from a .wav file when connected to my computer. 

I am pretty much on schedule with our Gantt chart. After we decided to use a cellular data dongle instead of a WiFi dongle to send data from the jetson to the web application, we wanted to conduct more research before ordering a particular cellular dongle. Since transmitting the data to the web application is not scheduled in the Gantt chart until 2 weeks from now, I will hold off on submitting the order until we are sure. Otherwise, I am on schedule with my tasks.  

For my deliverables next week, I am scheduled to assemble the hardware components of the device and test power consumption. I also want to research different cellular data dongles and decide on one by the end of the week. For the web application, I will more fully flesh out the login and registration pages this week and potentially set up Firebase for the actual login/registration capabilities of these pages.

Elinora’s Status Report for 02/25/23

This week was pretty busy for all of us and we had design presentations during class, so our Gantt chart schedule was relatively light. On Sunday I spent a lot of time finishing up our design presentation slides and speaker notes with Yasser and Sirisha. I submitted an order request for an accelerometer, which should arrive next week to begin testing on. The last part that I am in charge of ordering is the Wifi card for the Jetson, but I want to have a conversation with a TA that has more experience with using Jetsons before I select a card and submit the order form. I also met with Sirisha outside of class to create a more final design for the web app and which technologies we wanted to use. We decided that we wanted to use React for the frontend, Firebase for login capabilities, and that we want to send data from the Jetson to our cloud data storage (on an AWS S3 bucket) at routine intervals every few minutes. We also decided that we wanted to include a log page in the UI design that would record the time that each notification to the user took place and the reason for that notification (inattention or drowsiness and a more specific description).

I misread the schedule last week (mixed up start of week vs end of week dates) on our Gantt chart and thought that we were behind schedule in my last status report. The tasks that I thought needed to be completed by the end of this week are actually scheduled to be completed by the end of next week. I am on track according to our actual schedule that we confirmed as a group. 

The deliverables I listed in my status report for last week (since I misread our schedule) are the deliverables that I hope to complete by the end of next week. After talking with a TA about the Wifi card, I will submit an order form by the end of next week. With the initial logistics and page designs for the web app all set, Sirisha and I are ready to set up the initial structure of the web app together next week. We will also divide up which pages each of us will work on and I will start implementing the basic format of my assigned pages. Next week I am scheduled to conduct initial testing on the individual hardware components. I want to test out playing sounds from code on the Jetson to the external speaker that we ordered. Additionally, I want to measure the power consumption of the Jetson while running basic code (likely just the code sending audio data to the speaker) to see how feasible it will be for us to fully power the whole device with the 12V power outlet in a car. I will also work with Yasser and Sirisha to apply the feedback from our design presentation to write our design report. 

Elinora’s Status Report for 02/18/23

I spent the majority of my time this week working on aspects of our upcoming design presentation. After discussing and deciding the design/implementation of our project with my teammates, I put together the system block diagram for our presentation. Sirisha and I also worked together to make more fleshed-out UI designs for the web application aspect of our project with Google Slides. We designed the login, registration, and main statistics (home) pages.  

Capstone UI Design as of 2_18_23

Outside of the presentation, I spent some time looking into how to send the driver inattention data from the Jetson (where CV and classification is taking place) to our web application while in a moving car. It looks like adding a wifi card to the Jetson with bluetooth capabilities will work for our purposes, but I want to talk more with one of the TAs/professors with more experience working with Jetsons on Monday to confirm this before submitting an order for the part. I also submitted orders for our speaker and a cable to connect the audio jack of the speaker to the USB-C port on the Jetson. 

My progress is behind schedule according to our Gantt chart. Specifically the “Device Schematic/Parts Selection” and “Testing Each Component Individually” tasks will need to be pushed to next week when we finish submitting our parts orders and receive the parts that we want to test individually. When setting our original deadlines, we did not take into consideration the time it would take to decide, approve/order, and receive each of our individual components. We do have our borrowed Jetson, but all of our other components are either ordered and not yet received or will be ordered on Monday. I updated our Gantt chart to reflect this. 

In the next week, I hope to finish submitting all of our part orders with Yasser and Sirisha and test out playing sounds from code on the Jetson to the external speaker that we ordered. I will also work with Sirisha to implement the initial setup of our web application (creating the initial pages and some basic components in React.js) according to our UI design. Additionally, I want to measure the power consumption of the Jetson while running basic code (likely just the code sending audio data to the speaker) to see how feasible it will be for us to fully power the whole device with the 12V power outlet in a car. 

The particular ECE courses I’ve taken that cover the engineering principles our team used to develop our design are: 10-301, 18-220, 18-341/18-447, 17-437 (Web App Development), and 05-391 (Designing Human-Centered Software). 

 

Elinora’s Status Report for 02/11/23

Last weekend, I spent the majority of my time finishing up the proposal slides and practicing for our proposal presentation since I was our presenter. During the week I worked on defining the key requirements for our web application and brainstorming different ways that we could present personal driving attentiveness data to the user. I sketched out an example layout for main page of the web application, but expect this to change significantly when Sirisha and I work on the design together next week. I also submitted a request to use the NVIDIA Jetson AGX Xavier from the ECE department, which was approved. 

My progress is on schedule with the chart we presented in our proposal presentation. We gave ourselves relatively less to do this week since we wanted to get feedback on the proposal presentation before investing significant time into components of our design presentation. 

Next week I will work with Sirisha on the design of our web application and hope to deliver the initial design. This will ideally include a fleshed out description and visualization of all the data that we want to include in the application, as well as the general user flow. Working with the rest of the team, I hope to also complete our design presentation slides, which are due next Sunday. Additionally, we will all be finalizing part selection and submitting orders for our parts early next week so that we can start testing the individual components as soon as possible.