Close

V2

A project log for Road quality assessment with IMU device

Could we use the accelerator massively available in today electronic device to monitor road quality

karl-st-arnaudkarl St-Arnaud 04/06/2023 at 01:530 Comments

Update

Here are the main updates since my last project log

Goal

There were two goals in this update

Measuring device v2

Measuring device v2
Figure 1: Electronic diagram of measuring device v2

The main changes are enumerated below: 

FPS

The FPS of both sensor GPS and IMU was improved compared with V1

GPS is now capturing at 1 fps. The previous version used to stop when the car was stopped (as per the application that was used in V1)

IMU fps is not stable but it is 99% higher than 100Hz.

Process

In V1 the process of the data was simply done in a Jupyter notebook. This is easy to use for developing new features and testing hypotheses, but not as useful when coming the time to process a larger volume of data.

For V2, I developed a small library to automatically process my data. I am not 100% sure yet about the full architecture of the library. I spent quite some time thinking about what should be the main class. After some time, I decided to put my current idea on VScode and agree on improving as I gather more data and get a better view of what should be the main class and function. The figure below depicts the current architecture of the library.

Figure 2: Post-process library architecture

There are mainly four classes that are used by the entry point `roadqa_process` to generate a map:


The logic behind the process of v2 is the same as V1. There are essentially three factors to control the process:

  1. Sensibility: Control how sensible the post-process is too small vibration
  2. Threshold: Control the minimum perceptible vibration
  3. Contrast: Control the contrast between low and large vibration

Process improvement 

I didn't have that much time to improve the process as I intended to, but I have a few ideas to improve the process:

  1. Modulate the vibration metric with the speed of the car. For example, the vertical acceleration will oscillate more if the car hit a pothole at higher speed.
  2.  For now, most of the analysis is done in the spatial domain. I had the idea of using a spectrogram (Frequency domain). I generated the spectrogram data for the sample data but didn't figure out a way yet to extract relevant information.

Result

To validate the functionality of V2, I did a similar capture and analysis as in V1. I drove along a path and noted the outstanding good (2) and bad (1, 3) sections of the road. The figure below depicts the vibration metric along the path with some photos extracted from the latest google street view that show the condition of the road side by side with the vibration metric.

Road vibration map
Figure 3: Road quality map comparison

Next step

Discussions