FIRST Robotics Competition
Lead Programmer | Team 5152 | 4 Years
Overview
I was the lead programmer for 4 years as part of the 5152 FIRST Robotics team. I worked on 4 custom robots across the years for each competition, learning both open and closed loop feedback controls. Utilizing a wide array of sensors and actuators including DIO, analog, and PWM signals, I programmed PID controllers for applications such as vision tracking and odometry.
Prototype to competition: ball launcher development and 2019 robot
System Development
Swerve Drive
Developed a holonomic swerve drive system allowing omnidirectional movement with independent rotation control. Unlike traditional tank drives, swerve enables the robot to strafe in any direction while simultaneously rotating.
The implementation required:
- Inverse kinematics to convert joystick inputs to wheel vectors
- PID control loops for each steering motor
- Odometry fusion combining encoders with IMU data
- Field-relative control for intuitive driver operation
Controls Architecture
Each robot utilized a layered control architecture with the following components:
- Motion Control: PID loops for drivetrain velocity, arm positioning, and shooter RPM
- State Machines: Managed complex sequences like autonomous routines and intake cycles
- Vision Processing: Limelight camera integration for target tracking and alignment
- Communications: CAN bus networking between roboRIO, motor controllers, and sensors
Technical Skills
| Category | Technologies |
|---|---|
| Languages | Java, LabVIEW, Python |
| Control Systems | PID, Motion Profiling, State Machines |
| Sensors | Encoders, Gyros, Lidar, Limelight |
| Hardware | roboRIO, Talon SRX, Spark MAX, CAN Bus |