Parker Randall

Road Profiler

(Summer 2021)

Since the 4-DOF ride model that I created during my time in Formula SAE requires a road profile as an input, I wanted to devise a method of measuring an actual road's profile. With the profile of a road on which a vehicle is to drive, the 4-DOF ride model can be made more accurate to reality and thus more useful in vehicle design. I also started this project because I thought it would be a fun way to practice using Raspberry Pi, Arduino, and Python.


The road profiler consists of two sensors, a 3-axis accelerometer and an ultrasonic rangefinder. They are controlled by an Arduino, and data is sent between the Arduino and a Raspberry Pi via a Python script. The sensors are mounted to the knuckle/upright that holds the wheel to the car.


The vertical acceleration can be integrated twice to get a height. The height from the range finder can then be subtracted from the accelerometer's height to calculate the road's height. By subtracting the range finder's height out, the change in height caused by the tire deflecting (not the road changing) can be negated. Then, with the vehicle traveling at a constant velocity, the sensor's horizontal position can be calculated. This then allows for a plot of vertical position as a function of horizontal position to be generated.


The whole system functions properly on its own, but I am still waiting for a chance to test it on a vehicle and analyze the data.

Exploded view.

Mounting location on FSAE car.

Inertial road profiler fixtured to a bicycle.

Close-up of sensor mounting.

Sample data taken on bicycle and processed in MATLAB.

This does not show an accurate road profile, since the device requires higher speeds to get a perceptible vertical acceleration measurement.