State Graph
The panel renders an interactive directed graph where nodes represent states and edges represent transitions.- Nodes are labeled with the state name (e.g.,
idle,navigating,grasping,placing) - Edges connect source and target states with directional arrows
- The current state is highlighted during playback and updates as the timeline advances
- Transition counts are displayed on each edge, showing how many times that transition occurred in the recording
- Animated transitions sync with timeline scrubbing — drag the playback head and watch the active state change in the graph
Graph Layout
The graph layout is computed automatically using a force-directed algorithm. States with more transitions between them are positioned closer together. You can manually drag nodes to rearrange the layout, and the panel remembers your arrangement for the session.Graph Interaction
Configuration
Define state machines by mapping topic data to states and transitions.State Definition
Transition Definition
You can either define transitions explicitly or let the panel infer them from the data. Explicit definitions enable the panel to show dashed edges for transitions that are possible but have not occurred, which is useful for identifying missing coverage. Example configuration:Auto-Detection
A topic is assigned to the State Machine panel when:- Its topic name contains
state_machine,fsm, orbehavior_tree, or - Its schema name matches
*StateMachine*or*BehaviorState*
Multiple State Machines
A single recording may contain multiple state machines (e.g., one for navigation and one for manipulation). Add multiple configurations to monitor them simultaneously. Each state machine renders as a separate graph within the panel.Nested States
For hierarchical state machines, use dot notation in state names to represent nested states. The panel renders these as grouped clusters in the graph.History View
The History view renders a horizontal bar chart alongside the timeline, showing the duration of each state as colored bars. This view is designed to be stacked with other panels for cross-referencing.Reading the History
- Each row corresponds to one state
- Bar width represents time spent in that state
- Colors are assigned deterministically per state name and remain consistent across recordings
- Hover over a bar segment to see transition metadata: the reason for entering the state, the duration in that state, and the trigger that caused the exit transition
- Click a bar segment to seek the timeline to that state transition
State Color Assignment
state_colors map:
Timeline Integration
The History view is synchronized with the shared timeline. During playback, a vertical cursor moves across the bars to indicate the current time. Click anywhere in the History view to seek the entire viewer to that timestamp. The History view can also be stacked below the Plot panel to correlate state transitions with numeric sensor signals. For example, a transition toerror that aligns with an IMU spike suggests the error was caused by a physical disturbance.
State Analytics
The analytics tab provides aggregate statistics computed over the entire recording.Per-State Metrics
Transition Frequency Matrix
A heatmap showing how often each transition occurs. Rows are source states, columns are target states, and cell values are transition counts. Darker cells indicate more frequent transitions. This matrix is useful for identifying:- Hot paths — the most common state sequences
- Anomalous transitions — unexpected state changes that indicate bugs or edge cases
- Dead transitions — defined transitions that never fire, suggesting unreachable logic
Anomaly Detection
The panel flags transitions that were not defined in the configuration but were observed in the data. These are marked with a warning icon in the graph and highlighted in the transition matrix.Pre-built Templates
Common robot state machine templates are available to get started quickly. Select a template from the panel settings to pre-populate the state and transition definitions.Applying a Template
- Open the State Machine panel settings.
- Select a template from the Templates dropdown.
- Adjust the
topicandstate_fieldto match your data. - Optionally add or remove states and transitions for your specific robot.
Exporting State Data
Export the full state transition log or analytics summary from the panel settings menu.Export Formats
Transition Log Schema
Each row in the exported transition log contains:Keyboard Shortcuts
Use Cases
Debug stuck states
Identify when a navigation pipeline enters a stuck state by examining the transition history and time-in-state metrics.
Analyze manipulation timing
Measure the duration of each phase in a pick-and-place sequence to optimize cycle time and identify bottlenecks.
Find error-prone transitions
Use the transition frequency matrix to discover which state transitions most often lead to error states.
Compare behavior across runs
Open two recordings side-by-side and compare state machine analytics to see how a code change affects robot behavior.
Next Steps
Diagnostics Panel
Monitor system health metrics alongside state machine visualization.
MCAP Viewer
Learn about the full multi-sensor viewer that hosts the State Machine panel.
Fleet Dashboard
Aggregate state machine analytics across your entire fleet.