Second Place Solution in Fall 2024 Simulation Racing Series
Written by Mark Menaker and Aryan Mukherjee, on behalf of their team from University High
School (Irvine).
GitHub: https://github.com/MightyMark3/Uni1_ROAR_Spring24
Table of Contents
Introduction and History
The 2nd place fall solution was based on the 1st Place solution from Summer 2024, by BHS
Racing.
The BHS Racing Solution was largely based on our (University High School) 1st place solution in Spring 2024.
The Spring 2024 solution was mostly based on Mark’s Fall 2023 solution, which in turn was based on the second place solution in Summer 2023.
For details on the general workings of the solution, please see those reports.
Modifications from Summer 2024 Winning Solution
The winning solution from Spring 2024 was centered around dividing the track into sections and optimizing throttle control in each section by manipulating the coefficient of friction.
In addition to further friction coefficient tuning, the winning solution from Summer 2024 featured changes to the racing line and other steering modifications, which were largely unchanged in our solution.
For this competition, we followed a similar strategy to the one used in Spring 2024, except we applied the optimization to braking as well. We created the following values:
● brake value (default 1.0)
● low brake value (default 1.0)
● speed excess threshold (default 0)
● brake release speed (default 0)
The default values made the brakes behave as they did in previous solutions. However, in
sections 4, 6, and 9, these values were modified.
When the car was traveling much faster than the target speed, the brakes were applied using the standard brake value. If the car was above the target speed, but within the speed excess threshold, the lower brake value was used. If the car was below the brake release speed for the section, the brakes were released, regardless of the target speed.
This allowed us to further fine-tune specific sections to use less brakes and avoid dropping
speed way below target.
Debugging
We noticed a problem with the code to calculate the lookahead point. Normally, the car is
supposed to find a point within three meters of it, and use it as the current point, and then find the lookahead point, which would be a specified distance ahead of it. But we found that the track is wide enough that in some turns the car is not within 3 meters of the waypoints as it traverses the outside of the centerline. As a result, the previous waypoint is used to find the lookahead point, which means the car has moved but the lookahead point did not advance and we are not turning enough to complete the turn. Our change was to adjust how the current waypoint is computed.
Racing Lines
We attempted to use an Euler Spiral to modify the racing line around waypoint 1965, since this is often a trouble spot. However, this method did not result in any improvement in lap time. We may further pursue this method in future competitions. We also tried to split the track into 15 different sections by waypoints, using linear regression, logistic, and trigonometric curves to best model the waypoints along each section. We initially intended to use these best fit models to program the car to follow a particular smooth path for 15
different intervals per lap and eliminate time loss from variable adjustments. However, we
decided against implementing the solution because we were unsure if it would yield a quicker time than the previously established solution. We may, nonetheless, consider it during future seasons.
Conclusion
A big thank you to Dr. Allen Yang, Mr. Huo Chao Kuan, and your team of experts for all the effort put into running the competition! As ROAR Ambassador, I have enjoyed the opportunity to bring ROAR to my school. Another big Thank You goes to Mr. Shulman, who advises the Autonomous Car Racing Club at University High School! Finally, I would like to thank my enthusiastic teammates: Aryan Mukherjee, Radin Khosraviani, Pirouz Ruppert, and Chan Im!