//==================================================================== module = lib_bellhop type = Library author = Toby Schneider, Henrik Schmidt contact = toby@ghobysoft.org, henrik@mit.edu org = MIT thumb = Library of protobuf messages and utilities for requests of raytracing impulse responses in the Virtual Ocean. depends = goby/protobuf, dccl/protobuf, goby/moos, boost group = LAMSS, MissionManagement, VirtualOcean, Environment, SonarProcessing borndate = 110101 distro = lamss.mit.edu synopsis = Library of Goby protobuf messages used for inter-module requesting and receiving raytracing impulse responses in the Virtual Ocean through the Request/Response service module iBellhop. //==================================================================== module = lib_henrik_util type = Library author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Library of utility functions used by the LAMSS Nested Autonomy modules, including linear algebra, environmental modeling and signal processing. depends = libMOOS group = LAMSS, MissionManagement, VirtualOcean, Environment, SonarProcessing borndate = 110101 distro = lamss.mit.edu synopsis = Library of utilities used in MOOSApps and GobyMOOSApps in the LAMSS Nested Autonomy software infrastructure. It includes a vector and matrix manipulation suite, including equation solvers. Also includes a suite of random number generators, and functions used for generating pseudo random noise and simulated signals for timeseries generation in the Virtual Ocean, and functions for acoustic signal processing and target tracking. //==================================================================== module = lib_lamss_protobuf type = Library author = Toby Schneider, Henrik Schmidt contact = toby@gobysoft.org,henrik@mit.edu org = MIT thumb = Configurations of Goby-protobuf messages used for messages transmitted between Goby-MOOS applications through the MOOSDB or via the acoustic modem to and from the operators and collaborators. depends = goby/protobuf, dccl/protobuf, goby/moos group = LAMSS, MissionManagement, VirtualOcean, Environment, SonarProcessing borndate = 110101 distro = lamss.mit.edu synopsis = Configurations of Goby protobuf messages used for transmitting information between Goby-MOOS Applications as an alternative to the traditional MOOS-IvP variable-value pairs. The message configurations are included and syntax checked in the Goby-MOOS applications at compile time, automatically generating C++ variables accessible at runtime, where the messages are handled by a generic set of utilities for conversion to and from string format passed through the MOOSDB. Also include the protobuf configurations for the Goby Dynamic Command and Control Language (DCCL) messages transmitted to and from the operators and collaborating nodes via the acoustic modem network. Includes Goby protobuf configurations for most Request/Response services in the Virtual Ocean, including SVP sections and acoustic impulse responses. //==================================================================== module = iBellhop type = Goby-MOOS App author = Toby Schneider contact = topy@gobysoft.org org = MIT, Gobysoft thumb = Request/Response service module returning the eigenray solution for transmission from ownship to and from a depth-range receiver grid or a specific contact. depends = goby/moos, goby/util, boost, lib_lamss_protobuf, lib_bellhop group = LAMSS, Virtual_Ocean borndate = 110101 distro = lamss.mit.edu synopsis = GobyMOOSApp which, upon requests through the MOOSDB, returns the multipath eigenray solution (delay, amplitude, doppler etc.) from ownship to and from a depth/range grid of receivers or a particular acoustic contact. Supports Nx2D SVP and bathymetry extracted from databases or ocean modeling and assimilation frameworks, managed onboard each platform by the nested modeling infrastructure of the Virtual Ocean. iBellhop is the core computational acoustics engine in the Virtual Ocean, and as such embedded on all platform autonomy systems in the LAMSS Nested Autonomy operational paradigm. //==================================================================== module = uMVS_Bluefin type = MOOSApp author = David Battle contact = david.battle@optusnet.com.au org = MIT thumb = High-fidelity dynamic model for BF21 UUV used for simulating platform maneuvering in the Virtual Ocean. depends = libMOOS, mbutil, lib_newmat10D group = LAMSS, Virtual_Ocean borndate = 050101 distro = lamss.mit.edu synopsis = Physics-based dynamic model for the Bluefin Robotics BF21 UUV, which provides the frontseat interface to the Virtual Ocean for simulating realistic platform maneuvering in response to speed, heading and depth commands from the backseat pHelmIvP. Calibrated for the MIT BF21 Macrura it is a high-fidelity alternative to the standard uSimMarine for UUVs, and with minor tuning of the PID parameters it is applicable to a wide range of torpedo-shaped UUVs. Handles platform response to ocean currents, and coupled response to a towed array, for example. //==================================================================== module = iNoaaBathy type = MOOS App author = Stephanie Petillo, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Extracts a range-dependent bathymetry along a vertical slice of ocean between two latitude/longitude locations. depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util group = LAMSS, VirtualOcean borndate = 150101 distro = lamss.mit.edu synopsis = MOOS request/response service application providing the bathymetry along a vertical slice of ocean between two Lat/Long locations, extracted from a NetCdf file extracted from the national Oceanographic and Atmospheric Administration bathymetry website. //==================================================================== module = pCoroner type = MOOS App author = Toby Schneider contact = toby@gobysoft.org org = MIT thumb = A process Coroner, reports dead apps. depends = goby/time, goby/util, goby/moos group = LAMSS borndate = 090304 license = GPL distro = lamss.mit.edu synopsis = pCoroner is a process watchdog for the LAMSS operational paradigm. It reports missing processes initially launched by a pAntler call. //==================================================================== module = pGeoTracker type = MOOSApp author = Don Eickstedt, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Passive sonar tracker for geo-referenced target motion analysis (TMA). depends = lib_henrik_util group = LAMSS, SonarProcessing borndate = 150701 distro = lamss.mit.edu synopsis = Originally developed by Don Eickstedt this geo-referenced passive sonar tracker processes the time history of the stabilized bearing tracks generated by pLamssBearingTracker and continuously updates a minimum least-squares track solution for an acoustic target. Once the track confidence exceeds the threshold, a Track Report is generated in the MOOSDB, triggering a message transmission to the operator using the acoustic communication infrastructure (pAcommshandler). //==================================================================== module = pLamssAEL type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Low-fidelity model of towed array geometry for on-board sonar processing chain. depends = goby/moos, goby/util, goby/acomms, goby/time, lib_lamss_protobuf, lib_henrik_util group = LAMSS, SonarProcessing borndate = 150701 distro = lamss.mit.edu synopsis = In lieu of using the computationally intensive towed array model uSimTowedArray, this module provides a simple model for the array element locations (AEL) for a towed array, used by the embedded processing chain for real-time on-board DLT processing. It models the array as a straight line array with the center following the same path as the towing UUV. Also supports arrays on moorings, assuming the array to be positively buoyant (VLA). //==================================================================== module = pLamssBearingTracker type = GobyMOOSApp author = Andrew Poulsen, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Stabilized bearing tracker for embedded use on UUVs with acoustic arrays. depends = goby/moos, goby/util, goby/acomms, goby/time, lib_lamss_protobuf, lib_henrik_util, lib_anrfp_util group = LAMSS, SonarProcessing borndate = 150701 distro = lamss.mit.edu synopsis = GobyMOOSApp conversion of the original MOOSApp pBearingTracker implementing the stabilized bearing tracker developed by Andrew Poulsen and Jack Ianiello. Monitors the beam-time records (BTR) produced by the embedded beamformer pLamssCBF and detects, localizes and tracks the strongest target in beam space. Works in concert with a suite of pHelmIvP behaviors for breaking array ambiguity and optimize tracking performance through dedicated platform maneuvers. The resulting bearing tracks are published in Contact Reports published to the MOOSDB and transmitted to the topside operators via a Goby-protobuf message. The contact report is also used by the next link in the processing chain, pGeoTracker. //==================================================================== module = pLamssCBF type = GobyMOOSApp author = Andrew Poulsen, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Conventional beamformer for towed or fixed sonar receiving arrays depends = goby/moos, goby/util, goby/time, boost, lib_lamss_protobuf, lib_henrik_util, lib_anrp_util group = LAMSS, SonarProcessing borndate = 150701 distro = lamss.mit.edu synopsis = Generic, conventional beamformer for on-board, embedded processing of acoustic signals received on fixed, towed or volumetric hydrophone arrays. Supports broadband and multi-tone processing, managed using a Boost FSM state machine in a separate thread. Resulting beam power is passed to other modules in the on-board processing chain for Detection, Location and Tracking, such as pLamssBearingTracker for passive sonars. This Goby-MOOS Application is derived from the original pBeamformer MOOS App. developed by Andrew Poulsen for the ONR PLUSNet acoustic surveillance program. It supports data from most the sonar arrays used on Lamss UUV's, including the DURIP towed array and the nose-mounted GOATS arrays, and all file formats created by the Virtual Ocean sonar simulators. //==================================================================== module = pLamssMissionManager type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = State machine application for on-board autonomous mission command and control, responsible for defining the hierarchical MODE state of pHelmIvP, and filling the role of the operator during communication blackouts, emergencies etc. depends = goby/moos, goby/util, goby/acomms, goby/time, goby/protobuf, boost, lib_lamss_protobuf, lib_henrik_util group = LAMSS, MissionManagement borndate = 150930 distro = lamss.mit.edu synopsis = pLamssMissionManager is a bi-threaded GobyMOOSApp that is responsible for the on-board command and control, managing all the principal state transitions in the pHelmIvP MODE structure using a Boost FSM state machine. It is the principal interpreter of commands received from the topside operators, managing the MOOS variables that defines the associated state transitions, and manages the the variables affecting dynamic behavior configurations. It is also the on-board mission-level watchdog, monitoring and ensuring a robust and reliable mission execution. For example it is responsible for issuing the initial deploy command once all conditions are satisfied, e.g. receipt of a reliable GPS navigation initialization and all hardware and software subsystems functioning. In addition it is a crucial autonomy component in situations where the communication with the operators is intermittent or failing, or unplanned events occur such as on-board system failures. Thus, depending on the configuration, in such situations it will manage the emergency UUV response by issuing MODE transition commands, e.g. returning towards the launch point for under-ice missions or move to a safe location when operating in shipping channels before surfacing. Adhering to the LAMSS C2 paradigm, the commands issued by pLamssMissionManager use the standard protobuf-based Goby-DCCL message structure, passed through the pAcommsHandler communication interface and acted upon by the autonomy system as if transmitted from the topside operators. //==================================================================== module = pLamssTrackManager type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = GobyMOOSapp for managing the onboard autonomous state transitions associated with passive and active acoustic target tracking. depends = goby/moos, goby/util, goby/acomms, goby/time, goby/protobuf, boost, lib_lamss_protobuf, lib_henrik_util group = LAMSS, MissionManagement, SonarProcessing borndate = 150930 distro = lamss.mit.edu synopsis = pLamssMissionManager is a bi-threaded GobyMOOSApp that manages the pHelmIvP MODE transitions associated with the Prosecute sub-states for acoustic Detection, Classification, Localization and Tracking (DCLT), using a Boost FSM state machine. As such it supplememnts the main mission manager application, pLamssMissionManager, for missions involving passive and active acoustic monitoring and surveillance, interacting with the various Applications in the onboard signal processing chain, Thus, for example, it configures the target search behaviors consistent with the target cue, and when a target signal detection is reported by the passive bearing tracker, pLamssTrackManager will transition into a mode activating a behavior for breaking array processing ambiguities, and subsequently into a tracking mode. Another function is managing a collaborative tracking mission when receiving track reports from a collaborator. //==================================================================== module = uSVP_OceanModel type = GobyMOOSApp author = Stephanie Petillo, Toby Schneider, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Extracts a range-dependent sound speed profile for a vertical slice of ocean between an acoustic source and receiver. depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 130101 distro = lamss.mit.edu synopsis = GobyMOOS request/response service application for providing the sound speed profile and the associated bathymetry along a vertical slice of ocean separating an acoustic source and receiver. Returns the requested SVP slice in a protobuf format compatible with the iBellhop acoustic modeling service application. The sound speed is extracted from a from a 4D (time,Lat,Lon,Depth) NetCdf representation of the temporal and spatial distribution of the temperature and salinity in a database or produced by an ocean circulation model. Supports NetCDF formats for several modeling frameworks, including HYCOM/NCOM, MSEAS, and databases such as GDEM. It also supports NetCdf files with the Lamss-EEOF representation of the sound speed profile. //==================================================================== module = uSimADCP_OceanModel type = GobyMOOSApp author = Stephanie Petillo, Toby Schneider, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Simulates an ADCP sensor reading using the current field extracted from a 4D NMetCdf file with modeled ocean currents. depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 150101 distro = lamss.mit.edu synopsis = GobyMOOSApp module used in the LAMSS Virtual Ocean for simulating an ADCP sensor by extracting the horizontal and vertical current velocities at the sensor location from a 4D (time,Lat,Lon,Depth) NetCdf representation of the temporal and spatial distribution of the ocean currents. Supports NetCDF formats for most common modeling frameworks, including HYCOM/NCOM, MSEAS. //==================================================================== module = uSimActiveSonar type = MOOS App author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Physics-based, active sonar, element-level timeseries simulator supporting fixed, towed and volumetric hull-mounted arrays. depends = goby/moos, goby/util, boost, gsl, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 110101 distro = lamss.mit.edu synopsis = This multi-threaded MOOS module works in concert with the Virtual Ocean environmental acoustic modeling modules in a nested simulation framework to generate real-time, element-level timeseries for arbitrary hydrophone and vector sensor array configurations on fixed or mobile active sonar platforms, 'operating' in a 4D NetCdf virtual representation of the ocean environment. The simulated array response includes surface generated ambient noise and sea-state dependent reverberation through realizations of a legacy reverberation statistic model. It supports arbitrary distributions of dynamic acoustic targets with aspect-dependent scattering characteristics. The sonar source is azimuthally isotropic with vertical directionality, i.e. equivalent to a shaded vertical source array. Supports mono- and bi-static configurations. //==================================================================== module = uSimCTD_OceanModel type = GobyMOOSApp author = Stephanie Petillo, Toby Schneider, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Simulates a CTD sensor reading using the temperature and salinity extracted from a 4D NMetCdf virtual ocean database. depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 150101 distro = lamss.mit.edu synopsis = Goby-MOOS application used in the LAMSS Virtual Ocean for simulating a CTD sensor by extracting the 'current' salinity and temperature values at the sensor location from a 4D (time,Lat,Lon,Depth) NetCdf representation of the temporal and spatial distribution of the temperature and salinity. Supports NetCDF formats for several modeling frameworks, including HYCOM/NCOM, MSEAS, and databases such as GDEM. //==================================================================== module = uSimModemNetwork type = Goby-MOOS App author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Request/Response service module returning the current multipath eigenray solution for a transmitter/receiver pair in a underwater modem network. depends = goby/moos, goby/util, boost, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 170101 distro = lamss.mit.edu synopsis = Upon request returns the instantaneous multipath eigenray solution (delay, amplitude, doppler etc.) for a transmitter/receiver pair in a multinode modem network. Intended for real-time timeseries generation for dynamic modem networks in a variable Virtual Ocean, it implements a highly efficient nested environmental acoustic modeling framework. Thus, it maintains a database of the sound speed profile in all vertical ocean slices in the network, regularly updated via requests to uSVP_OceanModel, typically once a minute. Using the latest svp updates it continuously updates an eigenray database for each transmitter/receiver pair via requests for raytracing solutions to iBellhop, covering a grid around the receiver, typically each 5-10 seconds. When requested, the eigenray solution is then achieved through simple ray interpolation in the receiver grid and returned through the MOOSDB with a delay of order 0.1 second. Supports arbitrary volumetric receiver arrays. uSimModemNetwork is the principal computational acoustics module in the NETSIM hardware-in-the-loop modem network simulator. However, starting in ICEX20 it has also become a core topside utility for environmentally adaptive modem network control. Thus, another request/response service returns a suite of communication performance metrics for a transmitter/receiver pair, which can then be used for either manually or automatically selecting an optimal network transmitter for commanding a particular undersea asset. //==================================================================== module = uSimModemRange type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = GobyMOOSApp module tracking the conversion of travel times in a modem network to ranges for use by ICEX20 integrated communication and navigation framework. depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 190701 distro = lamss.mit.edu synopsis = This module continuously monitors the impulse responses between all modem pairs in a modem range such as the one used in ICEX20. The impulse response is requested at regular intervals from the embedded Virtual Ocean process uSimModemNetwork, and using a simple statistical model of the triggering process of the receiving modem, the estimated travel times and their uncertainties are continuously tracked, and the corresponding horizontal group velocities are estimated and published to the MOOSDB. These are then used by tracking range modules such as lamss_icex_tracker for converting actual measured travel times to ranges, required for accurately tracking the undersea assets. //==================================================================== module = uSimModemSignal type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Request/Response service module generating the timeseries of a received modem signal for a transmitter/receiver pair in a modem network in the Virtual Ocean. depends = goby/moos, goby/util, boost, gsl, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 170101 distro = lamss.mit.edu synopsis = This module is used for generating the simulated signal received on one modem when transmitted form a companion modem in an undersea modem range. It is not used 'operationally' in Virtual Ocean experiments, but intended as a support tool when developing or testing modem coding and decoding algorithms. When a timeseries is requested from this module, it will request a current impulse response for the requested transmit/receive pair from uSimModemNetwork, and when received convolve with the transmit replica and write the resulting timeseries to a file for offline use, plotting etc. Supports single receivers and volumetric receiver arrays. //==================================================================== module = uSimNoiseCovariance type = MOOS App author = Henrik Schmidt, Andrew Poulsen contact = henrik@mit.edu org = MIT thumb = Request/Response service application computing surface generated ambient noise in Virtual Ocean. depends = goby/moos, goby/util, boost, lib_henrik_util group = LAMSS, VirtualOcean borndate = 070101 distro = lamss.mit.edu synopsis = This module computes the frequency dependent covariance matrices for arbitrary 3D arrays in a Virtual Ocean with azimuthally isotropic, vertically directional surface=generated ambient noise. When requested by uSimPassiveSonar or uSimActiveSonar, the current covariance matrix for the current 3D array geometry is returned in a file. Supports 3D volumetric and towed arrays of hydrophones or vector sensors. module = uSimPassiveSonar type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Physics-based, element-level passive sonar timeseries simulator supporting fixed, towed and volumetric receiver arrays, including surface generated ambient noise and arbitrary distributions of dynamic acoustic targets. depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 070101 distro = lamss.mit.edu synopsis = Originally developed for high-fidelity, physics-based simulation of towed array response in the ONR PLUSNet acoustic surveillance program, later upgraded to a more general Goby-MOOS application. Works in concert with the Virtual Ocean environmental acoustic modeling modules in a nested simulation framework to generate real-time, element-level timeseries for arbitrary hydrophone and vector sensor array configurations on fixed or mobile platforms 'operating' in a 4D NetCdf virtual representation of the ocean environment. The acoustic sources include surface-generated ambient noise, broadband and tonal sonar targets and man-made pingers, propagated through the dynamic virtual ocean using impulse responses continuously updated using the legacy Bellhop ray-tracing model. //==================================================================== module = uSimSelfNoise type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Virtual Ocean module for simulating UUV noise interference of passive sonar on collaborator UUV. depends = goby/moos, goby/util, goby/time, lib_lamss_protobuf group = LAMSS, VirtualOcean borndate = 170701 distro = lamss.mit.edu synopsis = This Virtual Ocean module represents a UUV's self noise (broadband and tones) as a target for a collaborator's passive sonar. It does so by creating a Goby-protobuf target simulation message with the self noise characteristics and bridging it to the collaborator's virtual ocean community where it will be handled as any other passive sonar targets. //==================================================================== module = uSimSourceArray type = GobyMOOSApp author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Configuring a phased source array for simulation of directional transmissions in the Virtual Ocean. depends = goby/moos, goby/util, goby_time, lib_lamss_protobuf, lib_henrik_util group = LAMSS, VirtualOcean borndate = 180701 distro = lamss.mit.edu synopsis = This Virtual Ocean module configures a simple directional source array for the passive sonar simulator uSimPassiveSonar. Each array element is defined as a separate target by its location, broadband and tonal characteristics, delay, and duration. The resulting target list is then passed on to uSimPassiveSonar through the MOOSDB in the same format as the target definitions created by uSimTargets. //==================================================================== module = uSimTargets type = Goby-MOOS App author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Virtual Ocean module is managing the mobile acoustic targets for the active and passive sonar simulators. targets depends = goby/moos, goby/util, lib_lamss_protobuf, lib_henrik_util, lib_bellhop group = LAMSS, VirtualOcean borndate = 180701 distro = lamss.mit.edu synopsis = This Virtual Ocean module activates, configures and de-activates targets for the sonar simulators uSimPassiveSonar and uSimActiveSonar, in response to commands from the topside command and control console goby-liaison, or posted by other applications. Each target is identified by a number, its source frequency, bandwidth and tonal properties for passive sonars, and scattering characteristics for active sonar simulations. An arbitrary number and type of targets are managed and passed on to the sonar simulators through a Goby-protobuf message published to the MOOSDB. //==================================================================== module = uSimTowedArray type = MOOS App author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Physics-based dynamic model for towed and fixed arrays of hydrophones or vector sensors on fixed or mobile platforms. depends = goby/moos, goby/util, lib_henrik_util group = LAMSS, VirtualOcean borndate = 070101 distro = lamss.mit.edu synopsis = Originally developed for high-fidelity, physics-based simulation of towed array response in the ONR PLUSNet acoustic surveillance program. Uses a Finite Difference model of towed array, coupled to the towing platform dynamic model for tracking the dynamic changes in the sensor configuration. Supports flexible and fixed line arrays and arbitrary volumetric arrays. Continuously publishes all array element locations and poses, subsequently used by uSimPassiveSonar and uSimActiveSonar for proper extraction of relevant impulse responses from the embedded acoustic model. //==================================================================== module = BHV_WiggleTail type = Behavior author = Don Eickstedt, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for breaking left-right ambiguity of towed array response during acoustic surveillance surveys. depends = ivp_behaviors group = LAMSS, SonarProcessing borndate = 070101 distro = lamss.mit.edu synopsis = This behavior works in concert with pLamssBearingTracker to execute a maneuver which allows the processing chain to break the left-right ambiguity of a linear towed array. Once the processing chain reports a new detection, the maneuver will initiate a turn at constant heading rate maintained until the processing chain declares the ambiguity to be broken. Originally developed and tested during the ONR PLUSNet program by Don Eickstedt, this behavior is now a standard component of a passive acoustic DCLT mission. //==================================================================== module = BHV_ConstantAltitude type = Behavior author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for executing bottom mapping missions maintaining constant altitude. depends = ivp_behaviors group = LAMSS, Environment borndate = 120101 distro = lamss.mit.edu synopsis = Behavior using a DVL or altimeter sensor for maintaining a constant altitude for bottom-following surveys. Typically used for sidescan or sub-bottom profiling. Alternatively configurable for inverted, upward-looking DVL for underice missions following the ice contours. //==================================================================== module = BHV_MinAltitude type = Behavior author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for maintaining a minimum altitude above bottom or below under-ice excursions. depends = ivp_behaviors group = LAMSS, Environment, FieldOperations borndate = 120101 distro = lamss.mit.edu synopsis = Behavior using a DVL or altimeter sensor for ensuring a minimum altitude above the bottom. Used routinely for shallow water operations. Alternatively configurable for inverted, upward-looking DVL for underice missions to ensure safe distance from ice keels etc. //==================================================================== module = BHV_OptAcommsDepth type = Behavior author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for creating depth objective function for optimizing acoustic communication performance, including coherence properties and multipath interference. depends = goby/moos, goby/util, goby/time, boost, lib_bellhop, lib_henrik_util group = LAMSS, Environment borndate = 120101 distro = lamss.mit.edu synopsis = This behavior computes a pHelmIvP depth objective function for optimizing communication performance, similar to BHV_OptAcousDepth, but using a suite of different performance metrics representing coherence properties of the acoustic environment. Metrics implemented include SNR for multipath arrivals with a limited number of boundary bounces, and a metric penalizing multipath fading. In addition to depth dependent ambient noise, this b behavior also allows for including vertical directionality of the noise by including the elevation dependent array gain in the optimization. //==================================================================== module = BHV_OptAcoustDepth type = Behavior author = Toby Schneider, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for creating depth objective function for optimizing incoherent signal-to-noise ratio (SNR) for an acoustic signal originating at a contact. depends = goby/moos, goby/util, goby/time, lib_bellhop, boost group = LAMSS, MissionManagement, VirtualOcean, Environment, SonarProcessing borndate = 110101 distro = lamss.mit.edu synopsis = This behavior computes a depth-objective function representing the SNR as a function of depth over a configurable look-ahead time. It is based on the original behavior developed by Toby Schneider which computes the incoherent Transmission Loss (TL) for a range-depth grid using the Embedded Virtual Ocean, but adding the feature of incorporating the depth-dependence of the ambient noise to base the adaptation on incoherent SNR. //==================================================================== module = BHV_Racetrack type = Behavior author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for executing a racetrack survey with configurable length, width and heading, with tight tracklines. depends = ivp_behaviors group = LAMSS, FieldOperations borndate = 110101 distro = lamss.mit.edu synopsis = Behavior for executing a racetrack survey with configurable length, width, and heading, and combined with arbitrary depth behaviors, including constant depth, dual in/out depths, smart yoyo, and environmentally adaptive for sensing optimization. The tight tracklines are only distorted by obstacle and collision avoidance behaviors. A behavior flag indicates when on a trackline and is typically used for disabling GPS surfacings to avoid distorting side scan images etc. //==================================================================== module = BHV_SmartYoyo type = Behavior author = Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for vertical yoyo surveys covering full water column in shallow water with horizontal bathymetry variation. depends = ivp_behaviors group = LAMSS, Environment borndate = 120101 distro = lamss.mit.edu synopsis = Behavior for performing vertical yoyo surveys covering the full water column in shallow water with horizontal bathymetric variability. Uses DVL readings to scale vertical yoyo pattern with the water depth. The vertical path is configurable in terms of upper and lower depths and horizontal period, and can be either triangular or sinusoidal in shape. Can alternatively be configured for yoyo survey below ice cover using upward-looking DVL, with the upper yoyo limit being scaled by the measured ice excursions. //==================================================================== module = BHV_WiggleTail type = Behavior author = Don Eickstedt, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for breaking left-right ambiguity of towed array response during acoustic surveillance surveys. depends = ivp_behaviors group = LAMSS, SonarProcessing borndate = 070101 distro = lamss.mit.edu synopsis = This behavior works in concert with pLamssBearingTracker to execute a maneuver which allows the processing chain to break the left-right ambiguity of a linear towed array. Once the processing chain reports a new detection, the maneuver will initiate a turn at constant heading rate maintained until the processing chain declares the ambiguity to be broken. Originally developed and tested during the ONR PLUSNet program by Don Eickstedt, this behavior is now a standard component of a passive acoustic DCLT mission. //==================================================================== module = BHV_ConstantBearing type = Behavior author = Don Eickstedt, Henrik Schmidt contact = henrik@mit.edu org = MIT thumb = Behavior for maintaining a constant relative bearing to an acoustic target depends = ivp_behaviors group = LAMSS, SonarProcessing borndate = 110101 distro = lamss.mit.edu synopsis = This behavior works in concert with pLamssBearingTracker and pLamssTrackManager during acoustic tracking missions to optimize tracking resolution once the target signal is detected and the left-right ambiguity inherent to the towed array is broken. Thus, when entering the Tracking phase of the DCLT sequence, this behavior computes a heading and speed objective function for maintaining a specified relative bearing to a target being tracked using either a hull-mounted or towed acoustic array. The desired relative bearing can be configured for only forward of broadside, or alternatively either forward or backward, and typically close to broadside, e.g. $80^{\circ}$. The behavior monitors bearing rate, and if it goes stale, the behavior autonomously reverses the heading to maximize target motion information. Originally developed and tested during the ONR PLUSNet program by Don Eickstedt, this behavior is now a standard component of a passive acoustic DCLT mission.