ARC Rocket League

making autonomous rc cars play soccer


Since the start of my junior year, I have been leading a team of a dozen students to build a system of autonomous RC cars that play soccer against human-controlled opponents. I started the Rocket League project while president of the Autonomous Robotics Club of Purdue and was inspired by the video game of the same name.

The current goal for the project is developing a demo where a human controlled car competes against an autonomous car. This will demonstrate the critical functionalities of our prototype and be achievable by spring 2022. A long-term vision for the project is starting an intercollegiate competition where teams from different universities develop their own software to run on stock car hardware for a large competition bracket.

I’m the project manager of the group. The members are organized into several subgroups based on interest, and I coordinate their combined efforts. I also contribute heavily to the autonomy and control subgroups.

The autonomy group is developing a reinforcement learning policy to control the car’s movement so it can score goals. Currently, it uses an end-to-end model where the network directly produces reference velocities for the car. It can also use a software stack to generate the reference velocities given a desired goal location produced by the network. My contributions to this group have been developing an interface between OpenAI Gym and ROS. With my interface, any ROS network can be treated as a Gym environment on which to train. This is useful in our project since the software stack and simulator have all been created as ROS nodes and need to be present when the agent is training.

The control group is developing a closed-loop control system that allows the car to achieve the reference velocities produced by either the deep learning agent or the software stack. Feedback is provided through a perception system that utilizes AprilTags. My contribution on this team is performing the system identification for the car and developing the control law. This is still a work in progress, but results are promising so far.

Through this project, I have had incredible opportunities to both teach and learn from others. The final system combines the work of many talented individuals, and I take a lot of pride in what we’ve built.

A technical overview of the team’s progress can be found on the club’s wiki. Additionally, all the code is open source and can be viewed on the club’s GitHub repo.