Skip to content
Page auto-generated from this source.

Insert/TrackPatchYoyo.tl

Aggregate ID: TrackPatchYoyo

Aggregate Path: Insert/TrackPatchYoyo.tl

Vehicle yo-yos with patch detect enabled for oil concentration.

NOTE: oil concentrations may vary strongly with depth!

Suggested settings for simulation:

Config/sim/[username]/Simulator.cfg:

oceanModelData = "Resources/BurgerOilfieldSpill.nc:mass_concentration_of_petroleum_hydrocarbons_in_sea_water:kg/m3";
eastCurrent = 0.05 m/s;   // vel y wrto LV
northCurrent = 0.005 m/s; // vel x wrto LV

Config/sim/[username]/workSite.cfg:

initLat = 71.2225805280196 arcdeg;   // Initial latitude
initLon = -163.5093252100575 arcdeg; // Initial longitude

Config/sim/[username]/sim.cfg:

WetLabsBB2FL.loadAtStartup = 0 bool;
WetLabsSeaOWL_UV_A.loadAtStartup = 1 bool;
WetLabsSeaOWL_UV_A.simulateSensors = 1 bool;
WetLabsSeaOWL_UV_A.serial = "SEAOWLA2K-019";
WetLabsSeaOWL_UV_A.scaleFactor700 = 3.204e-7 1/m/sr/count;
WetLabsSeaOWL_UV_A.darkCounts700 = 48 count;
WetLabsSeaOWL_UV_A.scaleFactorFDOM = 8.096e-3 ppb/count;
WetLabsSeaOWL_UV_A.darkCountsFDOM = 50 count;
WetLabsSeaOWL_UV_A.fdomAccuracy = 8.19 ppb;
WetLabsSeaOWL_UV_A.scaleFactorChl = 2.170e-3 ug/l/count;
WetLabsSeaOWL_UV_A.darkCountsChl = 50 count;
WetLabsSeaOWL_UV_A.chlAccuracy = 1.475 ug/l;
WetLabsSeaOWL_UV_A.scaleFactorOil = 2.8 ppb/count;
WetLabsSeaOWL_UV_A.darkCountsOil = 50 count;
WetLabsSeaOWL_UV_A.oilAccuracy = 3.6 ppb;
NavChartDb.charts = "US1AK90M,US2AK92M,US5AK9NM,US5AK9OM,US5AK9PM,US5AK9QM,US5AK9RM,US5AK9SM,US5AK9TM,US5AK9UM";

Inserted by:

Arguments

Speed

Speed = 1 meter_per_second

Vehicle speed.

PeakDetectChl

PeakDetectChl = true

Chlorophyll patch tracking.

PeakDetectSalinity

PeakDetectSalinity = false

Salinity patch tracking.

PeakDetectOil

PeakDetectOil = false

Oil patch tracking.

PeakDetectPlanktivoreLMavgROI

PeakDetectPlanktivoreLMavgROI = false

Planktivore LMavgROI patch tracking.

PeakShallowBnd

PeakShallowBnd = 4.5 meter

Shallow depth bound for chl-peak detection.

PeakDeepBnd

PeakDeepBnd = 17 meter

Deep depth bound for chl-peak detection.

DepChangeThresholdAttitudeFlip

DepChangeThresholdAttitudeFlip = 2.0 meter

Depth change threshold for determining vehicle attitude flip.

MinOffshore

MinOffshore = 2000 meter

Minimum offshore distance for the entire mission.

MarginMinOffshore

MarginMinOffshore = 100 meter

If closer than MinOffshore+MarginMinOffshore, turn back from shore.

MinDistFromPolygonSides

MinDistFromPolygonSides = 200 meter

If a operational safety polygon is specified and the vehicle is closer than this minimum distance to the polygon sides, turn back.

NeedCommsTimePatchTracking

NeedCommsTimePatchTracking = 300 minute

