WestlakeLEARN
FTC / Java

First Tech Challenge

FTC / Java

01 · Java for FTC3/3
  • OpMode Anatomy and Hello Robot
  • Variables, Math, and Decisions
  • Methods, Classes, and Robot Helpers
02 · FTC Hardware Essentials
  • Hardware Map and RobotHardware
  • Motors, Servos, and Sensors
  • IMU, Encoders, and Bulk Caching
03 · TeleOp and Mecanum
  • Robot-Centric Mecanum Drive
  • Field-Centric Driving
  • Driver Ergonomics and Safe TeleOp
04 · Subsystems and Commands
  • Subsystem Lifecycle
  • Enums and Finite State Machines
  • Command-Based OpModes
05 · From Timed Steps to Actions
  • Timed and Encoder Autonomous
  • Autonomous State Machines
  • Actions and Sequencing
06 · PID and Feedforward
  • PID Basics
  • Feedforward and PIDF
  • Dashboard Tuning Workflow
07 · Motion Profiling
  • Motion Profile Concepts
  • Implementing a Profiled Mechanism
  • Testing Profiles and Failure Modes
08 · OpenCV and AprilTags
  • VisionPortal Camera Setup
  • OpenCV Color and Region Processors
  • AprilTags and Field Pose
09 · Setup and Tuning
  • Road Runner 1.0 Install and Drive Class
  • Feedforward Tuning
  • Localization and Validation
10 · Trajectories, Actions, and MeepMeep
  • Action Builder and Trajectories
  • MeepMeep Preview
  • Full Road Runner Autonomous
11 · Git, Debugging, and Competition Readiness
  • Git Workflow for FTC Teams
  • Telemetry-First Debugging
  • Competition Readiness Checklist
12 · Driver Control
  • Driver Control
13 · Autonomous Build
  • Simple Autonomous
14 · Debugging
  • Debugging with Telemetry

01 / Java for FTC

Methods, Classes, and Robot Helpers

Extract repeated robot behavior into readable methods and classes.

55 minFoundationsJava for FTC

You will

  1. 01Move repeated drivetrain code into a method.
  2. 02Explain why a hardware helper class reduces OpMode clutter.
  3. 03Use parameters and return values in FTC examples.

Why Methods, Classes, and Robot Helpers matters

This lesson is part of the Java foundation, so the emphasis should be on how a small language feature becomes a robot habit. Students should leave understanding the syntax, but more importantly they should understand what the robot will do differently because that syntax exists. Keep the focus on readable values, predictable flow, and code that another teammate can safely modify later.

Starting point

Methods are named robot actions

When the same motor formula appears in three places, students lose the ability to fix it once. A method gives that idea one name and one implementation, which makes code easier to test and teach.

Classes hold related state and behavior

A robot hardware class groups the motors, servos, sensors, and lifecycle helpers that every OpMode needs. Later, subsystems use the same idea at a smaller mechanism level.

Build path

Have students make one small edit, run it, observe telemetry, and explain the result before moving on. This is slower than pasting a large example, but it builds the debugging discipline they will need once hardware is involved.

For this specific lesson, students should first restate the goal in robot terms, then identify the value or behavior they expect to observe, then run the smallest test that proves the idea. The lesson should feel like a guided lab: predict, run, observe, explain, and only then extend.

DriveHelpers.java · Java

private void setTankPower(double left, double right) {
    left = Math.max(-1.0, Math.min(1.0, left));
    right = Math.max(-1.0, Math.min(1.0, right));

    frontLeft.setPower(left);
    backLeft.setPower(left);
    frontRight.setPower(right);
    backRight.setPower(right);
}

private double deadband(double value) {
    return Math.abs(value) < 0.05 ? 0.0 : value;
}

Debugging and failure modes

Most failures at this level come from hidden assumptions: a value has the wrong sign, a method runs at the wrong time, a variable is scoped where later code cannot see it, or a class is named differently than its file. The lesson should train students to check the smallest claim first instead of rewriting the whole OpMode.

Practice

Refactor a simple TeleOp so every motor write goes through a named helper method. Add one helper for joystick deadband.

Checks

  • The main loop reads like a short sequence of decisions.
  • All drivetrain motor powers pass through one method.
  • Deadband removes tiny joystick drift near zero.

Check your understanding

Module check

What is the main benefit of extracting drivetrain writes into a method?

0 of 1 answered

References

FIRST FTC DocsOfficial FTC SDK and robot programming documentation.Game Manual 0Community FTC programming, control, and robot design reference.Learn Java for FTCFTC-focused Java fundamentals by Alan G. Smith.

Finished reading?

Mark this lesson complete.

You'll move on to “Hardware Map and RobotHardware” next.

Variables, Math, and DecisionsHardware Map and RobotHardware