Samraj’s Status Report 5/8/21

This week I made slight adjustments to the website to accommodate last minute changes in the algorithms and measurements. For the infraction notification page, I added an indicator for the status lights on the car, so the user will know if the check engine, tire pressure, oil level, etc. lights are on. I also added some more visualization for the overall data report to plot the average speed and acceleration. Besides this, I did a lot of testing to make sure the system is working and updating correctly and helped in fine tuning the algorithms. We noticed that there were some issues with the website updating due to the post requests being made in different threads within the algorithms, but we were able to fix this issue by sending all the data simultaneously within the script. Additionally, through the testing, I noticed that some of the infraction notifications were not being sent at the right times or correctly, but I was able to spot and correct these issues. I also spent time this week helping to create the demo video and final poster.

Ryan’s Status Report 5/8/21

This week I changed the structure of our analysis functions. A few weeks ago I started using threading for each of our analysis functions along with the data collection function. This week I changed our program to only use two threads – one for the data collection, the other for data analysis. I realized that while having a thread for each individual analysis function is means they can all work independently, it also means that they have to send their results to the website separately. This trade-off is not worth it because the API calls take a long time relative to the analysis we do on the car data, so by making all the analysis functions sequential, we only have to make one API call to the website, which saves us time. We still use separate threads for the data collection and data analysis. We also did driving tests to work out any remaining bugs in our pipeline – making sure the raw data and infraction data were being collected and sent to the website properly. I also worked on our final presentation slides for class this past Wednesday and practiced presenting them many times.

Team Status Report for 5/8/21

This week our team mainly got ready for our final presentation and video. We ran more tests through Squirrel Hill to make sure our GPS/ Speed Limit functionality was working and in turn, made some tweaks to get a more accurate reading for the user. We also added more accepted PIDs to our database and backend for vehicle error codes which can alert the user if the car requires maintenance. We improved the UI and presentation of our Drivaid box for our video because earlier, too many wires were on the dash which could hurt usability and make installation more difficult. We are planning on finishing our filming tomorrow and have made progress already on our final poster. It has been difficult this week and weekend since we all have other commitments/projects and upcoming finals that require attention, so work balance has been difficult this week. Samraj also left for home today, so we will need to work remotely on the last bits of our project for the coming two days, which should not be terrible because the website UI is pretty much finalized.

Reid’s Status Report for 5/8/21

This week I mainly worked on getting everything ready for our final video and report. I worked on the poster and helped with final debugging before we shoot our final video in the car tomorrow. Both the poster and raw video should be finished by tomorrow. I conducted some final tests to make sure our speed limit functions worked. We tweaked our API call to be more accurate to our exact location, since before we were using a set bounding box off of our known location, but we now just supply one coordinate to get one mph reading, which simplifies our system. I also found and added the PIDs for DTC (diagnostic trouble codes) to be shown as warning lights on the web application to substitute for the missing steering wheel codes we could not find. For presentation, I added velcro strips to the box to keep it from moving around in the car and looked into moving the box to underneath the steering wheel compartment to minimize wires interfering with the driver. Our product now looks very presentable with most wires contained within the box.

Samraj’s Status Report for 5/1/21

This week I worked on adding final changes to the website. I finalized the notification system by adding a series of lights on the page that will flash when an infraction is detected. This way, the user can see the violation but won’t have to read and get too distracted. I also added some more navigational features to the site to view all of the data. We also were able to receive more the error codes from the car through the OBD stream, so I needed to add a feature on the website to be able to see if any of these error codes is triggered on the car. Besides the website, I helped with the final steps of integration and testing the system to make sure everything is functional before the demo. I helped Reid to design and cut a box to store all the components in when it is in the car.  I have also been running tests in the car to make sure that all the data is being read and stored correctly and properly sent to the website in real time. So far, there don’t seem to be any major issues and we just need to do more small refinements before the demo.

Team Status Report 5/1/21

