// alogeval // alogload // alogtest // alogtm // ffview // geoview // manifest_test // nsplug // lib_evalutil // uFldWrapDetect //==================================================================== module = alogavg type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Utility for averaging Y-values per X-Value for file with X-Y value per line depends = lib_mbutil, lib_logutils, lib_apputil borndate = 211215 doc_url = http://oceanai.mit.edu/ivpman/apps/alogavg license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = Given a file of data, two values per line, treat each line as having an x value and y value. This tool will calculate the average y value given several (x,y) pairs. It will also calculate the min, max, standard deviation of for each x value. //==================================================================== module = alogbin type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Utility for binning data within similar ranges into clusters depends = lib_mbutil, lib_logutils borndate = 200826 doc_url = http://oceanai.mit.edu/ivpman/apps/to-be-written license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = Given a file of data, one value per line, bin each value into the given delta and count the number in each bin. //==================================================================== module = alogcat type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = ConCATinate two alog files into one alog file depends = lib_mbutil, lib_logutils borndate = 180813 doc_url = http://oceanai.mit.edu/ivpman/apps/alogcat license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = Create a new MOOS .alog file from two or more given .alog files. Given files are meant to be non-overlapping in time, presumably made by starting and stopping a single MOOS community. //==================================================================== module = alogcd type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Scan an alog file for collision detection reports. depends = lib_mbutil, lib_logutils borndate = 151223 doc_url = http://oceanai.mit.edu/ivpman/apps/alogcd license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = Scan an alog file for collision detection reports. Tally the totals and averages, and optionally create a file holding all the timestamps of events. By default, it scans for events defined by postings to the following three MOOS variables: (1) COLLISION, (2) NEAR_MISS, and (3) ENCOUNTER. //==================================================================== module = alogcheck type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Scan an alog file and check if given condition is satisfied depends = lib_mbutil, lib_logutils, lib_logic borndate = 151223 doc_url = Pending license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogcheck is a command line utility that checks if a specified condition has been satisfied in an alog file. It can be used as part of an autonomated verification and validation scheme to check whether a certain success or failure condition was produced by a mission. The tool can accept a start and end timestamp, or work with the whole file. A pass condition may be specified, or alternatively a failure condition may be specified. A results output file may be specified or else all output goes to the terminal. //==================================================================== module = alogclip type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Trim an alog file given a start and end time stamp depends = lib_mbutil, lib_logutils, borndate = 080605 doc_url = http://oceanai.mit.edu/ivpman/apps/alogclip license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogclip is a command line utility that creates a new alog file from a given alog file, by removing all entries outside a given time window. Often useful in post-mission handling of data, especially when an alog file inadvertently contains perhaps hours of data not relevant to the mission, e.g., if the logger recorded substantial data prior or after in-water deployment. //==================================================================== module = alogeplot type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Produce an encounter plot image from encounters from and alog file. depends = lib_mbutil, lib_logutils, lib_encounters borndate = 160116 doc_url = Pending license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogeplot is a command line utility that creates an image, an "encounter plot", rendering all encounters found in the given alog file on a 2D plot with the axes of safety (based on CPA distance) and efficiency (application dependent). //==================================================================== module = aloggrep type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Trim an alog file by retaining specified MOOS variables depends = lib_mbutil, lib_logutils, borndate = 080806 doc_url = http://oceanai.mit.edu/ivpman/apps/aloggrep license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = aloggrep is a command line utility that create a new alog file, from a given alog file, by retaining only the given MOOS variables or sources, named on the command line. Often useful in post-mission analysis if one wants to look at only the data from a particular source, such as NAV for GPS data for example. //==================================================================== module = aloghelm type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Scan an alog file to generate one of several helm reports depends = lib_mbutil, lib_logutils, lib_helmivp, lib_behaviors, lib_ivpbuild, lib_ivpcore, lib_ivpsolve borndate = 100310 doc_url = http://oceanai.mit.edu/ivpman/apps/aloghelm license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = aloghelm is a command line utility that will perform one of several user specified helm reports based on helm output logged in the given alog file. Reports include: (1) Life events: A report on IvP Helm life events, i.e. behavior spawnings and destructions. (2) Behavior state changes: A report showing which behaviors changed state when, and to which states. (3) Helm Mode changes: A report showing when the helm changed modes and to which modes. //==================================================================== module = alogiter type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Scan an alog file to analyze avg application load by iterations depends = lib_mbutil, lib_logutils borndate = 131222 doc_url = http://oceanai.mit.edu/ivpman/apps/alogiter license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogiter is a command line utility that will scan a given alog file and produce a report on the noted iteration length, and gap between iterations, for all applications that have produced the ITER_GAP and ITER_LEN output variables. This is a quick way to check if a certain application may have peaked in load at some point during the mission, perhaps to the point where it was not able to run at its requested frequency. //==================================================================== module = alogpare type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Prune an alog file based on events and mark values depends = lib_mbutil, lib_logutils borndate = 151225 doc_url = http://oceanai.mit.edu/ivpman/apps/alogpare license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogpare is a command line utility that will create a new alog file from a given alog file. It will pare the original file in a two-pass manner. The first pass detects events defined by provided mark variables. The second pass will remove lines involving variables on a hit-list that are not within a specified window of time of an event line. This utility may be useful in post-mission data managment by greatly thinning large log files by reducing information outside of events of interest. For example in collision avoidance testing, the log files may be pruned unless an encounter involving a near collision is noted. There may be no need for full data outside of near collision windows. //==================================================================== module = alogrm type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Prune an alog file by removing nammed MOOS variables depends = lib_mbutil, lib_logutils borndate = 080806 doc_url = http://oceanai.mit.edu/ivpman/apps/alogrm license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogrm is a command line utility that will generate a new alog file from a given alog file, by removing certain lines. A line may be targeted for removal if its name matches one or more provided MOOS variables. Or it may be removed if its source matches one or more provided app names. This utility may be useful in post-mission data managment by greatly thinning large log files if certain data in those files can be safely discarded. //==================================================================== module = alogscan type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Scan an alog file and produce breakdowns on log volume depends = lib_mbutil, lib_logutils borndate = 080605 doc_url = http://oceanai.mit.edu/ivpman/apps/alogscan license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogscan is a command line utility that will create summary report from a given alog file. This report will contain a line for all logged MOOS variables, noting which app(s) published to it, the first and last publish time, and the total number of lines and characters in the alog file used by this variable. //==================================================================== module = alogsort type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Create new alog file sorting entries based on timestamp depends = lib_mbutil, lib_logutils borndate = 130622 doc_url = Pending license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogsort is a command line utility that will create a new alog file from a given alog file, by ensuring absolute ordering of all lines based on their timestamps. In general pLogger/alog lines are ordered, but occasionally they are not. Most alog utilities do not rely on the assumption of absolute ordering. But if a utility does indeed depend on this absolute ordering, this tool can be used to create an equivalent alog file with guaranteed absolute ordering of lines. //==================================================================== module = alogsplit type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Split an alog file into dedicated alog files per variable depends = lib_mbutil, lib_logutils borndate = 150215 doc_url = http://oceanai.mit.edu/ivpman/apps/alogsplit license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogsplit is a command line utility that will take a given alog file and split the contents into a directory, within which each MOOS variable is split into its own (klog) file containing only that variable. The split will also create a summary .klog (pronounced "kay-log") file with summary information. The original alog file is unchanged. It will not overwrite the directory if previously created. This is essentially the operation done at the outset of launching the alogview applicaton. The split allows for faster access for information indexed on a given variable name. This utility can be run prior to launching alogview, which will shorten the launch time of alogview. Otherwise alogview will perform this step autonomically the first time it is launched with the given alog file. //==================================================================== module = alogview type = GUI utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A GUI tool for replaying and analyzing one or more vehicle alog files depends = lib_mbutil, lib_logutils, lib_marineview, lib_helmivp, lib_geometry, lib_contacts, lib_ipfview, lib_encounters, lib_ivpbuild, lib_apputil borndate = 150215 doc_url = http://oceanai.mit.edu/ivpman/apps/alogview license = GPL group = MOOS-IvP, ALog Toolbox distro = moos-ivp.org synopsis = alogview is a GUI based tool for rendering vehicle paths from multiple MOOS .alog files. The user may simply replay logged data, or step through manually, or index anywhere on the timeline with a single mouse click. Supports several specialized pop-up windows for viewing helm state, objective functions, any logged variable across vehicles. If multiple alog files are given, they will be synchronized. Upon launch, the original alog files are split into dedicated directories to cache data base on the MOOS variable name. //==================================================================== module = gen_obstacles type = General Utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A command line tool for random generation of obstacle polygons to a file depends = lib_mbutil, lib_geometry, lib_obstacles borndate = 171018 doc_url = http://oceanai.mit.edu/ivpman/apps/to-be-written license = GPL group = MOOS-IvP, Simulation distro = moos-ivp.org synopsis = gen_obstacles is a utility for generating a obstacle file, a set of polygon obstacles, all guaranteed to be within the user specified polygon region, none of them overlapping and guaranteed to have a minimum separation range. //==================================================================== module = BHV_AvdColregs type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for avoiding collision based on CPA and COLREGS considerations. borndate = 130516 doc_url = http://oceanai.mit.edu/ivpman/bhvs/AvdColregs license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = The AvdColregs behavior will produce IvP objective functions designed to avoid collisions (and near collisions) with another specified vehicle, based on the protocol found in the US Coast Guard Collision Regulations (COLREGS). The IvP functions produced by this behavior are defined over the domain of posssible heading and speed choices. The utility assigned to a point in this domain (a heading-speed pair) depends in part on the calculated closest point of approach (CPA) between the candidate maneuver leg, and the contact leg formed from the contact's position and trajectory. A further user-defined utility function is applied to the CPA calculation for a candidate maneuver. //==================================================================== module = BHV_AvoidCollision type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for avoiding collision based primarily on CPA considerations. borndate = 061118 doc_url = http://oceanai.mit.edu/ivpman/bhvs/AvoidCollision license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = The AvoidCollision behavior will produce IvP objective functions designed to avoid collisions (and near collisions) with another specified vehicle. The IvP functions produced by this behavior are defined over the domain of posssible heading and speed choices. The utility assigned to a point in this domain (a heading-speed pair) depends in part on the calculated closest point of approach (CPA) between the candidate maneuver leg, and the contact leg formed from the contact's position and trajectory. A further user-defined utility function is applied to the CPA calculation for a candidate maneuver. //==================================================================== module = BHV_ConstantDepth type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for specifying the desired depth of the vehicle. depends = borndate = 050603 doc_url = http://oceanai.mit.edu/ivpman/bhvs/ConstantDepth license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle at a specified depth. This behavior merely expresses a preference for a particular depth. If other behaviors also have a depth preference, coordination/compromise will take place through the multi-objective optimization process. //==================================================================== module = BHV_ConstantHeading type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for specifying the desired heading of the vehicle. depends = borndate = 050721 doc_url = http://oceanai.mit.edu/ivpman/bhvs/ConstantHeading license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle at a specified heading. This behavior merely expresses a preference for a particular heading. If other behaviors also have a heading preference, coordination/compromise will take place through the multi-objective optimization process. //==================================================================== module = BHV_ConstantSpeed type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for specifying the desired speed of the vehicle. depends = borndate = 050724 doc_url = http://oceanai.mit.edu/ivpman/bhvs/ConstantSpeed license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle at a specified speed. This behavior merely expresses a preference for a particular speed. If other behaviors also have a speed preference, coordination/compromise will take place through the multi-objective optimization process. //==================================================================== module = BHV_CutRange type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior intercepting, closing range, to another moving vessel. depends = borndate = 050510 doc_url = http://oceanai.mit.edu/ivpman/bhvs/CutRange license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle to reduce the range between itself and another specified vehicle (nearly the opposite of the BHV_AvoidCollision behavior). A "patience" parameter may be set to determine if the vehicle should drive straight toward the contact's present position (no patience), or drive instead to an intercept point at speed (high patience). //==================================================================== module = BHV_GoToDepth type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for specifying a sequence of desired depths of the vehicle. depends = borndate = 060801 doc_url = http://oceanai.mit.edu/ivpman/bhvs/GoToDepth license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle to a sequence of specified depths and duration at each depth. This behavior merely expresses a preference for a particular depth. If other behaviors also have a depth preference, coordination/compromise will take place through the multi-objective optimization process. //==================================================================== module = BHV_Loiter type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for repeatedly traversing a given convex polygon of waypoints. borndate = 050726 doc_url = http://oceanai.mit.edu/ivpman/bhvs/Loiter license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = A behavior for transiting to and repeatedly traversing a set of waypoints forming a convex polygon. A similar effect can be achieved with the Waypoint behavior but this behavior assumes a set of waypoints forming a convex polygon to exploit certain useful algorithms. It also utilizes the non-monotonic arrival criteria used in the Waypoint behavior to avoid loop-backs upon waypoint near-misses. It also robustly handles dynamic exit and re-entry modes when or if the vehicle diverges from the loiter region due to external events. It is dynamically reconfigurable to allow a mission control module to repeatedly reassign the vehicle to different loiter regions by using a single persistent instance of the behavior. //==================================================================== module = BHV_MaxDepth type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior to influence the vehicle to go no deeper than a given depth. depends = borndate = 140417 doc_url = http://oceanai.mit.edu/ivpman/bhvs/MaxDepth license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle within a configured depth tolerance. This behavior merely expresses a preference for a particular depth. If other behaviors also have a depth preference, coordination/compromise will take place through the multi-objective optimization process. This behavior differs from the maximum depth in the OpRegion behavior. In the MaxDepth behavior, an objective function is produced to prevent the vehicle from exceeding the maximum depth, perhaps tempering other behaviors that may prefer deeper depths. In the OpRegion behavior there is no attempt to influence the vehicle depth, but rather only to monitor the observed depth and produce an error if the depth is exceeded. //==================================================================== module = BHV_MemoryTurnLimit type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior preventing quick wrap-around turns, especiall with towed sensor. depends = borndate = 060807 doc_url = http://oceanai.mit.edu/ivpman/bhvs/MemoryTurnLimit license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = The objective of the MemoryTurnLimit behavior is to avoid vehicle turns that may cross back on its own path and risk damage to the towed equipment. Its configuration is determined by the two parameters which combine to set a vehicle turn radius limit. However, it is not strictly described by a limited turn radius; it stores a time-stamped history of recent recorded headings and maintains a heading average, and forms its objective function on a range deviation from that average. This behavior merely expresses a preference for a particular heading. If other behaviors also have a heading preference, coordination/compromise will take place through the multi-objective optimization process. //==================================================================== module = BHV_OpRegion type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior monitoring vehicle position to remain within a convex polygon region. depends = borndate = 050501 doc_url = http://oceanai.mit.edu/ivpman/bhvs/OpRegion license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior provides four different types of safety functionality, (a) a boundary box given by a convex polygon in the x-y or lat-lon plane, (b) an overall timeout, (c) a depth limit, (d) an altitude limit. The behavior does not produce an objective function to influence the vehicle to avoid violating these safety constraints. This behavior merely monitors the constraints and posts an error which results in the posting of all-stop commands, which could put the vehicle into the PARK state if the helm is configured with park_on_allstop is set to true. //==================================================================== module = BHV_PeriodicSpeed type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for periodically influencing the vehicle speed. depends = borndate = 060609 doc_url = http://oceanai.mit.edu/ivpman/bhvs/PeriodicSpeed license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will periodically influence the speed of the vehicle while remaining neutral at other times. The timing is specified by a given period in which the influence is on (busy), and a period specifying when the influence if off (lazy). It was conceived for use on an AUV equipped with an acoustic modem to periodically slow the vehicle to reduce self-noise and reduce communication difficulty. One can also specify a flag (a MOOS variable and value) to be posted at the start of the period to prompt an outside action such as the start of communication attempts. //==================================================================== module = BHV_PeriodicSurface type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for periodically influencing the vehicle to surface. depends = borndate = 070221 doc_url = http://oceanai.mit.edu/ivpman/bhvs/PeriodicSurface license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will periodically influence the depth and speed of the vehicle while remaining neutral at other times. The purpose is to bring the vehicle to the surface periodically to achieve some event specified by the user, typically the receipt of a GPS fix. Once this event is achieved, the behavior resets its internal clock to a given period length and will remain idle until a clock time-out occurs. //==================================================================== module = BHV_Shadow type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior matching the heading and speed of a contact vehicle. depends = borndate = 050510 doc_url = http://oceanai.mit.edu/ivpman/bhvs/Shadow license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle to match the trajectory of another specified vehicle. This behavior in conjunction with the BHV_CutRange behavior can produce a "track and trail" capability. //==================================================================== module = BHV_StationKeep type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for holding a vehicle at a given position. borndate = 060825 doc_url = http://oceanai.mit.edu/ivpman/bhvs/StationKeep license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior is designed to keep the vehicle at a given lat/lon or x,y station-keep position by varying the speed to the station point as a linear function of its distance to the point. The parameters allow one to choose the two distances between which the speed varies linearly, the range of linear speeds, and a default transit speed if the vehicle is outside the outer radius. An alternative to this station keeping behavior is an active loiter around a very tight polygon with the Loiter behavior. This station keeping behavior conserves energy and aims to minimize propulsor use. The behavior can be configured to station-keep at a pre-set point, or wherever the vehicle happens to be when the behavior transitions into an active state. The station-keep behavior was initially developed for use on a small autonomous surface craft. It's worth pointing out that a control system provided by a vehicle manufacturer, i.e., the front-seat system, may have a native station-keeping mode. In this case the activation of this behavior would be replaced by a message from the backseat autonomy system to invoke the station-keeping mode. //==================================================================== module = BHV_TestFailure type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior designed to fail, to test the helm's handling of a behavior failure. depends = borndate = 111031 doc_url = http://oceanai.mit.edu/ivpman/bhvs/TestFailure license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = The TestFailure behavior is used to test the helm in two conceivable behavior failure modes. First, it may be used to simulate a behavior that crashes and thereby results in the crash of the helm. Second, it may be used to simulate a behavior that consumes a sufficiently large enough amount of time so as cause the helm to be considered "hung" by consumers of the helm output. Recall that the helm is compiled, with behaviors, into a single MOOS application. Although some behaviors may be compiled into shared libraries loaded at run time, thereby not requiring a recompile, all behaviors do run as part of a single helm process. A crashed behavior results in a crashed helm. Furthermore the helm, on each iteration, queries each participating behavior for its input. It does not do this in separate threads, and there is no timeout with a default reply should a behavior never answer. A hung behavior results in a hung helm. These are architecture decisions that on one hand allow a substantial amount of simplicity in the helm implementation and debugging. Furthermore, it's not clear that a graceful and safe policy exists to safely handle a rogue behavior other than to either (a) abort the mission or (b) put the vehicle in the hands of a much more conservatively configured "standby" instance of the helm, perhaps just to get the vehicle home. This behavior is used to simulate both kinds of rogue behaviors, a behavior that crashes and a behavior the hangs. The crash is implemented simply with an assert(0) statement, and the hang is implemented with a long for-loop. //==================================================================== module = BHV_Timer type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for posting to the MOOSDB based on other events or timing. depends = borndate = 050731 doc_url = http://oceanai.mit.edu/ivpman/bhvs/Timer license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = The Timer behavior is a somewhat unique behavior in that it never produces an objective function. It has virtually no functionality beyond what is derived from the parent IvPBehavior class. It can be used to set a timer between the observation of one or more events (with condition flags) and the posting of one or more events (with end flags). The duration, duration_status, duration_idle_decay, condition, runflag and endflag parameters are all defined generally for behaviors. There are no additional parameters defined for this behavior. //==================================================================== module = BHV_Trail type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for maneuvering ownship at a relative bearing and range to a contact. depends = borndate = 050603 doc_url = http://oceanai.mit.edu/ivpman/bhvs/Trail license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = This behavior will drive the vehicle to trail or follow another specified vehicle at a given relative position. A tool for "formation flying". //==================================================================== module = BHV_Waypoint type = Behavior author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A behavior for traversing a given set of waypoints. depends = borndate = 041101 doc_url = http://oceanai.mit.edu/ivpman/bhvs/Waypoint license = GPL group = MOOS-IvP, Helm Behaviors, Core Autonomy distro = moos-ivp.org synopsis = The Waypoint behavior is used for transiting to a set of specified waypoint in the x-y plane. The primary parameter is the set of waypoints. Other key parameters are the inner and outer radius around each waypoint that determine what it means to have met the conditions for moving on to the next waypoint. The behavior may also be configured to perform a degree of track-line following, that is, steering the vehicle not necessarily toward the next waypoint, but to a point on the line between the previous and next waypoint. This is to ensure the vehicle stays closer to this line in the face of external forces such as wind or current. The behavior may also be set to "repeat" the set of waypoints indefinitely, or a fixed number of times. The waypoints may be specified either directly at start-up, or supplied dynamically during operation of the vehicle. There are also a number of accepted geometry patterns that may be given in lieu of specific waypoints, such as polygons, lawnmower pattern and so on. //==================================================================== module = MOOSDB type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = The main communication mechanism for all MOOS apps depends = lib_MOOS borndate = 000101 doc_url = https://sites.google.com/site/moossoftware/ license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = MOOS has a star-like communications topology. Each application within a MOOS community, a MOOSApp, has a connection to a single “MOOS Databaseâ€, called MOOSDB, that lies at the heart of the software suite. All communication happens via this central “server†application, via a publish and subscribe protocol. //==================================================================== module = iMatlab type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = A tool for connecting Matlab to a running MOOS community. depends = lib_MOOS borndate = 000101 doc_url = http://oceanai.mit.edu/ivpman/apps/iMatlab license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = Not everyone wants to program in C++. Many folks are happy using Matlab as their research tool. Whilst not advising the use of Matlab to control a real vehicle, it seemed useful to build an application that allows Matlab to join a MOOS community - if only for listening in and rendering sensor data. iMatlab allows that to happen. In essence it "mexes" (compiles into a binary form Matlab can call directly) up some central MOOS code so it can be called from inside Matlab. The CMake build system supported by current releases of MOOS will build the project for the Linux or Windows version of Matlab. //==================================================================== module = iRemoteLite type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = A remote control interface for manual vehicle control. depends = lib_MOOS borndate = 000101 doc_url = http://oceanai.mit.edu/ivpman/apps/iRemote license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = Not everyone wants to program in C++. Many folks are happy using Matlab as their research tool. Whilst not advising the use of Matlab to control a real vehicle, it seemed useful to build an application that allows Matlab to join a MOOS community - if only for listening in and rendering sensor data. iMatlab allows that to happen. In essence it "mexes" (compiles into a binary form Matlab can call directly) up some central MOOS code so it can be called from inside Matlab. The CMake build system supported by current releases of MOOS will build the project for the Linux or Windows version of Matlab. //==================================================================== module = iSay type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Invokes system text to voice upon postings to the MOOSDB depends = lib_mbutil, lib_genutil, lib_apputil, lib_MOOS borndate = 130520 doc_url = http://oceanai.mit.edu/ivpman/apps/iSay license = GPL group = MOOS-IvP, General Utility, Mission Control distro = moos-ivp.org synopsis = The iSay application is a way to invoke the native speech generation utilities of OSX (the say command) and GNU/Linux (the espeak command). It may also invoke the afplay command available in both OSX and GNU/Linux to play a given wav or mp3 file. Each instance of sound generation is done on a cue in MOOS, based on user configured logic conditions. For example, a user may configure a sound to be generated when a vehicle goes outside a region, or comes to the surface. iSay may run in the vehicle MOOS community, or more typically in a Shoreside MOOS community to indicate a status change in one of the deployed vehicles. //==================================================================== module = lib_MOOS type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = Core MOOS comms, MOOS App superclass, and utitlities implementation. borndate = 000101 doc_url = themoos.org license = GPL group = MOOS-IvP, Libraries, Oxford MOOS distro = themoos.org, moos-ivp.org synopsis = //==================================================================== module = lib_apputil type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library for supporting AppCasting MOOS apps borndate = 120612 doc_url = https://oceanai.mit.edu/ivpman/appcasting license = GPL group = MOOS-IvP, Libraries, General Utility distro = moos-ivp.org synopsis = AppCasting MOOS apps produce an output on each iteration, separate from what they publish to the MOOSDB. This output goes both to the terminal, if there is one open, and also is serialized into a APPCAST message to the MOOSDB. This message then may be viewed by any AppCast viewing application such as pMarineViewer, uMAC, and uMACView. This library contains classes used by all AppCasting MOOS apps, and any of the AppCast viewing utilities. //==================================================================== module = lib_behaviors-colregs type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library holding the COLREGS collision avoidance behavior implementation. borndate = 061118 doc_url = http://oceanai.mit.edu/ivpman/bhvs/AvdColregs license = GPL group = MOOS-IvP, Libraries, Core Autonomy, Helm Behaviors distro = moos-ivp.org synopsis = The lib_behaviors-colregs library holds a single behavior, the COLREGS collision avoidance behavior. This behavior is also implemented by several other classes in this library, and other libraries such as the lib_geometry library. //==================================================================== module = lib_behaviors-marine type = Library author = Michael Benjamin, Henrik Schmidt contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library holding most of the IvP behaviors of MOOS-IvP borndate = 041101 doc_url = http://oceanai.mit.edu/ivpman/bhvs license = GPL group = MOOS-IvP, Libraries, Core Autonomy, Helm Behaviors distro = moos-ivp.org synopsis = The lib_behaviors-marine library holds the two dozen+ IvP behaviors distributed with the IvP Helm in the MOOS-IvP code base. Each of these behaviors is compiled into the pHelmIvP executable. Third party behaviors may exist in other libraries and are typically compiled as shared libraries, loaded by the helm at run time. //==================================================================== module = lib_behaviors type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library containing superclass code for all IvP behaviors. depends = borndate = 031021 doc_url = http://oceanai.mit.edu/ivpman/bhvs license = GPL group = MOOS-IvP, Libraries, Core Autonomy, Helm Behaviors distro = moos-ivp.org synopsis = The lib_behaviors library contains the superclasses IvPBehavior and IvPContactBehavior used by all IvP behaviors and all IvP contact related behaviors (e.g., collision avoidance, COLREGS). This library also contains the definitions for helm LifeEvents, to capture the events of behavior spawnings and destruction. //==================================================================== module = lib_bhvutil type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library holding several utility classes used by behaviors borndate = 050510 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, Core Autonomy, Helm Behaviors distro = moos-ivp.org synopsis = The lib_bhvutil library contains utilities essential to many IvP behavior implementations. This includes the WaypointEngine and LoiterEngine which do the heavy lifting for the Waypoint and Loiter behaviors. It also includes many "AOF" classes, which implement the underlying utility function used by many behaviors to build their IvP objective functions. (Honestly this library could be merged with the lib_behaviors-marine library, but remains split to avoid what would otherwise be a very large library.) //==================================================================== module = lib_contacts type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library implementing the node report message structure depends = borndate = 100227 doc_url = http://oceanai.mit.edu/ivpman/apps/pNodeReporter license = GPL group = MOOS-IvP, Libraries, Core Autonomy, Helm Behaviors distro = moos-ivp.org synopsis = The NODE_REPORT variable is used by many MOOS applications to represent the time-stamped status of a vesssel position, heading and speed, along with other fields of information on vessel type and state. This library implementes the NodeReport class and methods for serialization and deserialization. //==================================================================== module = lib_encounters type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library holding the Encounter class, for vehicle CPA encounters depends = borndate = 151215 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldCollisionDetect license = GPL group = MOOS-IvP, Libraries distro = moos-ivp.org synopsis = A vehicle "encounter" is an event comprised of two vehicles approaching one another (decreasing range), reaching a closest point of approach (CPA) followed by indefinite opening (increasing range). This library implements a data structure holding the information for such encounters. The library holds only this class, but it is used in a few applications, so it has its own library. //==================================================================== module = lib_genutil type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library used by applications having both a MOOS and user interface borndate = 041104 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, General Utility distro = moos-ivp.org synopsis = A library used by applications having both a MOOS and user interface, by supporting a separate thread for user keyboard interaction. //==================================================================== module = lib_geometry type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = Core geometry libraries for autonomy behaviors and GUIs. Includes CPAEngine. depends = borndate = 040420 doc_url = http://oceanai.mit.edu/ivpman/apps/geometry license = GPL group = MOOS-IvP, Libraries, General Utility, Core Autonomy, Helm Behaviors distro = moos-ivp.org synopsis = The geometry library implements dozens of core geometry data structures used in several helm behaviors, GUI applications and many other apps. It includes the CPAEngine which does the heavy lifting in many contact-related behaviors such as the COLREGS collision avoidance behavior. The library also contains serialization and deserialization functions for most if not all geometry data structures. //==================================================================== module = lib_helmivp type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library holding most non-MOOS specific code of the IvP Helm depends = borndate = 041027 doc_url = http://oceanai.mit.edu/ivpman/helm license = GPL group = MOOS-IvP, Libraries, Core Autonomy distro = moos-ivp.org synopsis = The lib_helmivp library contains a substantial portion of the implementation of the IvP Helm. It does not contain the behavior implementations (see lib_behaviors, lib_behaviors-marine), and it contains no code dependent on MOOS libraries. This library contains the definition of a BehaviorSet, the primary data structure managed by the helm, holding all behaviors, behavior templates and the helm information buffer. It contains all the code for reading a behavior (.bhv) file for initialize the helm for a given mission. //==================================================================== module = lib_ipfview type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library with classes to support the rendering of IvP Functions depends = borndate = 060112 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, Mission Control distro = moos-ivp.org synopsis = The lib_ipfview library contains classes used by applications rendering IvP functions. IvP functions are piecewise linearly defined, and this library contains data structures for representing such pieces in a form suitable for rapid rendering. It also contains a IPFViewer superclass that applications derive from, doing most of the OpenGL heavy lifting. //==================================================================== module = lib_ivpbuild type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library with utilities for build IvP Functions depends = borndate = 030515 doc_url = http://oceanai.mit.edu/ivpman/ivpbuild license = GPL group = MOOS-IvP, Libraries, Core Autonomy, IvPBuild Toolbox distro = moos-ivp.org synopsis = The IvPBuild Toolbox is set of classes and utility functions to aid behavior developers in the generation of IvP Functions within their behaviors. Ultimately any behavior that wishes to influence the trajectory of the vehicle must produce an IvP function as output. All IvP functions are piecewise linearly defined, and must be in a particular format to be accepted by the IvP solver. The IvPBuild Toolbox simplifies the generation of these functions by providing tools that accept a finite set of parameters and produce syntactically valid instances of an IvP function. One set of utilities (the ZAIC classes) facilitate the generation of IvP functions in 1 dimension. Another set of utilities (the Reflector tools) facilitate the generation of IvP functions in (N>1) dimensions. //==================================================================== module = lib_ivpcore type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library with core classes for representing IvP Functions and IvP Domains. depends = borndate = 970101 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, Core Autonomy distro = moos-ivp.org synopsis = The lib_ivpcore library contains all the classes necessary for representing instances of an IvP Function and an IvP Domain. An IvP Function is a piecewise linearly defined function defined over one or more uniformly discrete decision variables. Each decision variable in the domain also has an lower and upper bound, and the IvP Domain represents the collective decision space taken as the Cartesian product of all decision variables. For example, for marine surface vehicles, the decision space is typically 2D with heading and speed as the two decision variables. For underwater vehicles it would be 3D, heading, speed and depth. //==================================================================== module = lib_ivpsolve type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library for representing and solving IvP Problems. depends = borndate = 970101 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, Core Autonomy distro = moos-ivp.org synopsis = The lib_ivpsolve library contains the class for representing IvP problems, including the methods for solving problem instances. This library also includes more naive versions of the solution algorithm. They remain to support benchmarking and validation testing. //==================================================================== module = lib_logic type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library for implementing simple Boolean logic in applications depends = borndate = 100919 doc_url = http://oceanai.mit.edu/ivpman/logic license = LGPL group = MOOS-IvP, Libraries, Core Autonomy, ALog Toolbox distro = moos-ivp.org synopsis = The lib_logic library implements simple Boolean logic, typically applied to MOOS variables. For example, an application like the helm, uTimerScript, or uQueryDB, may condition its actions on a MOOS variable having a certain value, such as "DEPLOY=true", or more complex conditions such as "((RETURN != true) or (MISSION_TIME > 600")). This library also contains the implementation of the InfoBuffer class which is used by the helm to hold a snapshot of a subset of the MOOSDB, directly accessed by helm behaviors. The InfoBuffer is also used in the uTimerScript and uQueryDB applications. //==================================================================== module = lib_logutils type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library of utilities to support many of the apps in the ALog Toolbox depends = borndate = 050531 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, ALog Toolbox distro = moos-ivp.org synopsis = Many tools in the ALog Toolbox need to do similar things, such as reading alog files, splitting alog files into cached subidirectories. This library contains many support classes used across many of the applications in the ALog Toolbox. //==================================================================== module = lib_manifest type = Library author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A library with key manifest data structures an I/O functions for populat ing manifests. depends = borndate = 180109 doc_url = http://oceanai.mit.edu/moos-ivp/manifest-howto license = GPL group = MOOS-IvP, General Utility distro = moos-ivp.org synopsis = The lib_manifest contains the class definitions for a Manifest, ManifestSet and the utilities for populating these data structures from as set of files. //==================================================================== module = lib_marineview type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library common classes for supporting GUIs with marine operation views. depends = borndate = 041104 doc_url = Pending license = GPL group = MOOS-IvP, Libraries distro = moos-ivp.org synopsis = The lib_marineview library implements GUI and OpenGL superclassses used in applications involved in rendering marine operation views, e.g., pMarineViewer and alogview. This library also contains classes defining the various vehicle shapes used in these viewers. //==================================================================== module = lib_mbutil type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library of kitchen-sink utilities used by many applications. depends = borndate = 970101 doc_url = Pending license = GPL group = Libraries, General Utility distro = moos-ivp.org synopsis = The lib_mbutil library contains many basic utility classes and C++ functions used in virtually all applications. This include many string manipulation utilities, classes supporting definitions of supported colors in many apps, utilities for reading from files into a vector of strings and many more. //==================================================================== module = lib_obstacles type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library of classes and utilities for representing and generating obstacles depends = borndate = 200529 doc_url = Pending license = GPL group = Libraries, General Utility distro = moos-ivp.org synopsis = The lib_obstacles library contains classes for both representing obstacles and tools for generating random obstacles constrained by location and inter-obstacle spacing. Obstacle generation is done in the gen_obstacles command line utility and in uFldObstacleSim if enabled. //==================================================================== module = lib_realm type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library of classes and utilities for supporting RealmCasting depends = borndate = 970101 doc_url = Pending license = GPL group = Libraries, General Utility distro = moos-ivp.org synopsis = The lib_realm library contains utility classes to support realmcasting. Realmcast objects are needed in both pRealm where information is generated, and in realcasting clients such as pMarineViewer and uMACView. //==================================================================== module = lib_ucommand type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library for supporting CommandFolios - mission control pre-defined sets of commands. depends = borndate = 160701 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, Mission Control distro = moos-ivp.org synopsis = The lib_ucommand library contains class definitions for CommandFolios which are pre-defined sets of mission-control commands, and corresponding postings to the MOOSDB. It also contains the superclass GUI for rendering CommandFolio button panels, used by the pMarineViewer application and the uCommand GUI utility. //==================================================================== module = lib_ufield type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library for holding a few classes shared across apps in the uField Toolbox depends = borndate = 110107 doc_url = Pending license = GPL group = MOOS-IvP, Libraries, uField Toolbox distro = moos-ivp.org synopsis = The lib_ufield library contains classes shared across apps in the uField Toolbox, such as the NODE_MESSAGE class used in uFldNodeBroker and uFldMessageHandler. //==================================================================== module = lib_zaicview type = Library author = Michael Benjamin contact = mikerb@mit.edu, issues@mit.edu org = MIT thumb = A library with common superclasses used by all the zaic utilities depends = borndate = 150602 doc_url = http://oceanai.mit.edu/ivpman/zaic license = GPL group = MOOS-IvP, Libraries distro = moos-ivp.org synopsis = The lib_zaicview library provides common GUI and OpenGL functionality by way of a few superclasses used by all the zaic viewer utilities. The zaic utilities are simple viewers used during the development of the ZAIC utilities in IvPBuild Toolbox. They are also included in the MOOS-IvP distribution to allow users to gain familiarity with these tools. //==================================================================== module = manifest_test type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A command line utility for correctness testing of manifest files. depends = lib_mbutil, lib_apputil, lib_manifest borndate = 180109 doc_url = http://oceanai.mit.edu/moos-ivp/manifest-howto license = GPL group = MOOS-IvP, General Utility distro = moos-ivp.org synopsis = The manifest test utility is a convenience utility for manifest authors. It will check for syntax and semantic correctness of manifest files. Ideally this utility is used by all manifest authors prior to sharing their content. This utility is included in the MOOS-IvP codebase in releases after 17.7, and in the development trunk as of this writing. //==================================================================== module = manifest_wiki type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A command line utility for generating web content from manifest files. depends = lib_mbutil, lib_apputil, lib_manifest borndate = 180109 doc_url = http://oceanai.mit.edu/moos-ivp/manifest-howto license = GPL group = MOOS-IvP, General Utility distro = moos-ivp.org synopsis = The manifest wiki utility is used for auto-generation of web pages. While this is also part of the MOOS-IvP distribution, it primarily does its thing on the web server hosting MOOS-IvP to generate web content as manifest files change. The typical user or author of manifest content will never need to run this. But the end goal is to generate valid manifest file content as input to manifest_wiki to produce rich manifest web content. All of the manifest web pages on the moos-ivp.org website were produced by manifest wiki. //==================================================================== module = pAntler type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = A utility for launching a batch of MOOS processes depends = lib_MOOS borndate = 000101 doc_url = http://oceanai.mit.edu/ivpman/apps/pAntler license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = The pAntler tool is used to launch multiple MOOS processes. This is a useful tool for starting up a set of MOOS processes, all of which share a single configuration file but which can be distributed over multiple machines and operating systems. //==================================================================== module = pBasicContactMgr type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Manages known contacts and generates alerts consumed by the helm depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 100224 doc_url = http://oceanai.mit.edu/ivpman/apps/pBasicContactMgr license = GPL group = MOOS-IvP, Core Autonomy distro = moos-ivp.org mod_date = 170926, added alert region support synopsis = The pBasicContactMgr application deals with information about other known vehicles in its vicinity. It is not a sensor application, but rather handles incoming "contact reports" which may represent information received by the vehicle over a communications link, or may be the result of on-board sensor processing. By default the pBasicContactMgr posts to the MOOSDB summary reports about known contacts, The contact manager may also may be configured to post alerts, i.e., MOOS variables, with select content about one or more of the contacts. An alert is typically used by the helm to spawn a behavior for a new contact, for collision avoidance for example. //==================================================================== module = pContactMgrV20 type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Manages known contacts and generates alerts consumed by the helm depends = lib_mbutil, lib_bhvutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 200708 doc_url = http://oceanai.mit.edu/ivpman/apps/pContactMgrV20 license = GPL group = MOOS-IvP, Core Autonomy distro = moos-ivp.org synopsis = The pContactMgrV20 application is newer version to replace pBasicContactMgr. It is designed to be backward compatible with pBasicContactMgr but for ease in adoption, the user continues to have the option of using the earlier version. Like pBasicContactMgr, it deals with information about other known vehicles in its vicinity. It is not a sensor application, but rather handles incoming "contact reports" which may represent information received by the vehicle over a communications link, or may be the result of on-board sensor processing. The contact manager may also may be configured to post alerts, i.e., MOOS variables, with select content about one or more of the contacts. An alert is typically used by the helm to spawn a behavior for a new contact, for collision avoidance for example. This new contact manager has better suport for memory management, guarding against unbounded growth of contacts, using a policy for dropping contacts based on contact age, range, and total number of contacts. It also has imroved support for exclusion filters, allowing the user to control which types of contacts are ignored. This can be configured in both the contact manager and within behaviors using the contact manager. The exclusion filter can also be based on the operation region. The new contact manager also supports some swarm autonomy algorithms by posting configurable information about the set of teammates in range, and/or the closest teammate. //==================================================================== module = pDeadManPost type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Enable configured postings to be staged in the absence of other events depends = lib_mbutil, lib_apputil, lib_MOOS borndate = 100224 doc_url = http://oceanai.mit.edu/ivpman/apps/pDeadManPost license = GPL group = MOOS-IvP, Core Autonomy distro = moos-ivp.org mod_date = 170926, added alert region support synopsis = The pDeadManPost application allows the user to arrange configured posts to the MOOSDB in the absence of another event. The following are a few of the motivating scenarios: (1) On a shoreside community, a dead-man post can be made to trigger an alert when a deployed vehicle is out of contact after some period of time. The alert could be a posting to trigger an alarm .wav file or a spoken alert message through iSay. (2) On a surface vehicle, a dead-man post can be made to put the vehicle in a station-keeping mode if comms to the shoreside command and control goes silent for some period of time. (3) On an underwater vehicle, a dead-man post can be made to put the vehicle in a return-to-home mode if it loses updates from navigation beacons for some period of time. //==================================================================== module = pEchoVar type = MOOS App author = Michael Benjamin org = MIT contact = mikerb@mit.edu thumb = Re-post configured MOOS variables under a different name(s) depends = lib_mbutil, lib_apputil, lib_logic, lib_geometry, lib_MOOS borndate = 060722 doc_url = http://oceanai.mit.edu/ivpman/apps/pEchoVar license = GPL group = MOOS-IvP, General Utility distro = moos-ivp.org synopsis = The pEchoVar application is a lightweight process that runs without any user interaction for "echoing" the posting of specified variable-value pairs with a follow-on posting having different variable name. For example the posting of FOO=5.5 could be echoed such that BAR=5.5 immediately follows the first posting. The motivation for this tool was to convert, for example, a posting such as GPS_X to become NAV_X. The former is the output of a particular device, and the latter is a de facto standard for representing the vehicle's longitudinal position in local coordinates. //==================================================================== module = pHelmIvP type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A behavior-based helm with multi-objective optimization based (IvP) action selection. depends = lib_helmivp, lib_contacts, lib_behaviors-marine, lib_behaviors-colregs, lib_behaviors, lib_bhvutil, lib_ivpbuild, lib_ivpcore, lib_ivpsolve, lib_geometry, lib_apputil, lib_mbutil, lib_logic, lib_genutil, lib_MOOS group = MOOS-IvP, Core Autonomy borndate = 020101 doc_url = http://oceanai.mit.edu/ivpman/apps/pHelmIvP license = GPL distro = moos-ivp.org synopsis = pHelmIvP is a behavior-based autonomous decision-making MOOS application. It consists of a set of behaviors reasoning over a common decision space such as the vehicle heading and speed. Behaviors are reconciled using multi-objective optimization with the Interval Programming (IvP) model. //==================================================================== module = pHostInfo type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Auto-detect the machine's IP address and MOOSDB port number depends = lib_mbutil, lib_ufield, lib_apputil, lib_MOOS borndate = 111214 doc_url = http://oceanai.mit.edu/ivpman/apps/pHostInfo license = GPL group = MOOS-IvP, General Utility distro = moos-ivp.org synopsis = Automatically detect the vehicle's host information including the IP addresses, port being used by the MOOSDB, the port being used by local pShare for UDP listening, and the community name for the local MOOSDB. Post these to facilitate automatic group = General Utility, uField Toolbox intervehicle communications in especially in multi-vehicle scenarios where the local IP address changes w/ DHCP. //==================================================================== module = pLogger type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = A utility for logging the variables histories from the MOOSDB depends = libMOOS borndate = 000101 doc_url = http://oceanai.mit.edu/ivpman/apps/pLogger license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = The pLogger process is intended to record the activities of a MOOS session. It can be configured to record a fraction of or every publication of any number of MOOS variables. It is an essential MOOS tool and is worth its weight in gold in terms of post-mission analysis, data gathering and post-mission replay. There are many tools for manipulating and rendering pLogger generated log files: aloggrep, alogrm, alogview, alogscan, alogclip, and uPlayBack. //==================================================================== module = pMarinePID type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Simple PID controller for heading, speed and depth depends = lib_mbutil, lib_geometry, lib_MOOS borndate = 060410 doc_url = Pending license = GPL group = MOOS-IvP, Core Autonomy, Simulation distro = moos-ivp.org synopsis = The pMarinePID MOOS app is a basic PID controller interface to control heading speed and depth based on incoming desired heading, speed and depth objectives and output on rudder, thrust and elevator fed through three PID controllers. //==================================================================== module = pMarineViewer type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Mission control GUI for monitoring, deploying and commanding vehicles depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_ucommand, lib_marineview, lib_genutil, lib_MOOS borndate = 041101 doc_url = http://oceanai.mit.edu/ivpman/apps/pMarineViewer license = GPL group = MOOS-IvP, Mission Control, Simulation distro = moos-ivp.org synopsis = pMarineViewer is a GUI based MOOS App for rendering events in an area of vehicle operation. It repeatedly updates vehicle positions from incoming node reports, and will render several geometric types published from other MOOS apps. The viewer may also post messages to the MOOSDB based on user-configured keyboard or mouse events. //==================================================================== module = pNodeReporter type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Gather vehicle navigation info into single published node report depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 060213 doc_url = http://oceanai.mit.edu/ivpman/apps/pNodeReporter license = GPL group = MOOS-IvP, Core Autonomy distro = moos-ivp.org synopsis = A tool for collecting node information such as present vehicle position, trajectory and type, and posting it in a single report for sharing between vehicles or sending to a shoreside display. //==================================================================== module = pObstacleMgr type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Manages known contacts and generates alerts consumed by the helm depends = lib_mbutil, lib_apputil, lib_geometry, lib_MOOS borndate = 170917 doc_url = http://oceanai.mit.edu/ivpman/apps/pObstacleMgr license = GPL group = MOOS-IvP, Core Autonomy distro = moos-ivp.org synopsis = The pObstacleMgr manages incoming sensor dataabout obstacles and posts alerts suitable for spawning obstacle avoidance behaviors. //==================================================================== module = pRealm type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Shadow the local MOOSDB and support RealmCasting requests depends = lib_realm, lib_mbutil, lib_apputil, lib_geometry, lib_MOOS borndate = 201202 doc_url = http://oceanai.mit.edu/ivpman/apps/pRealm license = GPL group = MOOS-IvP, General Utility, Mission Control distro = moos-ivp.org synopsis = The pRealm application is used for shadowing the local MOOSDB and generating on-demand RealmCast reports. These reports are requested and consumed by pMarineViewer or similar app configured to interact with pRealm. Typically pRealm is run on both the shoreside and vehicle communities. //==================================================================== module = pShare type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = A tool for bridging between MOOS communities. depends = libMOOS borndate = 000101 doc_url = http://oceanai.mit.edu/ivpman/apps/pShare license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = pShare is a newer version of pMOOSBridge that supports dynamic registrations and a few other important features used by components of the uField Toolbox. Like pMOOSBridge, pShare is a powerful tool in building MOOS-derived systems. It allows messages to pass between communities and is able to rename the messages as they are shuffled between communities. //==================================================================== module = pickpos type = Command line utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A cmdline utility choosing simulation starting values depends = lib_mbutil, lib_geometry borndate = 180922 doc_url = http://oceanai.mit.edu/ivpman/apps/pickpos license = GPL group = MOOS-IvP, General Utility, Simulation distro = moos-ivp.org synopsis = pick_pos is a utility for generating starting points for simulated vehicles. It can generate points from a set of pts given in a file, or by picking random points from within one or more convex polygons. The starting heading position can also be chosen, in a random range, or relative to a given position. Vehicle names and group names may also be chosen randomly. //==================================================================== module = uFldBeaconRangeSensor type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Simulates range information derived from pinging a buoy depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 110202 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldBeaconRangeSensor license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = Typically run in a shoreside community. Configured with one or more beacons with known beacon locations. Takes range requests from a remote vehicle and returns a range report indicating that vehicle's range to nearby beacons. Range requests may or may not be answered depending on range to beacon. Reports may have noise added and may or may not include beacon ID. //==================================================================== module = uFldCollisionDetect type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Monitors ship traffic collisions and reports near collisions depends = lib_mbutil, lib_apputil, lib_geometry, lib_ufield, lib_logic, lib_encounters, lib_contacts, lib_MOOS borndate = 151221 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldCollisionDetect license = GPL group = MOOS-IvP, Simulation, uField ToolBox, COLREGS Toolbox distro = moos-ivp.org synopsis = The uCollisionDetect application is run by the shoreside and detects if two vehicles have had an ecounter. An encounter is defined as being within the distance specified by the encounter_range parameter. An encounter constituting a near miss or collision will also produce a posting to UCD_REPORT indicating the two vehicle names, the CPA distance, and rank (near miss or collision). Flags may be configured to be posted upon each event type - collision, near-miss or encounter. These flags are simply MOOS variable and value pairs like the flags in many other MOOS applications and helm behaviors. For example, such a flag may be used to trigger an evaluation of the mission efficiency for a window of time around the encounter. //==================================================================== module = uFldCollObDetect type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Monitors ship traffic obstacle collisions and reports near collisions depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 190902 doc_url = http://oceanai.mit.edu/ivpman/apps/to-be-written license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = The uFldCollObDetect app runs on the shoreside and monitors vehicle positions in the context of known obstacle locations. It watches for encounters, near misses and collisions. It will publish user-specified flags on the events of collision, near- miss, and encounters. If the user does not specify flags, then no reports are generated. Each flag type supports a number of macros to allow the user to generate data of their liking. //==================================================================== module = uFldContactRangeSensor type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Simulates range measurements to other moving contacts depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 110202 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldContactRangeSensor license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = Typically run in a shoreside community. Takes reports from remote vehicles, notes their position. Takes a range request from a remote vehicle and returns a range report indicating that vehicle's range to nearby vehicles. Range requests may or may not be answered dependent on inter-vehicle range. Reports may also have noise added to their range values. //==================================================================== module = uFldMessageHandler type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Handles and unwraps incoming messages from other vehicles. depends = lib_mbutil, lib_apputil, lib_ufield, lib_MOOS borndate = 120130 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldMessageHandler license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = The uFldMessageHandler tool is used for handling incoming messages from other nodes. An instance of this app is typically running on each vehicle. The message is a string that contains the source and destination of the message as well as the MOOS variable and value. This app simply posts to the local MOOSDB the variable-value pair contents of the message. //==================================================================== module = uFldShoreBroker type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Facilitates shoreside share connections to vehicle communities depends = lib_mbutil, lib_apputil, lib_ufield, lib_MOOS borndate = 111219 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldShoreBroker license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = Typically run in a shoreside community. Takes reports from remote vehicles describing how they may be reached. Posts registration requests to shoreside pShare to share user-provided list of variables out to vehicles. Upon learning of vehicle JAKE will create bridges FOO_ALL and FOO_JAKE to JAKE, for all such user-configured variables. //==================================================================== module = uFldNodeComms type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Shoreside MOOS App for conditionally sending messages between vehicles. depends = lib_mbutil, lib_apputil, lib_ufield, lib_contacts, lib_geometry, lib_MOOS borndate = 111204 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldNodeComms license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = The uFldNodeComms application is a tool for handling node reports and messages between vehicles. Rather than directly sending node reports and messages between vehicles, uFldNodeComms acts as an intermediary to conditionally pass a report or message on to another vehicle, where conditions may be the inter-vehicle range or other criteria. The assumption is that uFldNodeComms is running on a topside or shoreside computer, and receiving information about the present physical location of deployed vehicles through node reports. In short, uFldNodeComms subscribes for incoming node reports for any number of vehicles, and keeps the latest node report for each vehicle. On each iteration, for a each vehicle, if the node report has been updated, the report is published to a specially created MOOS variable for the other n-1 vehicles. A user-configured criteria is applied before publishing the new information. Typically this criteria involves the range between vehicles, but the criteria may be further involved. Often uFldNodeComms is run purely in simulation, but is is often used in 2.680 with surface vehicles on the water, to simulate the bandwidth and range communication challenges found underwater and in mission with greater disances between vehicles. //==================================================================== module = uFldObstacleSim type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Simulation of obstacle (re)generation and lidar sensing of obstacles depends = lib_obstacles, lib_geometry, lib_contacts, lib_mbutil, lib_apputil, lib_MOOS borndate = 200531 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldObstacleSim license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = The uFldObstacleSim app will simulate the posting of obstacles loaded from a text file, to be shared to all vehicles in the uField environment. The obstacle simulator may also be configured to periodically randomly re-generate the obstacle locations and sizes. The random generation considers an region of containment, minimum inter-obstacle range, min and max size of obstacles. It may also be configured to only regenerated obstacles with no vehicles are within the obstacle region. The simulation generates information in one of two modes, (1) Obstacle polygons are simply published and shared to all vehicles, or (2) simulated sensor data, similar to Lidar points on the obstacle, are published and shared to the vehicles. Downstream apps are then left with the job of inferring the obstacle from the sensor data. //==================================================================== module = uFldScope type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Shoreside MOOS App for monitoring user-chosen fields across vehicles. depends = lib_mbutil, lib_apputil, lib_MOOS borndate = 111204 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldNodeScope license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = The uFldScope application is a tool for collecting diverse sets of information regarding a field of vehicles remotely deployed. Suppose, for example, one is interested in monitoring, for each deployed vehicle, the (a) helm mode, (b) total distance travelled, (c) battery level, and (d) the number of times it has visited a certain beacon. Each piece of information may be embedded in one of a number of MOOS variables, perhaps along with a lot of other information of no concern. While there are several methods to scope on the above variable and pick out the helm mode, the goal of the uFldScope tool is to have this information readily visible for each vehicle perhaps alongside other key fields for all vehicles, in a continuously updated simple table. The assumption is that uFldScope is running on a topside computer, interacting with a user, and receiving information on deployed vehicles primarily through node reports or other summary report variables. //==================================================================== module = uFldNodeBroker type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = Facilitates vehicle share connections to shoreside community depends = lib_mbutil, lib_apputil, lib_ufield, lib_MOOS borndate = 111219 doc_url = http://oceanai.mit.edu/ivpman/apps/uFldNodeBroker license = GPL group = MOOS-IvP, Simulation, uField ToolBox distro = moos-ivp.org synopsis = The uFldNodeBroker app is typically run on a vehicle or simulated vehicle in a multi-vehicle context. Used for making a connection to a shoreside community by sending local information about the vehicle such as the IP address, community name, and port number being used by pShare for incoming UDP messages. Presumably the shoreside community uses this to know where to send outgoing UDP messages to the vehicle. //==================================================================== module = uFunctionVis type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A GUI based MOOS App for monitoring IvP Helm objective functions depends = lib_mbutil, lib_genutil, lib_apputil, lib_ivpbuild, lib_geometry, lib_ivpcore, lib_ipfview, lib_MOOS, lib_fltk, lib_fltk_gl borndate = 060512 doc_url = Pending license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = uFunctionVis is a GUI application for rendering IvP functions. It automatically registers for IvP functions posted by the helm and renders them in 3D typically for heading/speed functions but also for depth objective functions. //==================================================================== module = uHelmScope type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A terminal based MOOS App for monitoring the state of IvP Helm depends = lib_mbutil, lib_genutil, lib_apputil, lib_helmivp, lib_behaviors, lib_ivpbuild, lib_MOOS borndate = 080412 doc_url = http://oceanai.mit.edu/ivpman/apps/uHelmScope license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = The uHelmScope application is a terminal-based (non-GUI) MOOS app, for scoping a running IvP Helm process, and key MOOS variables. uHelmScope provides behavior summaries, activity states, and recent behavior postings to the MOOSDB. //==================================================================== module = uLoadWatch type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A utility for monitoring the load of MOOS Apps depends = lib_mbutil, lib_apputil, lib_MOOS borndate = 131224 doc_url = http://oceanai.mit.edu/ivpman/apps/uLoadWatch license = GPL group = MOOS-IvP, General Utility, Mission Control distro = moos-ivp.org synopsis = The uLoadWatch application is used for monitoring load of apps in the MOOS community. It works by checking for *_ITER_GAP and *_ITER_LEN information posted by each app. An app, pFooBar, posts PFOOBAR_ITER_GAP as the ratio of observed application interval over requested application interval. For an app running at 4Hz, a reported ITER_GAP of 3 means a gap 0.75 seconds was observed between two successive iterations. //==================================================================== module = uMAC type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A terminal based MOOS app for monitoring appcasts depends = lib_mbutil, lib_genutil, lib_geometry, lib_apputil, lib_MOOS, lib_fltk borndate = 120412 doc_url = http://oceanai.mit.edu/ivpman/apps/uMAC license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = The uMAC application is a utility, run in a terminal window, for Monitoring AppCasts. It is launched and run in a terminal window and will parse appcasts generated within its own MOOS community or those from other MOOS communities bridged or shared to the local MOOSDB. The primary advantage of uMAC vs. other appcast monitoring tools is that one may remotely log into a vehicle via ssh and launch uMAC locally in a terminal. //==================================================================== module = uMACView type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A GUI based MOOS app for visually monitoring appcasts depends = lib_mbutil, lib_genutil, lib_geometry, lib_apputil, lib_MOOS, lib_fltk borndate = 120518 doc_url = http://oceanai.mit.edu/ivpman/apps/uMACView license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = uMACView is a GUI tool for visually monitoring appcasts. It will parse appcasts generated within its own MOOS community or those from other MOOS communities bridged or shared to the local MOOSDB. Its capability is nearly identical to the appcast viewing capability built into pMarineViewer. It was intended to be an appcast viewer for non pMarineViewer users. //==================================================================== module = uMS type = MOOS App author = Paul Newman contact = pnewman@robots.ox.ac.uk org = Oxford thumb = A graphical scope for monitoring the contents of a running MOOSDB depends = libMOOS borndate = 000101 doc_url = http://oceanai.mit.edu/ivpman/apps/uMS license = GPL group = MOOS-IvP, Oxford MOOS distro = moos-ivp.org, themoos.org synopsis = The uMS application allows a user to place a stethoscope on the MOOS network and watch what variables are being written, which processes are writing them, and how often this is happening. After starting up the scope and specifying the host name and port number of the MOOSDB the user is presented with a list of all MOOS variables in the server and their current state. Several times a second uMS calls into the DB and uses a special/unusual (and intentionally undocumented) message that requests that the server inform the client about all variables currently stored along with their update statistics. uMS is a central tool in the MOOS suite. It is cross-platform and should be used to spy on and present visual feedback on any MOOS community. //==================================================================== module = uMemWatch type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A MOOS app for monitoring the memory usage of other apps depends = lib_mbutil, lib_apputil, lib_MOOS borndate = 190504 doc_url = http://oceanai.mit.edu/ivpman/apps/uMemWatch license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = The uMemWatch application is used for measuring the current memory used by a set of MOOS apps. To measure an app, the app must publish the MYAPP_PID variable with its own PID. This app will use that PID and the command line utility "ps" to measure the current memory usage. This app can be configured to selectively watch items on a watch list, or watch all apps but selectively ignore apps on an ignore list. The primary output is through both AppCasting, and the publication to MYAPP_MEM each time a new measurement is made. //==================================================================== module = uPlotViewer type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A GUI based MOOS app for plotting a frequency bar graph depends = lib_mbutil, lib_genutil, lib_MOOS, lib_fltk, lib_fltk_gl borndate = 120518 doc_url = Pending license = GPL group = MOOS-IvP, Mission Monitoring distro = moos-ivp.org synopsis = uPlotViewer is a GUI tool for rendering a frequency bar graph for a configurable set of variables. //==================================================================== module = uPokeDB type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A command line app for poking the MOOSDB depends = lib_mbutil, lib_MOOS borndate = 080509 doc_url = http://oceanai.mit.edu/ivpman/apps/uPokeDB license = GPL group = MOOS-IvP, General Utility, Simulation distro = moos-ivp.org synopsis = The uPokeDB application is a command-line tool for poking a MOOSDB with variable-value pairs provided on the command line. It finds the MOOSDB via mission file provided on the command line, or the IP address and port number given on the command line. It will connect to the DB, show the value prior to poking, poke the DB, and wait an iteration for mail from the DB to confirm the result of the poke. //==================================================================== module = uProcessWatch type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A MOOS app for monitoring the presence of other MOOS apps depends = lib_mbutil, lib_apputil, lib_MOOS borndate = 070527 doc_url = http://oceanai.mit.edu/ivpman/apps/uProcessWatch license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = The uProcessWatch application monitors the presence of MOOS apps on a watch-list. If one or more are noted to be absent, it will be so noted on the MOOS variable PROC_WATCH_SUMMARY. uProcessWatch is appcast enabled and will produce a succinct table summary of watched processes and the CPU load reported by the processes themselves. The items on the watch list may be named explicitly in the config file or inferred from the Antler block or from list of DB_CLIENTS. An application may be excluded from the watch list if desired. //==================================================================== module = uQueryDB type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A command line app, connect to MOOSDB, check condition, then exit depends = lib_mbutil, lib_logic, lib_MOOS borndate = 151229 doc_url = http://oceanai.mit.edu/ivpman/apps/uQueryDB license = GPL group = MOOS-IvP, Simulation, Mission Control, Mission Monitoring distro = moos-ivp.org synopsis = uQueryDB is a command line tool for querying a MOOSDB with a logic condition provided on the command line. It finds the MOOSDB via mission file provided on the command line, or the IP address and port number given on the command line. It will connect to the DB, register for the variables involved in the logic condition and determine if the condition holds. It will then exit with 0 if it holds or 1 otherwise. It will return its value as soon as the app has received mail for all variables involved in the logic condition. Otherwise it will wait for 10 seconds. This can be changed with the --wait=N parameter. If a variable in the logic condition is unknown to the MOOSDB, then the whole condition will fail after the wait period. //==================================================================== module = uSimMarine type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A simple marine vehicle simulator depends = lib_mbutil, lib_apputil, lib_geometry, lib_contacts, lib_MOOS borndate = 041025 doc_url = http://oceanai.mit.edu/ivpman/apps/uSimMarine license = GPL group = MOOS-IvP, Simulation distro = moos-ivp.org synopsis = The uSimMarine application is a simple 3D vehicle simulator that updates vehicle state, position and trajectory, based on the present actuator values and prior vehicle state. The typical usage scenario has a single instance of uSimMarine associated with each simulated vehicle. //==================================================================== module = uTermCommand type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A terminal MOOS app for poking the MOOSDB with pre-configured pokes depends = lib_mbutil, lib_genutil, lib_MOOS borndate = 070626 doc_url = http://oceanai.mit.edu/ivpman/apps/uTermCommand license = GPL group = MOOS-IvP, Mission Control distro = moos-ivp.org synopsis = The uTermCommand application is a terminal based tool for poking the MOOS database with pre-defined variable-value pairs. A unique key may be associated with each poke. The user initiates a poke to the MOOSDB by typing in the key. //==================================================================== module = uTimerScript type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = An app for generating scripted pokes to the MOOSDB depends = lib_mbutil, lib_apputil, lib_geometry, lib_logic, lib_MOOS borndate = 090521 doc_url = http://oceanai.mit.edu/ivpman/apps/uTimerScript license = GPL group = MOOS-IvP, Simulation, Core Autonomy distro = moos-ivp.org synopsis = The uTimerScript application allows the user to script a set of pre-configured posts to a MOOSDB. In its most basic form, it may be used to initialize a set of variables to the MOOSDB, and immediately terminate itself if a quit event is included. Additionally, uTimerScript may be used with the following advanced functions: (1) Each entry in the script may be scheduled to occur after a specified amount of elapsed time. (2) Event timestamps may be given as an exact point in time relative to the start of the script, or a range in times with the exact time determined randomly at run-time. (3) The execution of the script may be paused, or fast-forwarded a given amount of time, or forwarded to the next event on the script by writing to a MOOS variable. (4) The script may be conditionally paused based on user defined logic conditions over one or more MOOS variables. (5) The variable value of an event may also contain information generated randomly. (6) The script may be reset or repeated any given number of times. (7) The script may use its own time warp, which can be made to vary randomly between script executions. In short, uTimerScript may be used to effectively simulate the output of other MOOS applications when those applications are not available. //==================================================================== module = uXMS type = MOOS App author = Michael Benjamin contact = mikerb@mit.edu, issues@moos-ivp.org org = MIT thumb = A command line app for scoping the MOOSDB depends = lib_mbutil, lib_genutil, lib_apputil, lib_MOOS borndate = 070527 doc_url = http://oceanai.mit.edu/ivpman/apps/uXMS license = GPL group = MOOS-IvP, General Utility, Mission Control distro = moos-ivp.org synopsis = uXMS is a terminal-based (non GUI) tool for scoping a MOOSDB. Users may precisely configure the set of variables they wish to scope on by naming them explicitly on the command line or in the MOOS configuration block. The variable set may also be configured by naming one or more MOOS proceses on which all variables published by those processes will be scoped. Users may also scope on the history of a single variable. //==================================================================== module = zaic_hdg type = GUI utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A GUI utility for exploring the ZAIC_HDG IvPBuild tool depends = lib_mbutil, lib_ivpbuild, lib_zaicview borndate = 150602 doc_url = http://oceanai.mit.edu/ivpman/zaic license = GPL group = MOOS-IvP, General Utility, IvPBuild Toolbox distro = moos-ivp.org synopsis = The zaic_hdg utility launches a simple GUI rendering a utility function, piecewise defined, over one discrete variable. The pieces are formed by a few parameters provided to an instance of the ZAIC_HDG utility in the IvPBuild Toolbox. The GUI user has the ability to change the ZAIC_HDG parameters via the keyboard and watch the effects of these changes as the rendering of the utility function is updated. //==================================================================== module = zaic_hleq type = GUI utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A GUI utility for exploring the ZAIC_LEQ and ZAIC_HEQ IvPBuild tools depends = lib_mbutil, lib_ivpbuild, lib_zaicview borndate = 050620 doc_url = http://oceanai.mit.edu/ivpman/zaic license = GPL group = MOOS-IvP, General Utility, IvPBuild Toolbox distro = moos-ivp.org synopsis = The zaic_hleq utility launches a simple GUI rendering a utility function, piecewise defined, over one discrete variable. The pieces are formed by a few parameters provided to an instance of either the ZAIC_LEQ or ZAIC_HEQ utility in the IvPBuild Toolbox. The GUI user has the ability to change the ZAIC parameters via the keyboard and watch the effects of these changes as the rendering of the utility function is updated. //==================================================================== module = zaic_peak type = GUI utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A GUI utility for exploring the ZAIC_PEAK IvPBuild tool depends = lib_mbutil, lib_ivpbuild, lib_zaicview borndate = 050620 doc_url = http://oceanai.mit.edu/ivpman/zaic license = GPL group = MOOS-IvP, General Utility, IvPBuild Toolbox distro = moos-ivp.org synopsis = The zaic_peak utility launches a simple GUI rendering a utility function, piecewise defined, over one discrete variable. The pieces are formed by a few parameters provided to an instance of the ZAIC_PEAK utility in the IvPBuild Toolbox. The GUI user has the ability to change the ZAIC_PEAK parameters via the keyboard and watch the effects of these changes as the rendering of the utility function is updated. //==================================================================== module = zaic_spd type = GUI utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A GUI utility for exploring and rendering the ZAIC_SPD build tool depends = lib_mbutil, lib_ivpbuild, lib_zaicview borndate = 150602 doc_url = http://oceanai.mit.edu/ivpman/zaic license = GPL group = MOOS-IvP, General Utility, IvPBuild Toolbox distro = moos-ivp.org synopsis = The zaic_spd utility launches a simple GUI rendering a utility function, piecewise defined, over one discrete variable. The pieces are formed by a few parameters provided to an instance of the ZAIC_SPD utility in the IvPBuild Toolbox. The GUI user has the ability to change the ZAIC_SPD parameters via the keyboard and watch the effects of these changes as the rendering of the utility function is updated. //==================================================================== module = zaic_vect type = GUI utility author = Michael Benjamin contact = mikerb@mit.edu org = MIT thumb = A GUI utility for exploring the ZAIC_VECT IvPBuild tool depends = lib_mbutil, lib_ivpbuild, lib_zaicview borndate = 100505 doc_url = http://oceanai.mit.edu/ivpman/zaic license = GPL group = MOOS-IvP, General Utility, IvPBuild Toolbox distro = moos-ivp.org synopsis = The zaic_vect utility launches a simple GUI rendering a utility function, piecewise defined, over one discrete variable. The pieces are formed by a few parameters provided to an instance of the ZAIC_VECT utility in the IvPBuild Toolbox. The GUI user has the ability to change the ZAIC_VECT parameters via the keyboard and watch the effects of these changes as the rendering of the utility function is updated.