Ftc Dashboard

screenshot of Ftc Dashboard

React-based web dashboard designed for FTC

Overview:

FTC Dashboard is a telemetry and monitoring tool designed for use with FTC robots. It provides live telemetry with plots and field graphics, live configuration variables, camera streaming, limited op mode controls, gamepad support, custom dashboard layouts, and telemetry CSV export.

Features:

  • Live telemetry with plots and field graphics
  • Live configuration variables
  • Camera streaming
  • Limited op mode controls and gamepad support
  • Custom dashboard layouts
  • Telemetry CSV export

Basic Installation:

  1. Open build.dependencies.gradle.
  2. In the repositories section, add maven { url = 'https://maven.brott.dev/' }.
  3. In the dependencies section, add implementation 'com.acmerobotics.dashboard:dashboard:0.4.15'.

Development Installation:

  1. Install Node.js (Node.js 16+ required for builds to work on M1 MacBooks).
  2. Install Yarn (optional but recommended for historical reasons).
  3. Run yarn (or npm install) to install dependencies.
  4. Optionally set the server IP address through the environment variable VITE_REACT_APP_HOST.
  5. Run yarn dev (or npm run dev) to start the development server on http://localhost:3000.

Mock Server:

To test without an FTC app, run the mock server located at DashboardCore/src/test/java/com/acmerobotics/dashboard/TestServer.java. The mock server hosts mock FTC op modes for testing purposes.

Basic Architecture:

Java Server:

  • DashboardCore: A standalone library to create a dashboard server for any Java application.
  • FtcDashboard: A wrapper around DashboardCore with tools and hooks for FTC teams.

Browser Client:

  • The primary interface as a web-client accessible to the end-user via a web browser.
  • Located in FtcDashboard/dash.
  • TypeScript + React application built using Vite for bundling.

Summary:

FTC Dashboard is a comprehensive telemetry and monitoring tool for FTC robots, offering live telemetry, configuration options, camera streaming, custom layouts, and more. The installation process involves setting up the necessary dependencies and servers for both basic and development use, with a focus on providing a user-friendly web interface for real-time monitoring.