Summary
Our robot, aptly named Big Bad Beanie, is our most complex bot in the last four years. This robot contains six subsystems, with many features.
- Drivetrain
- Shooter
- Intake / Pivot Arm
- Kicker
- Hopper
- Turret

Features
Shoot On The Move
Shoot On The Move, or SOTM for short, is one of the bigger features of our bot. Our robot can accurately drive and shoot into the hub both during auto and teleop. This feature also works for lobbing, as it is based on the position of the robot on the field. For the 2026 year, it's also needed to calculate the required tine of flight for the fuel. We measured some points on the field and used these measurements in our linear interpolation algorithm. The result gives precise time of flight for the given position on the field. This same linear interpolation algorithm is used for calculating the correct RPM for the given position of the robot. Calculations are also used to take the robots velocity into account which is important for shooting precise shots while moving.
Full-Field Localization
This is a core feature, our robot wouldn't be complete without it. Using vision, we are able to detect the Apri MolTags on the field and get a precice position of the robot. Our Limelights detect all AprilTags within a certain distance. Then, our robot throws the measurements into our position estimator. Finally, our position estimator gives us the precise position of our robot. We have a trick that lets us localize the position of the robot automatically. By switching between two different tracking modes, one initializes the robots localization data while the other maintains it. Reseeding the robots localization may be needed depending on environmental factors such as poor lighting or wheel slipping.
Turret
Our turret is designed to move 180 degrees, or 90 degrees left and right. This allows a wide range of shooting angles that our robot takes advantage of. Our turret allows for precise turning. Included on this turret is the shooter.
Shooter
Our shooter is driven by two CTRE Kraken x60 motors. Attached to these motors are brass shooter wheels. They're heavy but once they're spinning, they stay spinning. The shooter's design allows the fuel to shoot out with a lot of power. We control the vertical angle using calculations for the RPM depending on the robots position and velocity.
Intake
Our intake and hopper push out past the bumper. The arm of the intake moves down, pushing out our hopper for extended fuel storage. We've changed the design of our hopper to allow the hopper to pull back into the frame perimeter to prevent our intake from becoming unsubale during a match due to robot collisions or other factors.
Autonomous Features
Thanks to full-field localization, autonomous is easy. We use Path Planner for autos. We've made a bunch of pieces of autos that we can put together in seconds to provide any auto that our alliance may need. Shooting on the move is also completely autonomous.
Status Lights
We use a CANdle on our robot for lighting, because who doesn't like some fun lighting. Well the lighting is all for fun, it's actually a status light of the robots current state. The lighting automatically gets changed depending on the robots current state.
Custom Subsystems
Our robot uses our own code library. In our library are many utilites. Among them lives the PARTs Subsystem which has built-in logging, networktables, preferences, and more. More details can be found at PARTs Subsystem.
No Comments