Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import { DetectedColorName } from '../sensors/sensor-manager';
import { MotorPort } from '../physics/motor-controller';
export interface TelemetryState {
timeSeconds: number;
matchTimerSeconds: number; // 150s (2:30) match timer
fps: number;
physicsHz: number;
robot: {
x: number; // meters
y: number;
z: number;
yawDegrees: number;
};
motors: {
left: {
port: MotorPort;
degrees: number;
speed: number;
targetPercent?: number;
status?: 'IDLE' | 'RUNNING' | 'BRAKING';
};
right: {
port: MotorPort;
degrees: number;
speed: number;
targetPercent?: number;
status?: 'IDLE' | 'RUNNING' | 'BRAKING';
};
all?: Record<
string,
{
port: MotorPort;
degrees: number;
speed: number;
targetPercent?: number;
status?: 'IDLE' | 'RUNNING' | 'BRAKING';
}
>;
};
sensors: {
colorC: {
reflectedLight: number;
color: DetectedColorName;
rgb: [number, number, number];
};
colorD: {
reflectedLight: number;
color: DetectedColorName;
rgb: [number, number, number];
};
distanceCm: number;
gyroYaw?: number;
};
}
export type ExecutionState = 'IDLE' | 'RUNNING' | 'PAUSED' | 'ERROR' | 'FINISHED';
export interface SpawnPose {
x: number;
y: number;
z: number;
yawDegrees: number;
}
|