//====================================================================
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.