# Optimus Console

> Operate a robot fleet: browse robots, inspect telemetry, explore topics, and manage alerts.

The Optimus console is the ready-made web app that operates a robot fleet on
FirstByte. From one place, you can:

- See every registered robot.
- Open a live view of one robot.
- Inspect the QUIC transport that carries its data.
- Browse the ROS 2 topic tree.
- Set up alert delivery.
- Review an append-only audit trail.

The console is for fleet operators and robotics ops teams. You do not need
code or local tooling.

## What's in the console

  - **Fleet directory** — Shows every robot in your org, with live status, battery, RTT, fps, and
    alerts. Filter by site, status, model, or battery. Switch to a live fleet
    map.
  - **Robot detail** — A live, connected studio view for one robot: 3D, plots, topic tree, raw
    messages, and recordings. A picker lets you switch robots.
  - **Connection telemetry** — The transport view for a robot: RTT distribution, path migrations,
    congestion window, and per-track delivery.
  - **Topic Explorer** — The live ROS 2 topic tree across the whole fleet. It shows message types,
    frequencies, and payloads.
  - **Layout presets** — Open the robotics studio on a useful panel layout with the relay
    pre-connected. The console saves your customized layout per user.
  - **Alerts** — Route this org's robotics alerts to a Slack channel. Send a test message.
  - **Audit log** — An append-only record of teleops, e-stops, control transfers, alerts, and
    deploys.
  - **Billing** — Shows metered usage and cost for the current period and for recent months.

> **NOTE:**
> Some screens are admin-scoped: Audit log, Alerts, Billing, and the MQTT
>   admin views. If you do not see them, ask an org admin for the correct role.

## Browse and filter the fleet

The **Fleet directory** is the console's home. It is a multi-site view of
every robot registered to your org.

  1. **Open the Fleet directory**
You land on a **List** of robots. The KPI strip at the top shows **Robots
    online**, **Aggregate fps**, **Fleet avg RTT**, and **Active alerts**. If
    transport telemetry is unavailable, those tiles show `—` and the flag
    *telemetry unavailable*. They do not show a false zero.
  2. **Search and filter**
Use the search box to match on robot ID, name, model, or task. Click the
    **Site**, **Status**, **Model**, and **Battery** filter chips to narrow the
    list. Each click moves a chip to its next option (for example, Battery
    cycles Any → ≥ 20% → ≥ 50% → < 20%).
  3. **Read a row**
Each row shows the robot's name and ID/model, **Site**, **Last seen** (a
    pulsing *live* when connected), **Status** dot, **Battery** bar, **Task**,
    **fps**, **RTT**, and an **Alerts** count. Click a row to open that robot's
    detail view.
  4. **Switch to the map**
Use the **List / Map** toggle in the header to see robots plotted by live
    pose on the **Fleet map**.
  5. **Refresh**
The list refreshes automatically on a timer. To get the latest data
    immediately, click the refresh icon on the filter bar. The footer shows
    how many rows match and when the list last updated.

> **TIP:**
> Click **Add robot** in the header to register a new robot into the org's
>   fleet.

### Act on several robots at once

  1. **Select robots**
Select the checkboxes on the rows you want. A **bulk action bar** appears
    at the bottom with the selected count.
  2. **Emergency stop**
Click **Emergency stop** to publish a zero-velocity command to the control
    channel of each selected robot. The console asks you to confirm. If the
    stop cannot reach a robot, the console shows which robots failed.

> **WARNING:**
> **Emergency stop** commands the selected robots immediately. E-stop only the
>   robots that you intend to stop. Check the selection count in the dialog
>   first.

## Open a live view of one robot

The **Robot detail** screen embeds a live, connected studio. You land on a
working view, not a static status page.

  1. **Pick a robot**
Open a robot from the directory, or use the **robot picker** dropdown in
    the detail header to switch. You can share the URL. Send a teammate a
    direct link to a specific robot.
  2. **Read the identity header**
The header shows the robot's name, a **status** chip, and its ID, model,
    firmware, and site.
  3. **Work in the live studio**
The connected robotics studio is below the header: 3D scene, plots, the
    topic tree, raw message inspection, and recordings. It already points at
    your live relay for this robot.
  4. **Jump to alerts**
Click **Alerts** in the header to open the alerts screen for this org.

> **NOTE:**
> If no robot is registered, the detail screen tells you and prompts you to
>   register one. Deep-links to a robot that is no longer in the active fleet
>   still resolve. The picker marks these robots *(not in active fleet)*.

## Inspect connection telemetry

**Connection telemetry** is the transport-level view for one robot. Use it
when a robot is connected but its data looks slow or lossy.

  1. **Focus a robot**