Maximum time between surfacings for communications during patch tracking. This is checked only at the end of a CrossLeg (i.e., back to patch center).

WaitAfterBouncing

WaitAfterBouncing = 5 minute

After the vehicle bounces off the boundary (defined by minimum distance to shore or polygon sides), wait this long before re-checking the distance.

CntRoundsCrossLegSurfacing

CntRoundsCrossLegSurfacing = 5 count

One round = one count of outleg. When CntRounds (initialized to 1) counts to 5 and the ensuing CrossLeg is finished, the vehicle has completed 2 full 4-direction sweeps and is back to the patch center. When CntRounds counts to CountRoundsCrossLegSurfacing and the ensuing CrossLeg is finished (back to the patch center), the vehicle surfaces.

WpMaxDist

WpMaxDist = 1000 meter

Maximum length of each tracking leg

WpTimeout

WpTimeout = 4000 second

Maximum duration of each tracking leg

DetectionTimeout

DetectionTimeout = 30 minute

Look for signal for this long. If none found within this timeout, switch to the next leg.

PatchTrackingYoYoMinDepth

PatchTrackingYoYoMinDepth = 2 meter

Minimum depth while performing the YoYo behavior during patch tracking.

PatchTrackingYoYoMaxDepth

PatchTrackingYoYoMaxDepth = 25 meter

Maximum depth while performing the YoYo behavior during patch tracking.

YoYoMinAltitude

YoYoMinAltitude = 9 meter

Minimum altitude while performing the YoYo behavior (for bottom-terminated YoYos).

YoYoUpPitch

YoYoUpPitch = 20 degree

Vehicle up pitch while performing the YoYo behavior.

YoYoDownPitch

YoYoDownPitch = -20 degree

Vehicle down pitch while performing the YoYo behavior.

BeginThreshChl

BeginThreshChl = 1.0 microgram_per_liter

If non-NaN, sets chlorophyll threshold for starting horizontal patch detection

BeginThreshSalt

BeginThreshSalt = 33.0 psu

If non-NaN, sets salinity threshold for starting horizontal patch detection

BeginThreshOil

BeginThreshOil = 0.2 kilogram_per_cubic_meter

If non-NaN, sets oil threshold for starting horizontal patch detection

BeginThreshPlanktivoreLMavgROI

BeginThreshPlanktivoreLMavgROI = 50 count_per_second

If non-NaN, sets Planktivore LMavgROI threshold for starting horizontal patch detection

WpBearing

WpBearing = 90 degree

Bearing being followed in the current leg. Set this to initialize start direction of patch tracking.

OffPeakFraction

OffPeakFraction = 90 percent

When filtered horizontal value is this fraction of the peak, consider it outside the patch.

LengthLPWindow

LengthLPWindow = 20 count

Low-pass window length (based on depth sensor sampling interval 0.4 second) for low-pass filtering.

LengthMedianFilter

LengthMedianFilter = 5 count

Median filter length (only for chlorophyll fluorescence which tends to have spikes). The median-filtered signal enters the succeeding low-pass filter. If set to 1, then no median filtering, i.e., the raw fluorescence signal directly enters the low-pass filter.

NumOfProfilesSlidingwindow

NumOfProfilesSlidingwindow = 50 count

Length of horizontal sliding window. The highest per-yoyo peak (after low-pass filtering by a filter of length FilterWidthHorizontal) is picked out within this window.

FilterWidthHorizontal

FilterWidthHorizontal = 4 count

Width of boxcar filter used in horizontal patch detection

WaterFrame

WaterFrame = true

Set WaterFrame true to drive towards waypoints in the water frame of reference

PatchMode

PatchMode = false

If true, use center of "in peak" range as the turn-around point. If false use maximum horizontal peak location as the turn-around point.

Turn

Turn = 90 degree

Amount to turn at each leg

BuoyancyNeutral

BuoyancyNeutral = NaN cc

Output

Reverse

