buoyancyTankMass.xml

Page auto-generated from XML file.

Failure

The generated TethysL source could not be parsed, likely due to source XML not being well-formed.

Below is the compile error at the TethysL level, as well as the source XML.

The TethysL file name shown below does not necessarily indicate the file exists, but hints about the actual corresponding .xml file.

Syntax error:
   --> lrauv-application/Missions/Demo/buoyancyTankMass.xml:14:59
    | 
 10 | 
 11 | mission buoyancyTankMass {
 12 |   timeout duration=P200M
 13 | 
 14 |   assign in parallel Control:VerticalControl.kiDepthOff = .1 radian_per_meter
    |                                                           ^
 15 | 
 16 |   assign in parallel Control:VerticalControl.kdPitchMass = .2 second
 17 | 
 18 |   behavior Guidance:DepthEnvelope {
    | 
Unexpected: `.`
One of the following is possible:
  ID (for an assign)
  expression
  universal
  customUri
  number
  NaN
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
# -   Copyright (c) 2024 MBARI
# -   MBARI Proprietary Information. Confidential. All Rights Reserved
# -   Unauthorized copying or distribution of this file via any medium is strictly
# -   prohibited.
# -
# -   WARNING - This file contains information whose export is restricted by the
# -   Export Administration Act of 1979 (Title 50, U.S.C., App. 2401 et seq.), as
# -   amended. Violations of these export laws are subject to severe civil and/or
# -   criminal penalties.

mission buoyancyTankMass {
  timeout duration=P200M

  assign in parallel Control:VerticalControl.kiDepthOff = .1 radian_per_meter

  assign in parallel Control:VerticalControl.kdPitchMass = .2 second

  behavior Guidance:DepthEnvelope {
    run in parallel
    set Guidance:DepthEnvelope.minDepth = 0 meter
    set Guidance:DepthEnvelope.maxDepth = 15 meter
  }

  insert Insert/Science.tl


  aggregate GPSFIX {
    run when (
      called
    )

    behavior Guidance:GoToSurface {
      run in progression
    }

    aggregate {
      run in sequence

      preemptive ( true )

      behavior Guidance:SetSpeed {
        run in parallel
        set Guidance:SetSpeed.speed = 0 meter_per_second
      }

      readDatum {
        Universal:latitude_fix
      }
    }
  }

  behavior Guidance:Buoyancy {
    run in sequence
    set Guidance:Buoyancy.position = 500 cubic_centimeter
  }

  aggregate MaintainDepth {
    run when (
      called
    )

    behavior Guidance:SetSpeed {
      run in parallel
      set Guidance:SetSpeed.speed = 0 meter_per_second
    }

    behavior Guidance:Point {
      run in parallel
      set Guidance:Point.heading = 210 degree
    }

    behavior Guidance:Wait {
      run in sequence
      timeout duration=P30M
    }
  }

  aggregate MAIN {
    run in sequence repeat=2

    # <Call Id="GPSFIXEND" RefId="GPSFIX"/>

    aggregate bottomDepth {
      run in sequence

      behavior Guidance:Pitch {
        run in parallel
        # Setting the elevator angle to zero activates mass-only control.
        set Guidance:Pitch.elevatorAngle = 0 degree
        set Guidance:Pitch.depth = 7 meter
      }

      call refId="MaintainDepth"
    }

    aggregate topDepth {
      run in sequence

      behavior Guidance:Pitch {
        run in parallel
        # Setting the elevator angle to zero activates mass-only control.
        set Guidance:Pitch.elevatorAngle = 0 degree
        set Guidance:Pitch.depth = 2 meter
      }

      call refId="MaintainDepth"
    }
  }
}
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?xml version="1.0" encoding="UTF-8"?>
<!--
-   Copyright (c) 2024 MBARI
-   MBARI Proprietary Information. Confidential. All Rights Reserved
-   Unauthorized copying or distribution of this file via any medium is strictly
-   prohibited.
-
-   WARNING - This file contains information whose export is restricted by the
-   Export Administration Act of 1979 (Title 50, U.S.C., App. 2401 et seq.), as
-   amended. Violations of these export laws are subject to severe civil and/or
-   criminal penalties.
-->

<Mission xmlns="Tethys"
       xmlns:Control="Tethys/Control"
       xmlns:Guidance="Tethys/Guidance" 
       xmlns:Units="Tethys/Units"
       xmlns:Universal="Tethys/Universal"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="Tethys http://okeanids.mbari.org/tethys/Xml/Tethys.xsd
                           Tethys/Control http://okeanids.mbari.org/tethys/Xml/Control.xsd
                           Tethys/Guidance http://okeanids.mbari.org/tethys/Xml/Guidance.xsd
                           Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd
                           Tethys/Universal http://okeanids.mbari.org/tethys/Xml/Universal.xsd"
       Id="buoyancyTankMass">

    <Timeout Duration="P200M"/>

    <Assign><Parallel/><Control:VerticalControl.kiDepthOff/><Units:radian_per_meter/><Value>.1</Value></Assign>

    <Assign><Parallel/><Control:VerticalControl.kdPitchMass/><Units:second/><Value>.2</Value></Assign>

    <Guidance:DepthEnvelope>
        <Parallel/>
        <Setting><Guidance:DepthEnvelope.minDepth/><Units:meter/><Value>0</Value></Setting>
        <Setting><Guidance:DepthEnvelope.maxDepth/><Units:meter/><Value>15</Value></Setting>
    </Guidance:DepthEnvelope>

    <Insert Filename="Insert/Science.tl"/>

    <Aggregate Id="GPSFIX">

        <When>
            <Called/>
        </When>

        <Guidance:GoToSurface>
            <Progression/>
        </Guidance:GoToSurface>

        <Aggregate>

            <Sequence/>

            <Preemptive>
                <True/>
            </Preemptive>

            <Guidance:SetSpeed>
                <Parallel/>
                <Setting><Guidance:SetSpeed.speed/><Units:meter_per_second/><Value>0</Value></Setting>
            </Guidance:SetSpeed>

            <ReadDatum>
                <Universal:latitude_fix/>
            </ReadDatum>

        </Aggregate>

    </Aggregate>

    <Guidance:Buoyancy>
        <Sequence/>
        <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>500</Value></Setting>
    </Guidance:Buoyancy>

    <Aggregate Id="MaintainDepth">

        <When>
            <Called/>
        </When>

        <Guidance:SetSpeed>
            <Parallel/>
            <Setting><Guidance:SetSpeed.speed/><Units:meter_per_second/><Value>0</Value></Setting>
        </Guidance:SetSpeed>

        <Guidance:Point>
            <Parallel/>
            <Setting><Guidance:Point.heading/><Units:degree/><Value>210</Value></Setting>
        </Guidance:Point>

        <Guidance:Wait>
            <Sequence/>
            <Timeout Duration="P30M"></Timeout>
        </Guidance:Wait>

    </Aggregate>

    <Aggregate Id="MAIN">

        <Sequence Repeat="2"/>

<!--
      <Call Id="GPSFIXEND" RefId="GPSFIX"/>
      -->

        <Aggregate Id="bottomDepth">

            <Sequence/>

            <Guidance:Pitch>
                <Parallel/>
<!-- Setting the elevator angle to zero activates mass-only control.-->
                <Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>0</Value></Setting>
                <Setting><Guidance:Pitch.depth/><Units:meter/><Value>7</Value></Setting>
            </Guidance:Pitch>

            <Call RefId="MaintainDepth"/>

        </Aggregate>

        <Aggregate Id="topDepth">

            <Sequence/>

            <Guidance:Pitch>
                <Parallel/>
<!-- Setting the elevator angle to zero activates mass-only control.-->
                <Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>0</Value></Setting>
                <Setting><Guidance:Pitch.depth/><Units:meter/><Value>2</Value></Setting>
            </Guidance:Pitch>

            <Call RefId="MaintainDepth"/>

        </Aggregate>

    </Aggregate>

</Mission>