Mission script structure¶
2026-06-18
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.)