Don't Blink LogoFTC Stack

Introduction to TeleOp

Learn how TeleOp works and how to write responsive driver-controlled robots.

TeleOp (short for Tele-Operated) is the portion of an FTC match where drivers directly control the robot using gamepads. During this period, your program continuously reads controller inputs, updates robot logic, and sends commands to motors and servos.

Unlike Autonomous, where the robot follows a pre-programmed routine, TeleOp is entirely reactive. Every loop, your code asks questions like:

  • Is the driver pushing a joystick?
  • Was a button just pressed?
  • Should the lift move?
  • Should the intake start running?

This cycle repeats many times per second, allowing the robot to respond almost instantly to driver input.

The TeleOp Loop

A TeleOp OpMode follows a simple pattern:

  1. Read driver inputs.
  2. Process those inputs.
  3. Update robot mechanisms.
  4. Send telemetry.
  5. Repeat until the match ends.
while (opModeIsActive()) {

    // Read inputs

    // Update robot

    // Send telemetry

}

Because this loop runs continuously, your robot always responds using the latest information from the gamepads.

Designing a Good TeleOp

A good TeleOp should feel natural for the drivers. The robot should respond quickly, predictably, and consistently.

Some characteristics of a well-designed TeleOp include:

  • Smooth driving
  • Consistent controls
  • Minimal input delay
  • Easy-to-remember button mappings
  • Reliable mechanism behavior

If drivers have to think about what button performs an action, your controls are probably too complicated.

Separating Responsibilities

As your robot becomes more complex, avoid placing all of your logic directly inside the OpMode.

Instead, let the OpMode coordinate the robot while other classes perform the actual work.

For example:

TeleOp
├── Reads gamepad inputs
├── Calls drivetrain methods
├── Calls intake methods
└── Sends telemetry

The drivetrain, intake, lift, and other mechanisms should each manage themselves.

This keeps your code easier to understand and much easier to maintain.

Driver Practice Matters

Even the best TeleOp code cannot replace driver practice.

When creating controls, ask yourself:

  • Can a new driver learn this quickly?
  • Does every button have a clear purpose?
  • Can multiple actions happen at the same time?
  • Does the robot behave consistently?

Small improvements to your controls often lead to better match performance than adding another feature.

Was this resource helpful?

On this page

Was this resource helpful?