Previous
Monitor machine status
Dashboards and teleop workspaces both use widgets to display data from your machines. This page explains what each widget type does, how the query model behind them works, and where dashboards and teleop workspaces differ.
For step-by-step instructions, see Create dashboards. For custom MQL queries, see Custom queries.
Widgets are the building blocks of dashboards and teleop workspaces. Each widget type displays data in a different way.
Displays a machine’s location on a map using position data from a movement sensor. You select a movement sensor and a refresh rate. The map updates at the interval you specify.
Use GPS widgets to track machine locations across a fleet, or to monitor a single machine’s position over time.
Displays a single value from a sensor, such as the current temperature or battery level.
In dashboards, stat widgets support the full query model: you can apply windowing and aggregation to show computed values like the average temperature across all machines over the last hour. In teleop workspaces, stat widgets show only the most recent reading from the selected sensor.
Displays a graph of sensor data over time. You can add multiple lines to the same graph to compare readings from different sensors or fields.
Time series widgets support the full query model (windowing and aggregation) in both dashboards and teleop workspaces. You can graph raw data points or aggregate them into time windows to smooth out noise and reveal trends.
Displays sensor data in rows and columns. Each row represents a reading and each column represents a field.
In dashboards, tables support two display methods:
In teleop workspaces, tables support custom queries only.
Displays controls for actuating components: motors, servos, bases, arms, grippers, and other components that accept commands.
Available in teleop workspaces only. Dashboards are read-only and do not include actuation widgets.
Displays a live camera feed.
Available in teleop workspaces only. Dashboards do not include camera streams.
Time series, stat, and table widgets do not just display raw sensor readings. They can transform data through two layers of processing: windowing and aggregation. Understanding these two layers is the key to building useful dashboards.
Windowing divides your data into time buckets of a specified duration and computes a summary value for each bucket. For example, with a 1-hour window and the Average method, you get one averaged data point per hour instead of hundreds of raw readings.
Available window methods:
| Method | What it computes | Example use |
|---|---|---|
| None | No windowing. Returns raw data points sorted by time. | Viewing individual sensor readings. |
| Count | Number of readings in each time bucket. | Checking whether a sensor is reporting at the expected frequency. |
| Average | Mean value in each bucket. | Smoothing noisy temperature data into hourly averages. |
| Min | Lowest value in each bucket. | Finding the coldest temperature each hour. |
| Max | Highest value in each bucket. | Tracking peak CPU usage per hour. |
| Sum | Total of all values in each bucket. | Counting total events per time window. |
| Custom query | An MQL aggregation pipeline you define. | Computing derived metrics like rate of change or percentiles. |
After windowing groups data into time buckets, aggregation combines data from multiple machines into a single result. This is how you answer questions like “what is the average temperature across all machines in the warehouse?”
Available aggregation methods: Average, Count, Min, Max, Sum, and Custom query. These work the same way as the corresponding window methods but operate across machines instead of across time.
Aggregation is optional. If you skip it, each machine’s data appears as a separate line or value.
Consider a fleet of 10 machines, each reporting temperature every 10 seconds:
The same two-layer model applies to stat widgets (showing a single computed value) and table widgets using the columns display method.
The built-in window and aggregation methods cover common cases. Use a custom query when you need to:
Custom queries use MongoDB’s MQL aggregation pipeline syntax. For details on writing custom queries, see Custom queries.
Dashboards and teleop workspaces serve different purposes and have different capabilities.
| Dashboard | Teleop workspace | |
|---|---|---|
| Purpose | Monitor data trends across machines | Control and monitor a specific machine |
| Scope | Organization-level, with filters for location, machine, fragment, and timeframe | Requires selecting a specific machine |
| Widget types | GPS, stat, time series, table | GPS, stat, time series, table, plus actuation and camera |
| Control | Read-only | Can send commands to components |
| Stat widget | Supports windowing and aggregation | Most recent reading only |
| Table widget | Columns or custom query | Custom query only |
| Time series Sum | Supported | Not available |
Use dashboards when you want to watch data from multiple machines or analyze trends over time. Use teleop workspaces when you need to interact with a specific machine or view its live camera feeds.
To create a dashboard, see Create dashboards. To create a teleop workspace, see Teleop workspaces.
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!