Command Bot represents a paradigm shift in FRC robotics development, introducing a revolutionary hardware abstraction layer and modern control architecture. By redefining the interaction between software and hardware components, this framework eliminates legacy boilerplate while introducing powerful new capabilities.
- Unified Hardware Interface: Consolidates 20+ legacy interfaces (
GenericElevatorIO,GenericArmIO, etc.) into a singleDCMotorIOinterface - Automated Unit Conversion: Seamlessly handles conversions between radians (simulation), rotations (Phoenix), degrees, and meters (subsystem)
- Universal Simulation Support: Single simulation interface compatible with all mechanism types (arms, elevators, flywheels, etc.)
- Advanced Hardware Integration: Native support for TalonFX follower mode and CANCoder fusion mode
- True Hardware Independence: Identical code paths for both real hardware and simulation environments
- Factory-Patterned Subsystems: Effortless hardware swapping without logic modifications
- Visual Debugging Suite: Real-time mechanism tracing and analysis tools
- Command-Based Control Flow: Robust and maintainable control architecture
Note: Command Bot is currently in beta as we refine the architecture and expand hardware support. While not yet optimized for competition use, we encourage teams to explore the codebase and adapt these patterns to their robots.
-
Prerequisites
- Clone this repository
- Install FRC Game Tools
-
WPILib Configuration
- Download WPILib v2025.3.2
- Initialize project:
.\gradlew - View available tasks:
.\gradlew tasks
-
Advantage Scope Setup
- Install Advantage Scope v4.1.6
- Import layout:
File -> Import Layout(select.\.ascope\layout.json) - Configure assets: Copy
.\.ascope\Robot_Sidewayto assets folder - Network configuration:
- Set
Live SourcetoNetworkTables 4 - Configure
roboRIO Address(default:10.te.am.2) - Set log directory:
/home/lvuser/logs
- Set
-
Elastic Dashboard (Optional)
- Install Elastic v2025.2.2
- Load layout:
File -> Open Layout(select.\src\main\deploy\elastic-layout.json)
-
Launch Simulation:
- Open WPILib VS Code
- Run
WPILib: Simulate Robot Code
-
Configure Controls:
- Open FRC Driver Station
- Connect and enable joystick
-
Monitor Robot State:
- Launch Advantage Scope
- Connect to simulator:
File -> Connect to Simulator
| Button | Primary Function | Secondary Function |
|---|---|---|
A |
Idle Arm (short press) | Home Arm (long press) |
B |
Algae Processor Score | - |
X |
Algae Ground Pick (hold) | - |
X + RT |
Algae Ground Eject (hold) | - |
Y |
Algae Reef Collect (no algae) | Algae Net Score (with algae) |
LB |
Coral Left Station Collect (no coral) | Coral Score with NodeSelector (with coral) |
RB |
Coral Right Station Collect (no coral) | Coral Score with POV (with coral) |
LB + RB |
Toggle Arm Forced Elevate Mode | - |
LT |
Score Coral (score position) | Eject Coral (other positions) |
RT |
Score Algae (score position) | Eject Algae (other positions) |
Back |
Enter Climbing Mode | - |
Start |
Home Gyro | - |
POV Down |
Climbing (climbing mode only) | - |
