| 22 | We used Android Studio to program the application on the Android phone to collect relevant sensor data about the car's dynamics. For instance, we used dead reckoning in order to derive both velocity and position from accelerometer readings. However, this lead to issues with both accuracy and precision. The problem our team ran into when attempting to run double integration on raw accelerometer data was that the original acceleration data was extremely noisy, and double integration only exacerbated the inaccuracies, thus leading to position being neither accurate nor precise. Thus, we implemented a variety of algorithms to help predict and/or smooth the data provided. First, we implemented a low-pass filter, which in practice removed data above a set cutoff frequency and removing any extreme changes in the raw data. We also implemented a version of the Kalman Filter, processes the acceleration data in real time. The Kalman Filter essentially uses the acceleration data to predict velocity and displacement, and compare these predictions with the readings given, using a weighted average to output a value. These estimates also become more accurate over time, as the filter continues to calibrate itself automatically. Lastly, we attempted to accommodate for drift. |