Overview
I spent two years as a programmer on my high school FIRST Robotics Competition team, acting as the programming lead, strategy lead, and coach during my senior year of high school. Working on my FRC team served as my first introduction to control systems programming, and was one of the primary reasons I decided to become a mechatronics engineer.
During my time as a programmer on the team I implemented PID control with common guidance algorithms (ramsete controller, pure pursuit) to pick up and score several objects around the field autonomously. In order to achieve this I also implemented odometry and computer vision system which used OpenCV to refine the robot’s position estimate based on detected AprilTags, to counteract wheel slippage.
During the 2022 season, I did extensive physics modelling in order to improve the shooting accuracy of the robot. These models allowed us to continuously track the optimal flywheel speed using the robot’s position estimate, and automatically aim and shoot while the robot was moving, making robot operation drastically easier for the driver.
During the 2023 season, I experimented with more autonomous control. The game involved precisely placing pieces at various heights using the robot. The code included automatic alignment with the placement zone. The code also automatically moved the arm into a compact position or extended the arm when needed as the driver traversed the field, to allow near-autonomous control.