Package yams.core.telemetry


package yams.core.telemetry
NetworkTables publishers for mechanism and motor controller state.

This package provides classes that stream live data from YAMS mechanisms and motor controllers to a NetworkTables server, making that data available to dashboard tools (Shuffleboard, AdvantageScope, Glass) and to tuning workflows that adjust PID gains without redeploying code.

Mechanism telemetry

  • MechanismTelemetry publishes the high-level state of a mechanism: current position, active setpoint, goal, and status flags. Updated each robot periodic cycle.

Motor controller telemetry

  • SmartMotorControllerTelemetryConfig fluent builder that selects which signals to publish and under what NetworkTables keys. Signals include duty cycle, applied voltage, velocity, position, supply current, stator current, and device temperature.
  • SmartMotorControllerTelemetry publisher that consumes a SmartMotorControllerTelemetryConfig and writes the selected signals to NetworkTables on every periodic() call.

Lightweight scalar publishers

  • BooleanTelemetry lightweight publisher for a single boolean value (e.g. limit switch state, at-setpoint flag).
  • DoubleTelemetry lightweight publisher for a single double value (e.g. a raw sensor reading or computed error).

Enabling telemetry

Telemetry is opt-in. Call setupTelemetry() on a SmartMotorController or mechanism instance, passing the desired configuration object, to begin publishing. The call must happen before the first periodic() call (typically in robotInit or the subsystem constructor):

SmartMotorControllerTelemetryConfig telemetryCfg =
    new SmartMotorControllerTelemetryConfig("arm/motor")
        .withVelocity()
        .withPosition()
        .withSupplyCurrent()
        .withTemperature();

motor.setupTelemetry(telemetryCfg);
See Also: