Skip to content

Mission script structure

2026-06-18

This section is a draft started after some inquiries in Slack about the difference between mission level and insert parameters.

Final location for this documentation is still TBD, but it will probably belong to the general Mission documentation site under https://docs.mbari.org/lrauvmissions/missions/.

Feedback welcome!

Last updated: 2026-08-05

Overview

A mission script defines the behavior to be run on a vehicle. It declares a set of parameters (arguments) that can be adjusted at run time, for example to set a speed, a depth bound, or the duration of the mission.

Mission ID

Every mission script has an associated ID. This can be explicitly indicated within the script itself (for example, it is PAM in Engineering/passive_acoustic_monitoring.tl/), and it defaults to the simple name of the file (for example, it is undock for Engineering/undock.tl/).

In addition to its own parameters, a mission script can pull in functionality from other reusable scripts called inserts. Each insert can contribute its own set of parameters to the mission. This is the source of a common point of confusion: a parameter you see while running a mission may belong either to the mission level or to one of the inserts, and the syntax to set it differs depending on which.

Background

The mission structure, including the notion of inserts, is described in the "Tethys Mission Structure" section of Godin et al. (2010); see References below.

You can inspect any mission and its inserts on the LRAUV missions documentation site.

Note

The mission documentation site may not necessarily reflect the latest state of the mission scripts, which really depends on the particular deployment configuration associated with the vehicle. On the other hand, the UI wizard does consider the active deployment, so it is the most reliable way to enter your commands.

For example, sci2_circle_hotspot.tl includes several inserts, among them one identified as Science (source):

insert id="Science" Insert/Science.tl { ... }

The id given here, Science, is the name used to reference the parameters that the insert contributes to the enclosing mission script.

Note

The explicit id fragment in an insert instruction is optional. When not given, the id is determined by the inserted script itself as described above.

Setting a parameter

UIs typically provide a wizard that guides you step by step, but the set command can also be issued directly. The syntax depends on whether the parameter is defined at the mission level or inside an insert.

Mission-level parameter

Use the parameter name directly:

set <missionId>.<Parameter> <value> <units>

Insert parameter

Qualify the parameter name with the insert's id, using a colon (:) between the mission and the insert, and a dot (.) between the insert and the parameter:

set <missionId>:<InsertId>.<Parameter> <value> <units>

The colon is the key. If a parameter belongs to an insert and you omit the :<InsertId> part, the command will be rejected because that name does not exist at the mission level.

Worked example

Suppose you want to set MedianFilterLen to 1 count for the sci2_circle_hotspot mission.

MedianFilterLen is not a mission-level parameter, but it is contributed by the Science insert. So the following command is incorrect and will be reported as an error, because MedianFilterLen does not exist at the first (mission) level:

set sci2_circle_hotspot.MedianFilterLen 1 count

The correct command qualifies the parameter with the Science insert id:

set sci2_circle_hotspot:Science.MedianFilterLen 1 count

If you are unsure whether a given parameter is mission-level or comes from an insert, look up the mission on the LRAUV missions site: parameters listed under an insert must be set using the <missionId>:<InsertId>.<Parameter> form.

References

  • M. A. Godin, J. G. Bellingham, B. Kieft, and R. McEwen, "A scripting language for state configured layered control of the Tethys long-range autonomous underwater vehicle," OCEANS 2010 MTS/IEEE SEATTLE, Seattle, WA, Sept. 2010. DOI: 10.1109/OCEANS.2010.5664515. (See the "Tethys Mission Structure" section, in particular the description of inserts.)