Berkay YarderTCS student, University of Twente
mberkayyarder@gmail.com
Enschede, the Netherlands

~ / projects / frc-drive

FRC robot drive system

The drive system for my high school’s FIRST Robotics Competition robot, written in Java. This is where I got into engineering.

Years
2021 to 2023
Team
FRC Team FMWill, Istanbul
Role
Robotics software engineer
Stack
Java, WPILib, NavX, RoboRIO
Video The swerve drive base on a test run in our school hall.
front NavX // PID per module // every wheel steers and drives on its own
Fig. 6 Top view of a swerve drive. Each wheel module steers and drives on its own, so the robot can move in any direction while it turns. The NavX gyro gives the heading.

What I did

At fifteen I joined my school’s FIRST Robotics Competition team. I designed and implemented a new drive system for our robot in Java, including tuning the PID loops for the motors, which made the robot noticeably easier to manoeuvre on the field. At competitions I was the one debugging the autonomous routines between matches.

How a swerve drive works

Each of the four wheel modules has its own steering motor and drive motor, so every wheel can point in its own direction. That lets the robot drive in any direction while it rotates. Each module needs its own control loop to hold the angle it’s told to, and the NavX gyro tells the code which way the robot is facing.

Teaching

I also ran workshops for newer members on software development principles, coding standards and how to structure a team so the code survives the people who wrote it.

Result

Our team won five awards at FRC events: Engineering Design, Regional Finalist, Quality, Imagery and Team Sustainability.

Try it

Swerve kinematics

Set how the robot should move. Each wheel gets its own angle and speed: v = v_robot + ω × r.

Top view, front is up. Arrow length is wheel speed.