CPR Software Division
This division boasts some of the most exceptional problem-solvers on our team, entrusted with the critical task of making our robot functional. Our talented software students hone the essential skills of any engineer—innovation and collaboration—as they work behind the scenes to power our robot. Without their code, our robot would be unable to complete any of the tasks set by FIRST. The software team can modify code mid-competition to address mechanical issues, enhancing our chances of victory. Students in this division acquire essential programming logic and skills, providing CPR alumni with a competitive advantage in college and their careers.
Programming 1
The Programming 1 subdivision consists of new students in the CPR Software division. Our team builds upon any prior experience the students have and teaches them a diverse range of skills in Java, as well as knowledge about FRC-specific software, setting them up for future programming success. This includes working with software such as GitHub and IntelliJ IDEA. Programming 1 students receive ample practice programming single motors and smaller robots, ensuring they are ready to program the team’s robot when they return for the next season.
Programming 2
The Programming 2 subdivision consists of returning students in the CPR Software division. Building on the knowledge and skills acquired in Programming 1, these students focus on programming the competition robot. Our team uses command-based programming because it is organized, easy to reference, and easy to explain. The students use command-based programming to program complex mechanisms like swerve drives and intricate subsystems. In addition, the Programming 2 students utilize software such as WPILib, AdvantageKit, AdvantageScope, PathPlanner, and PhotonVision to optimize the robot’s performance.
Key Success Attributes
Our team is dedicated to advancing and optimizing our robot’s performance. Key initiatives include developing multiple autonomous routines, utilizing vision systems for precise accuracy, and automating as many tasks as possible. We create several autonomous routines tailored for various starting configurations and alliance arrangements, which significantly enhance match performance and complement our alliance partners during the autonomous phase.
Our cameras detect reflective tape or AprilTags on the field, providing valuable data such as the robot’s position and firing solutions for the shooter subsystem. Automating numerous robot functions saves time and greatly impacts overall performance. We frequently automate shooting and climbing routines, and we bind complex functions to a single controller button, enabling the initialization of subsystems or the execution of several related functions simultaneously.