High level decision making node for F1tenth

Unlike traditional robotics tasks, F1Tenth involves split-second decisions to navigate rapidly changing scenarios such as overtaking competitors, avoiding collisions, and optimizing racing lines. These requirements go beyond basic control systems, demanding strategies that balance speed, safety, and adaptability. In order to deal with the complexity and dynamic nature of the racing environment, we set out to construct a high-level decision-making algorithm which would help us improve the performance of the car while minimizing the risk of colliding with different obstacles (both the opponent car or obstacles along the path).
This project continues our last semester’s work on behavior node, this time upgrading it by taking into account the kinematics of the opponent car as well and use it to construct a complex finite state machine to ensure the F1tenth car manages to avoid collisions while performing as many laps as possible.