Use the robot picker in the header. The window is fixed to the **last 15
    minutes**. Click the refresh icon to get the data again.
  2. **Check connection identity**
The **Connection identity** panel shows the session's SNI, ALPN, cipher,
    cert, 0-RTT status, connection/session IDs, and **Bytes in / out**. Fields
    show `—` when there is no active relay session.
  3. **Read the RTT distribution**
The **RTT distribution** histogram bins per-minute latencies. It shows
    **P50 / P95 / P99** and a marker on the worst tail. A badge shows if the
    tail is *within band* or *expanded*.
  4. **Watch path migrations and congestion window**
**Path migrations** lists connection handovers (the QUIC connection
    survives a network change with no re-handshake). The **Congestion window**
    chart plots cwnd over the recent window. A vertical marker shows where a
    migration occurred.
  5. **Attribute drops per track**
The **Per-track frame ledger** divides delivery by track: delivered,
    dropped, late, FEC-recovered, and drop rate. This shows if a problem is in
    one track or in the whole connection. **Bandwidth** shows inbound and
    outbound traffic over the last 60s.

## Explore ROS 2 topics across the fleet

  1. **Open Topic Explorer**
The screen opens the live **ROS 2 topic tree** across the fleet, with the
    topic side panel expanded.
  2. **Inspect a topic**
Browse message types and frequencies. Open payloads to inspect raw
    messages for any topic.

## Land on a useful layout

  1. **Open Layout presets**
Pick a curated layout to open the robotics studio with the relay
    pre-connected and a useful set of panels already arranged.
  2. **Save your own**
Inside the studio, arrange the panels the way you like. The console saves
    your layout per user and applies it the next time you open the studio.

## Route alerts to Slack

The system evaluates alert thresholds centrally. The **Alerts** screen
controls only *where* this org's robotics notifications go.

  1. **Add a Slack webhook**
Paste a **Slack incoming-webhook URL** (Slack → Apps → Incoming Webhooks).
    You can also add a **channel label** such as `#ops-alerts` for reference.
  2. **Save**
Click **Save**. On success, the console shows that it stored the webhook
    and provisioned the notification channel and any alert rules.
  3. **Send a test**
Click **Send test** to send a message to the saved webhook. Check that
    the message arrives in Slack.
  4. **Remove routing**
Click **Remove** to stop delivery of this org's robotics alerts to Slack.

> **NOTE:**
> The Slack routing that you set here applies only to this org's **robotics**
>   alerts. The games section keeps its own separate routing.

## Review the audit log

  1. **Open the Audit log**
The log is append-only. It records teleops, e-stops, control transfers,
    alerts, and deploys. Each entry has a time, actor, action, target robot,
    verdict, and detail.
  2. **Narrow the window**
Use the search box (actor, action, target, detail), the **date-range
    picker**, and the verdict chips (**All / ok / warn / bad**) to filter.
    The log highlights e-stop actions.

## Check billing

  1. **Open Billing**
The KPI strip shows **MTD cost**, **projected end-of-period**, **metrics
    billed**, and the current **period**.
  2. **Read metered usage**
The **metered usage** table lists each billable metric with its rate,
    units consumed, and cost. The table ends with a period total.
  3. **Compare recent months**
The **Recent months** panel lists prior periods with their metrics and
    totals. Click **Refresh** to re-aggregate the current period.

## Manage the MQTT bridge (admin)

If your devices use MQTT, the admin section adds three views:

- **Clients** — Shows the devices and applications connected to MQTT, with
  client ID, connect time, and subscription count. Select rows and click
  **Disconnect** to force clients to disconnect.
- **Topics** — Shows the MQTT topic hierarchy with publishers, subscribers,
  and message rates. Filter by prefix or pattern. Subscription patterns use
  standard MQTT wildcards (`fleet/+/telemetry`, `fleet/#`).
- **Topic policies** — Sets per-pattern rules for **QoS**, **retained**
  behavior, and **access control**.

## Also in this suite: Arena (games)

The same console also has an **Arena** (games) section for game-server
fleets. It contains a **Server fleet** view with region presence and
autoscale events, a **Live sessions** board, and a **Spectator studio** for
match promotion and quality ladders. The Arena section shares the same Alerts
and Billing screens, scoped to the games vertical. This guide covers
robotics. The games views use the same patterns.

## Next steps

  - **[Robotics — Details](/modalities/robotics/details)** — How the telemetry-up / commands-down model works, namespaces, and QoS lanes.
  - **[Robotics — SDK Methods](/modalities/robotics/sdk-methods)** — Publish and subscribe to telemetry and commands from your own code.
