stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

FRC 5113 Puppy

  • 1 Devlogs
  • 3 Total hours

No, this is not an actual puppy (unfortunately). This is the code for our FRC 5113 outreach bot. It uses a custom framework, simulation, & is designed for the 2026 REBUILT game.

Open comments for this post

2h 39m 52s logged

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!


2
0
46

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…