Garrett Burroughs

Alloy

A framework for coding FTC and FRC robots

Github Link

Summary

Alloy is a framework used for programming both FTC and FRC robots. The main features are:

The project stopped being maintained when I graduated high school, so there are some features that mayincompete or not fully functional.

Languages Used: Java

Technologies Used: WPILib

Takeaways

This was the first major project that I worked on, which lead me to understand some really important concepts about design. The project had many iterations, starting with some concrete utilities, that were not very extensible. When I realized that this was not sustainable for the long term, as it was not very modular or adaptable, I decided to rewrite the system with the component system. I also learned a lot about object oriented design, as the project takes advantage of inheritance, polymophism, encapsulation, abstract classes, interfaces, and type generics. The project also takes advantage of reflection to dyanmically add methods to the update system at runtime.

I also learned about over-engineering, as this project sometimes gets to 4 or 5 levels of inheritance , which I thought was cool intitially. After working with the project for a while, I realized that this much complexity within the project caused some confusion when trying to understand what everything does.

Contributors

While the code of this project was written mainly by me, many ideas have been contriubted by the team members of FRC Team 555 - Montclair Robotics.