
Overview
My final year at university was primarily focused on my dissertation, for which I chose to implement and evaluate an anti-lock braking system. The idea was suggested to me by a professor who noted that an accurate, open-source ABS model would aid his research. To achieve this, I based the ABS control loop on a Bosch algorithm described in engineering literature and ran simulations using the open-source software “Speed Dreams 2”, which features advanced vehicle physics.
Implementation
The main goal of the dissertation was to build an ABS implementation that resembled the behaviour of commercial systems closely enough to be useful for research and experimentation. Starting with a Bosch engineering textbook, I found a description of a general ABS control loop and then filled in a key missing piece myself: vehicle speed estimation under heavy braking, where wheel speeds alone stop being reliable. For this, I used an Extended Kalman Filter.
View the ABS library on GitHub
Simulation and verification
To verify that my solution worked as intended, I needed to test it in braking scenarios that were as close to the real world as possible. Choosing the simulation environment was a significant part of the work. I learnt about Speed Dreams 2 through its use in online communities focused on building autonomous vehicles. Rather than build a vehicle model from scratch, I used Speed Dreams because it exposed individual wheel braking and had a more realistic physics model than many of the open-source alternatives I considered. That mattered because an ABS implementation is only as convincing as the environment used to test it. By writing my own Speed Dreams driver, I ran controlled braking sequences, compared estimated vehicle speed against simulated ground truth, and inspected how brake commands and slip values changed over time across all four wheels.
View the Speed Dreams driver on GitHub
Reflection
This project turned out to be a lot more work than I initially anticipated. Not only did I have to build a non-trivial piece of software on my own, but I also had to research the underlying physics and embedded real-time control systems, then learn how to integrate the result into an existing simulation platform. The finished system remains one of the most technically ambitious projects I have ever undertaken, and completing it gave me a big confidence boost in my ability to take on bigger challenges.