Platform deployment
The central functionality of Dial revolves around a specific platform deployment definition. Such definition indicates the platforms and resources that are relevant to the current operation or a previously exercised deployment.
In the following, we may just say deployment to refer to a platform deployment or a deployment definition.
On startup, the UI checks if a deployment definition is already selected by looking for its ID stored in the browser's local storage. If no deployment definition is found, the user is prompted to select one. Once selected, the deployment is loaded for all subsequent dispatch operations.
Note
The deployment ID is the full path to the deployment.yml file under the shared space
(see below).
Files and directories related to deployments should be accessible within the shared space specified in the volumes section of the compose.yml file:
services:
dialserv:
container_name: dialserv
image: mbari/dialserv:X.Y.Z
volumes:
- '/host/shared/space:/compas'
/compas is the host shared space in the Dial instance at compaslabdev.
A deployment is defined in a deployment.yml file, which includes references to associated resources.
These resources can be paths to external locations specified within the deployment file itself,
as well as additional resources found in sibling directories
(including missions/, images/).
At the top of the Dial UI there is an indicator of the current deployment, or lack thereof.

The indicator is a dropdown that allows the user to select an initial deployment, see details about the selected deployment, or to select a different deployment.

Note
Previously selected deployments, listed in the dropdown, are stored in the browser's local storage.
The deployment selection per se consists of:
-
Navigating the shared space and selecting a
deployment.ymlfile
-
Inspecting the contents of the deployment file as well as the base images recognized by Dial from the
images/directory (clicking a listed image opens it in a separate window for inspection), and then activating the deployment:
Here is an example of a deployment directory structure:
some_deployment
├── deployment.yml
└── missions
├── test_molars.py
└── test.txt
└── images
├── SpongeRidge_LASS_Topo_5cm_UTM.jpg
├── SpongeRidge_LASS_Topo_5cm_UTM.tfw
├── SpongeRidge_MAUV_Topo1m_UTM_Slope.jpg
└── SpongeRidge_MAUV_Topo1m_UTM_Slope.tfw
The following contents are used by Dial to determine the relevant information for the deployment:
deployment.yml: The primary deployment definitionmissions/: subdirectory with mission scriptsimages/: subdirectory with the selectable base images for the map
deployment.yml
This file defines the image streams, platforms, and other elements pertaining to the deployment, mainly in terms of channel names that are relevant.
Example:
imageStreams:
channelNames:
- PROSILICA_L
- PROSILICA_R
stereoPairs:
- left: PROSILICA_L
right: PROSILICA_R
platforms:
MOLA:
channelInfo:
channelForPosAndSpeed: MOLA_ESTIMATED_STATE_LOCAL
channelForHeading: MOLA_ESTIMATED_STATE_RPH
channelForDepth: MOLA_DEPTH
channelForDvlState: MOLA_DVL
channelForRphState: MOLA_USBL_ATT
channelForPinholeImage: OAKD_CAM_LEFT
model3dInfo:
modelPath: Sandbox/Dial/models3d/MOLA_yellow_centered.obj
withPinhole: true
attrs:
fillColor: 'blue'
strokeColor: 'blue'
models3dInfo:
static:
- modelName: TestTank
- modelName: SomeTerrain
modelPath: Sandbox/Dial/models3d/model_20240308_SMALL.obj
Image streams
TODO
Platforms
The platforms section lists the platforms that are part of the deployment.
Each platform has a name (e.g., MOLA),
a set of channel names that determine the platform's state
(position, speed, heading, depth, etc.),
and the channel for the image to be used for the pinhole in the 3D view
(see below).
The model3dInfo section specifies the 3D model1 for the platform, if available.
If withPinhole is set to true, the pinhole image indicated
via channelInfo.channelForPinholeImage is included in the display.
The attrs section captures attributes used for rendering the platform in the 2D map.
Global 3D models
The models3dInfo section is optional. It lists any static models to be displayed
in the 3D view when the embedded Rerun Viewer in the Dial UI starts a connection
to the RRWS process.
Intended to provide context, static models1 are for elements like:
- test tank
- terrain models
missions/
This directory contains mission scripts that are relevant to the deployment.
images/
This directory contains the base images that can be selected for display in the 2D map.
Only files with extension .gif, .png, .jpeg, or .jpg are recognized.
For geo-referencing every image file must be accompanied by a world file (.tfw).
Other possible deployment elements
-
We have some initial static models. (So far we've been using the
.objformat, but Rerun also supports other formats.) ↩↩