Riassunto analitico
The aim of this thesis is to develop a simulation pipeline for the UNIMORE Racing Team, the autonomous racing team of the University of Modena and Reggio Emilia, which competes in the Indy Autonomous Challenge and the Abu Dhabi Autonomous Racing League. These events aim to advance research in autonomous racing vehicles by organizing races that test various aspects of autonomous driving systems. The vehicles used in these competitions are real racing cars equipped with all the necessary sensors, computers, and actuators to enable full automation. The cars operate entirely autonomously, with teams only tuning the vehicle's behavior using parameters exposed by the software stack. In such races, track time is always limited, so having a reliable simulator is key to developing a complex software framework like an autonomous driving stack. Previously, we manually tested the code before loading it into the car, which was time-consuming. Therefore, the new solution was designed to build interfaces that allow the automation of this process. The pipeline is based on a custom simulator that uses an FMU model. This model closely emulates the vehicle dynamics of our car and can be improved with data collected from each race. The simulator takes as input the commands for throttle, steering, gear, and brake, and uses them to calculate the vehicle's state. The vehicle state is then processed by the simulator interface into data that emulates the car's sensors, such as IMUs and GPSs. Noise is applied to the signals from these sensors, though the result is only an approximation of real signals. To automate the simulation, a several software components were created: a library that processes and analyzes the test recordings, classifying successful runs from those with errors or dangerous behaviors; a component that changes the vehicle's parameters (e.g., max speed, racing line, acceleration bounds) at certain points of the track to emulate a real run; and another component that emulates sensor faults to test edge scenarios. This setup allows us to test different scenarios and identify bugs and errors before the car enters the track.
|