Puppy - FRC 5113
What is it?
Puppy is a robot designed for the REBUILT FRC 2026 game. It is our team’s outreach bot, meaning that it will be used to attract new members into our team during special events.
Framework & design
The biggest problem when starting this is that the deprecated RoboRIO cannot use the modern robot frameworks (used to control the robot at a high-level). The roboRIO is incompatible with the new frameworks because they are tightly coupled to the newer hardware.
To overcome this, I created a new framework that mimics the behavior of the current modern frameworks. It subclasses TimedRobot, allowing for each robot mode to be encapsulated in its own module rather than all lifecycle hooks needing to be in the same class. In other words, this eliminates the problem of a gigantic robot.py file that orchestrates the entire codebase.
Here’s a diagram to show how each mode is separated:
Robot Framework (inherits from `TimedRobot`)
│
├── DisabledMode
├── AutonomousMode
├── TeleopMode
└── TestMode
Testing
Unit testing robot runtime behavior isn’t feasible. Therefore, I created integration tests to ensure the correct behavior of the lifecycle methods in each mode (i.e. entered, periodic, exited).
Robot Code
I completed the drivetrain subsystem as a model for the rest of the subsystems to follow. The file structure encapsulates each of the subsystems, making it impossible for other subsystems to talk with or command the hardware of any others. For example:
drivetrain/
├── io/
│ ├── base_io.py
│ ├── real_io.py
│ └── sim_io.py
├── constants.py
├── drivetrain.py
└── controller.py
**Note: The image is of our competition bot that we’re going to use for an upcoming offseason event - I couldn’t find one of Puppy. I’ll post one next week!
Comments 2
just an fyi happened to me, beware and specify if this is going to be used in first or anything related, because if it is then you can unfortunately not use it for stardance. I got lucky since i mine wasnt built by a team or anything was just a mock cad i built, but looking at yours im wondering if its a team thing.
im creating all of the code myself & the actual robot creation (that the team works on) is not a part of this stardance project. the robot is not going to be used for any unofficial or official first competitions. i think im in the clear, right?
Sign in to join the conversation.