Github
Niskayuna RoboWarriors

6460

Semper Inspirans!

Scroll Down

Github

All of our code.

Notebook

notes? add smth

FTC 2025

add smth here

Team Structure:

Our team is divided into 3 subteams: Mechanical, Notebook, and Programming. These subteams are responsible for making the mechanical components of the robot, documenting and writing our activities in the notebook, and writing code for the robot respectively.

Chassis

To improve this year's robot, we retained the successful U-shaped frame from last season, as it provided ample space for intake and required minimal reconstruction, allowing us to focus on competition-specific components like linear slides and a custom claw. After addressing issues such as motor roughness and removing a chassis beam to optimize slide extension, the team ensured the robot's reliability and functionality for the new FTC challenges.

Intake System

We use a rack-and-pinion claw mounted on an arm that reliably picks up and deposits one game piece at a time into the highest bucket. The 3D-printed design, combined with servos and a few additional components, ensures lightweight functionality and maintains stability by preventing significant shifts in the center of gravity when the slides are raised or lowered.

Linear Slides

This year, we upgraded to GoBilda Viper Slides for our intake assembly after determining they were a better option than reusing last year's bulky slides. By analyzing the game manual and calculating optimal heights for each basket and the pull-up bars, we programmed precise settings for the slides, ensuring smooth, efficient movement and maximum range of motion for the claw.

Programming

To organize and write code as a team, we used Github and Intellij IDEA as our tools.

Finite State Machine

We programmed our robot in Java using the FTC SDK within IntelliJ IDEA Community, with two primary OpModes for autonomous and teleoperation. By implementing a finite state machine and feedback control in each subsystem's update method, we ensured precise, simultaneous control of multiple subsystems while maintaining ease of testing through subsystem decoupling.