panels

📁 ncssm-robotics/ftc-claude 📅 7 days ago
1
总安装量
1
周安装量
#42055
全站排名
安装命令
npx skills add https://github.com/ncssm-robotics/ftc-claude --skill panels

Agent 安装分布

claude-code 1

Skill 文档

Panels Dashboard

Panels (by Lazar/ByteForce) is a web-based dashboard for FTC robots providing telemetry, graphs, and live configuration.

Quick Start

Add dependency in TeamCode/build.gradle:

implementation "com.bylazar:fullpanels:1.0.6"

Access dashboard at 192.168.43.1:8001 when connected to robot WiFi.

Core Plugins

Telemetry Plugin

Text-based telemetry mirroring Driver Hub output.

// Standard FTC telemetry works automatically
telemetry.addData("Position", follower.getPose());
telemetry.addData("State", pathState);
telemetry.update();

Graph Plugin

Visualize data over time – useful for PID tuning and control system validation.

// Add values to graph in loop()
telemetry.addData("Motor Power", motor.getPower());
telemetry.addData("Target Position", targetPos);
telemetry.addData("Current Position", currentPos);
telemetry.update();  // REQUIRED after adding telemetry

Configurables Plugin

Tunable variables that update in real-time.

@Configurable
public class MyOpMode extends OpMode {
    // These can be adjusted live from dashboard
    public static double kP = 0.1;
    public static double kI = 0.0;
    public static double kD = 0.01;
    public static double targetPosition = 100;
}

Use @Configurable annotation on your OpMode class, then declare public static fields.

Capture Plugin

Records debugging data for offline replay – debug without robot connected.

Dashboard Features

OpMode Control

  • Start/stop OpModes from dashboard
  • Separate autonomous and teleop sections
  • Built-in safety timers

Gamepad Support

  • Two FTC gamepad inputs
  • Pre-configured button mapping
  • Wireless robot control through dashboard

Monitoring

  • Battery level tracking
  • Network latency/delay monitoring
  • Automatic plugin update notifications

Themes & Layout

  • Customizable colors
  • Resizable widget panels
  • Grid-based layout
  • Tabbed widget groups

Usage Pattern

@Configurable
@TeleOp(name = "Debug TeleOp")
public class DebugTeleOp extends OpMode {
    // Live-tunable from dashboard
    public static double driveSpeed = 0.8;
    public static double turnSpeed = 0.6;

    @Override
    public void loop() {
        // Telemetry shows in dashboard
        telemetry.addData("Drive Speed", driveSpeed);
        telemetry.addData("Turn Speed", turnSpeed);
        telemetry.addData("Left Stick Y", gamepad1.left_stick_y);

        // Use configurable values
        double drive = -gamepad1.left_stick_y * driveSpeed;
        double turn = gamepad1.right_stick_x * turnSpeed;

        telemetry.update();
    }
}

Reference