Reverse = 180 degree

Change in bearing which reverses vehicle direction

TwoPi

TwoPi = 360 degree

Applied to stop run-up of angles

CntRounds

CntRounds = 1 count

one round = one count of outleg. Initilized to 1.

PatchDetectOn

PatchDetectOn = false

Mission sets this to true when the patch has been crossed. Initialized to False.

WpDone

WpDone = true

Mission sets this to true when the cross-patch waypoint has been reached. Initialized to True.

CrossLegToPatchCenterCompleted

CrossLegToPatchCenterCompleted = false

Initialized to False.

CrossLegSearchForPeakStarted

CrossLegSearchForPeakStarted = false

Initialized to False.

Terminate

Terminate = false

FlagTurnBack

FlagTurnBack = false

Flag of turning back from shore. Initialized to False.

PeakChl

PeakChl = NaN microgram_per_liter

PeakChlDepth

PeakChlDepth = NaN meter

PeakChlLatitude

PeakChlLatitude = NaN degree

PeakChlLongitude

PeakChlLongitude = NaN degree

PatchPeakChl

PatchPeakChl = NaN microgram_per_liter

PeakSalt

PeakSalt = NaN psu

PeakSaltDepth

PeakSaltDepth = NaN meter

PeakSaltLatitude

PeakSaltLatitude = NaN degree

PeakSaltLongitude

PeakSaltLongitude = NaN degree

PatchPeakSalinity

PatchPeakSalinity = NaN psu

PeakOil

PeakOil = NaN kilogram_per_cubic_meter

PeakOilDepth

PeakOilDepth = NaN meter

PeakOilLatitude

PeakOilLatitude = NaN degree

PeakOilLongitude

PeakOilLongitude = NaN degree

PatchPeakOil

PatchPeakOil = NaN kilogram_per_cubic_meter

PeakPlanktivoreLMavgROI

PeakPlanktivoreLMavgROI = NaN count_per_second

PeakPlanktivoreLMavgROIDepth

PeakPlanktivoreLMavgROIDepth = NaN meter

PeakPlanktivoreLMavgROILatitude

PeakPlanktivoreLMavgROILatitude = NaN degree

PeakPlanktivoreLMavgROILongitude

PeakPlanktivoreLMavgROILongitude = NaN degree

PatchPeakPlanktivoreLMavgROI

PatchPeakPlanktivoreLMavgROI = NaN count_per_second

PatchPeakDepth

PatchPeakDepth = NaN meter

PatchPeakLatitude

PatchPeakLatitude = NaN degree

PatchPeakLongitude

PatchPeakLongitude = NaN degree

PatchPeakDistance

PatchPeakDistance = 0 meter

StoppedForNaNPatchPeak

StoppedForNaNPatchPeak = false

Mission stopped because patch peak value is NaN. Initialized to False.

StoppedForBeingOutsideOfPolygon

StoppedForBeingOutsideOfPolygon = false

Mission stopped because the vehicle is outside of the polygon. Initialized to False.

ElapsedSinceStartOrLastDistCheck

ElapsedSinceStartOrLastDistCheck = 0 hour

The mission sets this variable to reset the timer for checking distance to shore and polygon sides.

Inserts

Insert/Science.tl

redefineArg PeakDetectChlActive = true
redefineArg LowPassWindowLength = LengthLPWindow
redefineArg MedianFilterLen = LengthMedianFilter
redefineArg PeakShallowBound = PeakShallowBnd
redefineArg PeakDeepBound = PeakDeepBnd
redefineArg DepChangeThreshForAttitudeFlip = DepChangeThresholdAttitudeFlip

Invoked Module Behaviors

Guidance:AltitudeEnvelope

Guidance:Buoyancy

Guidance:DepthEnvelope

Guidance:Execute

Guidance:SetSpeed

Guidance:Waypoint

Guidance:YoYo

Trigger:PeakDetectHorizontal