Telemetry Logging

What is Telemetry?

Telemetry lets you send data from your robot to the Driver Station for real-time monitoring and debugging. It is essential for understanding what your robot is doing during a match and for troubleshooting issues.

Telemetry can display sensor values, motor powers, program states, and more.

Why Use Telemetry?

Telemetry helps you:

  • Debug your code by displaying variable values.
  • Monitor robot status in real time.
  • Communicate important information to drivers.
  • Track sensor and motor data during matches.

Basic Telemetry Example

Here is an example showing how to use telemetry in a LinearOpMode. This example displays motor power and a custom message on the Driver Station.

Telemetry in LinearOpMode

@TeleOp(name = "TelemetryExample")
public class TelemetryExample extends LinearOpMode {
    private DcMotor leftDrive, rightDrive;

    @Override
    public void runOpMode() {
        leftDrive = hardwareMap.get(DcMotor.class, "left_drive");
        rightDrive = hardwareMap.get(DcMotor.class, "right_drive");
        waitForStart();
        while (opModeIsActive()) {
            double leftPower = -gamepad1.left_stick_y;
            double rightPower = -gamepad1.right_stick_y;
            leftDrive.setPower(leftPower);
            rightDrive.setPower(rightPower);
            telemetry.addData("Left Power", leftPower);
            telemetry.addData("Right Power", rightPower);
            telemetry.addData("Status", "Running");
            telemetry.update();
        }
    }
}

Advanced Telemetry Techniques

You can group telemetry data, use telemetry.log() for persistent messages, and display sensor values.

Telemetry can also be used in Iterative OpModes and for debugging autonomous routines.

Telemetry with Sensors

@TeleOp(name = "SensorTelemetry")
public class SensorTelemetry extends LinearOpMode {
    private DistanceSensor distanceSensor;

    @Override
    public void runOpMode() {
        distanceSensor = hardwareMap.get(DistanceSensor.class, "sensor_distance");
        waitForStart();
        while (opModeIsActive()) {
            double distance = distanceSensor.getDistance(DistanceUnit.CM);
            telemetry.addData("Distance (cm)", distance);
            telemetry.update();
        }
    }
}

Best Practices for Telemetry

Tips for effective telemetry:

  • Call telemetry.update() once per loop.
  • Use clear, descriptive labels for data.
  • Limit the amount of data to avoid clutter.
  • Use telemetry for debugging and driver feedback.

Practice: Telemetry Logging

Try these to reinforce your understanding:

  • Add telemetry to your existing OpModes.
  • Display sensor values and custom messages.
  • Experiment with telemetry.log() for persistent messages.

Open full interactive app