SOAR
December of 2024 to August of 2025

My first robot! SOAR was a FIRST Tech Challenge Robot for the INTO THE DEEP Season built by team #10195 Night Owls. With the software I developed, this robot achieved the #1 Autonomous Offensive Power Rating in the State
During this season, I was the lead programmer of the team. I programmed the robot in Java using Android Studio. This years game pieces were called samples.
Please see the notable features below:State Machine
SOAR has a Drivetrain, Vertical Slides, a Shoulder, an Arm Extension, a Claw, and Camera. Therefore to control the robot efficiently without using several buttons, I used a State Machine where the state of the robot determines each of the subsystems state. This allowed the robot to be controlled with only 4 buttons, with the rest of the buttons being used as overrides.

Sample Tracking
Since SOAR uses a simple claw, picking up samples can be difficult where a slight misalignment can cause the claw to miss. To overcome this, I developed a sample tracking algorithm that uses a camera on the claw to detect samples, where the driver presses a single button and the robot aligns itself over the sample and picks it up. This system uses OpenCV with contour detection looking for red, yellow, and blue blobs, then a boxfit to determine the position and orientation of the sample. Next, a PID controller generates a drive and strafe power for the drivetrain proportional to the pixel error from the center of the camera to the sample position, allowing the robot to align itself over the sample and pick it up. Finally, the robot rotates its claw to align itself and then picks it up.
This sample tracking abilitiy would make the robot much more accurate during autonomous and teleOp.
Autonomous
For Localization, the robot utilized dead wheel odometry combined with IMU. For Pathing, I used Pedro Pathing, an FTC Community Pathing library which utilizes multiple PIDF controllers to make the robot follow lines and bezier curves.SOAR achieved the #1 Autonomous Offensive Power Rating in North Carolina. To achieve this, SOAR utilized its sample tracking algoirthm to pick up samples in the submersible (a zone where pieces positions are scrambled). To improve reliability, I also added the ability for the driver to tell the robot where to go before the match started and what color to target, this on its own is not perfect as the robot may be misaligned but combining it with the sample tracking algorithm made the robot much more accurate.
Above shows the robots sample autonomous.
TeleOp
Using state machines and sample tracking, the driver could pick up a piece in two clicks of a button (first click to go to scouting mode and the second to identify, move to, and grab a sample), then, to deposit the piece, it would also take only 2 buttons (1 to go to deposit mode, the other to open the claw)
Below is a button that leads to a youtube video of the robot in TeleOp mode scoring 14 samples and level 2 climb.Click Here