I was apart of the FIRST robotics team at my high school for 2 years. My senior year, I worked on the programming sub-team. I did many things while I was on the team. The two things that I enjoyed the most were developing the autonomous routines and developing the auto aim.
For our competition, there were 15 seconds at the start of the match where the robot has no one controlling it. This was called the autonomous phase. So, for this, I had to determine what exactly the robot would do in those 15 seconds. In this phase, I made the robot shoot the balls into the goal, as well as move across the field to pick up more balls. Not only this, but I had to develop multiple different paths, as we did not always start at the same spot every time.
As for the aiming, I had to work with other people on my subteam to figure out a way to aim correctly, and quickly. Since manually aiming would put too much work and stress on the drivers, we decided to develop an auto-aim feature. We did this using machine vision. We had a camera that would detect where the goal was. The camera would then send the coordinates of the goal to the robot, where it would determine how much it should turn, the angle it should shoot at, and how fast to shoot at. This feature had about a 90% accuracy rate when shooting in the big hoop.
I did some other things while on the team as well. For example, I had to help my mentor implement swerve drive, which is where the wheels could freely spin and move any way at any time. This was in contrast to our previous years, where we would use tank drive. Implementing swerve drive was pretty difficult and involved a lot of math, but I definitely enjoyed doing it. I also worked on the programming for the shooter hood and the shooter fly wheel. I had to program the hood to move up and down using a servo, and I had to program the fly wheel to spin at a certain rate when told to. All-in-all, I really enjoyed my time on the robotics team.