Mission Monitor Widget
Widget Type: rc-mission-monitor

Displays a 3D scene with the robot's pose and a "snail trail" of recent positions on top of a base map. Used to watch a mission in progress.
The widget extends the shared environment config (Mapbox token, Google Maps API key, optional origin and tiles URL).
Configuration
mapBoxToken Mapbox token used to render the base map.
googleMapsApiKey Google Maps API key used for base imagery.
origin (optional) Origin used when creating a new scene. { "lat": <number>, "lng": <number>, "alt": <number> }.
tilesUrl (optional) Tile server URL. When omitted, derived from the SDK URL.
parentFrame (optional) The parent frame in which positions are interpreted (e.g. WGS84, UTM60S, seed).
snailTrailQuery (optional) Query that produces the recent positions to draw as the snail trail:
topic: telemetry topicmaxAge:{ "value": <number>, "unit": "s" | "m" | "h" }expression: stringified function returning[lon, lat, alt](or equivalent) from each payloadpollRate: poll rate in Hz
snailTrailColor Theme color used to draw the snail trail (e.g. magic).
robotConfig How to render the robot. Two shapes are supported:
-
Bound model — drives a 3D model from one or more telemetry topics:
{
"type": "boundModel",
"robotBindings": [
{ "source": "/mavlink/GLOBAL_POSITION_INT", "binding": "position" }
]
} -
Spot model — renders the Spot model directly from a dynamic map source:
{
"type": "spotModel",
"source": "/map/dynamicMaps/spot"
}
Example (MAVLink)
{
"mapBoxToken": "<your-mapbox-token>",
"googleMapsApiKey": "<your-google-maps-key>",
"parentFrame": "WGS84",
"snailTrailQuery": {
"topic": "/mavlink/GLOBAL_POSITION_INT",
"maxAge": { "value": 5, "unit": "h" },
"expression": "(payload) => [payload.lon / 10e6, payload.lat / 10e6, payload.alt / 10e6]",
"pollRate": 1
},
"snailTrailColor": "magic",
"robotConfig": {
"type": "boundModel",
"robotBindings": [
{ "source": "/mavlink/GLOBAL_POSITION_INT", "binding": "position" }
]
}
}
Example (Spot)
{
"mapBoxToken": "<your-mapbox-token>",
"googleMapsApiKey": "<your-google-maps-key>",
"parentFrame": "UTM60S",
"snailTrailQuery": {
"topic": "/spot/graphnav/ros/anchor",
"maxAge": { "value": 1, "unit": "h" },
"expression": "(payload) => [payload.pose.pose.position.x, payload.pose.pose.position.y, payload.pose.pose.position.z]",
"pollRate": 1
},
"snailTrailColor": "magic",
"robotConfig": {
"type": "spotModel",
"source": "/map/dynamicMaps/spot"
}
}