This week our team continued working on the three subsystems – OBDII signal detection, OBDII data analysis, and web application data display. In the OBDII detection area, we found more data points to gather to improve our safe-driving analysis. Specifically, we started measuring a number of signals that detect internal problems with the vehicle’s mechanical and electrical systems that are not obviously apparent to the user. We realized that even though vehicles often notify the driver when there is a system error through the dashboard lights, it is important to track that data so the user knows not only what the problem is, but also when the problem started. In the data analysis section, we optimized the use of API calls, making sure they are only used in locations we have not driven before. This results in a faster, less expensive final product. Finally, we have improved the web interface by adding a page that displays the status of each infraction our analysis measures. We made sure to keep it simple so the user can quickly understand if they are making an infraction and in which category. We did this using binary light displays for each infraction – either the user is making the infraction or they are not. This is important because it gives the user the option to view their mistakes in real-time and correct them, instead of only knowing after the fact when the drive is over.

Ryan’s Status Report 5/1/21

This week I improved the speed limit analysis function by adding the capability of saving GPS coordinates and with their associated placeId. Whenever the speed limit function collects GPS data, I save the coordinate to placeId association in the SQLite database. Because our GPS is only accurate to three meters, having the GPS in the same location doesn’t necessarily mean it will output the exact same coordinates. To account for this device inaccuracy I search the table containing the saved GPS coordinates with a 1.5-meter range in all directions – increasing the number of coordinate-placeId cache hits. This decreases the number of API calls made, resulting in a lower cost final product for the user. Additionally, I fixed all bugs associated with the GPS, so it is fully functioning using the antenna attachment. The GPS regularly updates its position every second and using this data, we can regularly get the speed limit of the road the vehicle is on.

Reid’s Status Report for 5/1/21

This week I worked on the enclosure more and added more OBDII signals to the car end. The enclosure I laser cut last week was too small for our device and the base was not ideal for my car, so I made the enclosure larger, so that is now finalized. I checked for error signals which can be stored in the database now – these include engine lights and mechanic’s warnings. I also helped with the API for the speed limit and used the Open StreetView API and fed in points that we found using our antenna to generate results. I worked with Ryan closely to make sure our two systems worked alongside each other – correct values were being passed to the database after conducting more tests using my car. Our testing went well and I am confident that the OBDII codes subsystem are being placed in the SQLite database in the correct places. I also added error checking for OBDII codes that are out of range, as sometimes the on-board computer returns zeros very occasionally – in these cases I return the last recorded legitimate code so the database doesn’t include spikes that would set off false infractions.

Team Status Report for 4/24/21

This week we worked more on our individual parts more to finalize all of our subsystems. We are fairly confident in our interconnect-ability of our subsystems because they worked in our demo well and we are just adding new features on top of what we demoed. The area of most concern so far is the missing non-standard PIDs that we need for the new analysis functions that Ryan has written and tested. On our website and frontend, we are making more adjustments to our website to bring our update rate up from 10 seconds to real-time. This will be important so that the driver can get real-time infraction notifications, but we will keep the 10 second update time for our logs which do not require real-time viewing. We have our GPS set up after ordering our antenna to receive more accurate data. In terms of presentation, we worked on an enclosure for our Drivaid device that can be mounted in the car using velcro strips, which will provide a safer and more user friendly interaction with our system with fewer exposed connections. For next week, we are going to integrate our systems again to make sure they work with Samraj’s updated website, and keep looking at different methods to obtain the correct non-standard PIDs.

Samraj’s Status Report for 4/24/21

This week I made some more modifications to the website. During our demo we noticed some issues with how the live data updates and the update rate was not as fast as it should be. This was mainly due to an issue that the service I was using to host the data was not set at the correct update rate, but I was able to fix this to update every second. Aside from this, I worked more on the live notifications and getting a solution working so that the data is sent in real time and pop’s up on the users screen. I am looking into an alternate solution to send real time push notifications to the phone rather than updated the website constantly, since this is harder than anticipated. This seems to be more feasible and I plan to get this working early this week. I also spent more time working with the team on integration and testing that the system all works together properly.