FIRST Robotics Competition

Lead Programmer | Team 5152 | 4 Years

Controls Java LabVIEW

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 Final 2019 Robot

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