Gray Matter LogoGray Matter Workshop

Commands

Commands - Coordinating Robot Actions

Commands are the actions that your robot performs. They use subsystems to accomplish tasks and can be triggered by user input, sensors, or automated sequences.

Key Concept: Commands tell subsystems what action to run.

Command Structure & Examples

Inline Command Methods Example
Subsystem Command MethodsJAVA

Command Methods

Create commands using factory methods like runOnce() to execute actions once when the command is triggered.
return runOnce(() -> action);

Command Requirements

Commands must declare which subsystems they use to prevent conflicts and ensure proper scheduling.
addRequirements(subsystem);

Command Lifecycle

Commands have a clear lifecycle: start, run continuously, then clean up when finished.
initialize() → execute() → end()

Workshop Implementation

Before & After: Implementation

Before

  • Arm subsystem with basic voltage control
  • No user input integration
  • No commands to coordinate actions
  • Manual method calls only

After

  • Enhanced Arm subsystem methods
  • Commands for moveUp(), moveDown()
  • Ready for user input integration

Loading file...

Code Walkthrough

New Subsystem Methods:

  • moveUp(): Positive voltage for upward movement
  • moveDown(): Negative voltage for downward movement

Command Benefits:

  • Encapsulation: Actions wrapped in reusable commands
  • Safety: Automatic stop when command ends
  • Flexibility: Ready for trigger integration

Enhanced Arm subsystem with command methods! Next, we'll learn about Triggers to bind user input before verifying mechanism setup.

Next Steps

You now have reusable command factories on each mechanism. Before moving on, confirm that every command declares its subsystem requirements and stops motors safely in end().

  • Bind new commands to controller inputs in a sandbox branch.
  • Verify telemetry shows commands interrupting each other safely.
  • Document command naming conventions in your team codebase.
Continue to Triggers