Skip to content

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.yml file

  • 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 definition
  • missions/: subdirectory with mission scripts
  • images/: 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


  1. We have some initial static models. (So far we've been using the .obj format, but Rerun also supports other formats.)