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
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.