• Skip to main content
  • Skip to primary navigation
  • Skip to primary sidebar
Header Search Widget
Robot Open Autonomous Racing (ROAR™)
  • ROAR Home
  • Programs
    • AI Racing Tech
    • ROAR GO
    • ROAR Academy
    • Ambassadors Program
  • News
  • Simulation Racing
    • Maps
    • Past Results
    • Blog
  • Support Us
  • Contact

First Place Solution in Summer 2025 Simulation Racing Series

Written by Advay Bansal, a sophomore at Emerald High School.

Github: https://github.com/CodeWizard17/ROARCompetition_AdvayBansal

Table of Contents

Introduction

My solution builds off of Derek Chen’s Fall 2024 team’s solution. The final solution improves upon the previous logic, focusing on optimizing existing algorithms for the throttle controller, and tuning the coordinates of the section locations as well as the speed, in order to get the fastest possible time.

Monza Map

I created a script to visualize the Monza racetrack and optimize section start locations by plotting both the full set of waypoints and manually defined section markers. The waypoints from Monza.npz are loaded with the roar_py_interface, providing a clear view of the track layout and section divisions. Matplotlib is then used to render the waypoints as red points as well as labeled section markers, making it easier to fine-tune boundaries for debugging and performance optimization in the ROAR simulation.

In the above map, I improved the section locations in order to optimize the speed in different locations. The general strategy was to experiment with distances between sections that had less curves, trying to increase the linear distance, in order to go as fast as possible when there were minimal turns. First, in the previous solution, Section 1 was located near the curve before Section 2. I found this to be inefficient because it allowed for very minimal tuning between Section 0 and Section 1. Since there was both a landscape of a right curve and then a linear portion in the track between these two sections, having the same values for the speed and braking, slowed things down. Moving Section 1 lower down the track allowed for more flexibility in this process. This helped reduce the time significantly.

I also tried implementing similar changes in between Section 6 and Section 7, but corresponding changes to speed and braking in the Throttle Controller led to repeated crashes, making me only implement this change for Section 1.

Throttle Controller

Additionally, I also tried changing the mu values, changing the friction coefficient in order to experiment with higher speeds in the sections.

The first change I made was motivated by my previous change in the location for Section 1. I increased the mu value from 2.75 to 3.00. I also tried experimenting with small changes with the other sections, increasing the mu value to 3.4 and 2.95, for Sections 3 and 4. By increasing the mu values, I raised the simulated grip level of the car. This let the controller calculate higher safe cornering speeds, so the vehicle braked less and carried more speed through turns. This helped the lap time drop, but the car felt less stable, with any major changes leading to a high risk of sliding or crashing in sharp sections.

Conclusion

A big thank you to Dr. Allen Yang, Mr. Huo Chao Kuan, and the rest of the team at UC Berkeley for their time and effort in running this competition. This project wouldn’t have been possible without their support. I’ve really enjoyed competing in ROAR, and have learned a lot from this experience.

Primary Sidebar

Recent News

  • Announcing 2026 ROAR Ambassadors
  • Fall 2025 ROAR Simulation Racing Series Competition
  • 2026 ROAR Ambassador Applications due Oct. 1
  • Summer 2025 Simulation Racing Series Results
  • Contact
  • FHL Vive Center
  • Berkeley Engineering
  • UC Berkeley
  • linkedin
  • youtube
  • facebook
  • instagram
  • Privacy
  • Accessibility
  • Nondiscrimination

© 2025 UC Regents  |  Log in

 

Loading Comments...