This document describes the communications protocol associated with the LSTS software framework. Concepts such as *message*, *field* and *packet* are explained in detail in the subsequent chapters. Inter module communication is achieved by the exchange of messages that can be recognized and interpreted by all participating modules. A message is a self-contained collection of data fields conveying relevant information about a given subject. The mean by which the messages are exchanged is not described in this document, but the reader can assume that at least the UDP Internet protocol is available at all ends of the communications channel. The Neptus Command and Control Unit (CCU), currently being used at LSTS, supports mission planning and control, using the described messaging API. This software entity can be used to define a plan before execution and monitor the plan's execution by presenting an operating console. For further details on this software contact the LSTS. A CCU exercises authority over a vehicle (real or simulated). Usually this term is applied to software in the class of LSTS Neptus, but can also be applied to software modules extending the vehicle core control software. The LSTS reserves itself the right to use message identification numbers up to 999. Thus if a third party needs to extend this API it must use identification numbers starting at 1000. The identification number 65535 has a special meaning and must not be used to extend the IMC protocol. Messages and packets can be viewed as a finite collection of fields. The list of valid field types is presented below. 8 bit signed integer. 8 bit unsigned integer. 16 bit signed integer. 16 bit unsigned integer. 32 bit signed integer. 32 bit unsigned integer. A 64 bit signed integer 32 bit single precision floating point number in IEEE 754 format. 64 bit double precision floating point number in IEEE 754 format. Variable length byte stream. Variable length ASCII character stream. An inline message. Useful for encapsulating other messages. A list of messages. To ensure accurate transportation some field types may require special treatment on transmission and reception. The operation of preparing a field type for transmission is called serialization, the inverse action is called deserialization. No special serialization is required for types that are not described in the table below, their values should be used as is. A sequence of type *rawdata* is serialized by prepending a value of type *uint16_t*, representing the length of the sequence, to the stream of bytes. On deserialization the prepended value is used to retrieve the correct size of data bytes. The *rawdata* type length is limited only by the communication protocol in use. A sequence of type *plaintext* is serialized by prepending a value of type *uint16_t*, representing the length of the sequence, to the stream of ASCII characters. On deserialization the prepended value is used to retrieve the correct ASCII character sequence size. The *plaintext* type length is limited only by the communication protocol in use. A field of type *message* is serialized by prepending a value of type *uint16_t*, representing the identification number of the message, to the serialized message payload. The special identification number 65535 must be used when no message is present. On deserialization the prepended value is used to retrieve the correct message identification number. The *message* type length is limited only by the communication protocol in use. A field of type *message-list* is serialized by prepending a value of type *uint16_t*, representing the number of messages in the list, to the serialized message payload. On deserialization the prepended value is used to retrieve the correct number of messages The following table lists the units used in the subsequent chapters. This unit is a list of label/value tuples and is only valid in plaintext fields. The label and value portions of a tuple are separated using the equal sign (=) and tuples are separated using the semicolon character (;). These delimiting characters must not be used elsewhere. Leading and trailing semicolons must be removed. Examples: "label1=12;label2=3" or "label1=12" or "label1=test_2".
The packet header contains handling information in the form of supplemental fields, it is always placed at the beginning of a packet. The synchronization number marks the beginning of a packet. It denotes the packet API version and can be used to deduce the byte order of the sending host. It encodes value 0xFE[major][minor] where [major] equals the major version number of the protocol and [minor] equals the minor version of the protocol. The packet recipient is responsible for the correct interpretation of the synchronization number and byte order conversions. The identification number of the message contained in the packet. This field is used for correct message interpretation and deserialization. The size of the message data in the packet. The time when the packet was sent, as seen by the packet dispatcher. The number of seconds is represented in Universal Coordinated Time (UCT) in seconds since Jan 1, 1970 using IEEE double precision floating point numbers. The Source IMC system ID. The entity generating this message at the source address. The Destination IMC system ID. The entity that should process this message at the destination address.
State reported by an entity in the vehicle. The source entity is identified in the message header. State of entity. Complementary entity state flags. Complementary human-readable description of entity state. Request entities to report their state. Entities should respond by issuing an appropriate EntityState message. This message describes an entity. Entity identifier. Entity label or empty if the entity id is not valid. Name of the plugin/component/subsystem associated with this entity. Amount of time needed to properly activate the entity. Amount of time needed to properly deactivate the entity. Request information about an entity identifier. The receiving system shall reply with an EntityInfo message with the details of that entity. Entity identifier. This message describes the names and identification numbers of all entities in the system. Operation to perform. Report the entity list. Request the entity list. Reload the entity list. Example: "Battery=11;CTD=3" Report of software CPU usage. The CPU usage, in percentage, of the sending software. Message generated when tasks bind to messages. The name of the consumer (e.g. task name). The id of the message to be listened to. Request the destination system to restart itself. Request a DUNE restart Request a system restart. Request a DUNE Task restart. This message controls the calibration procedure of a given device. The destination device is selected using the destination entity identification number. Operation to perform. Start calibration procedure. Stop calibration procedure. Perform next step of the calibration procedure. Perform previous step of the calibration procedure. State of the calibration procedure. Total number of steps of the calibration procedure. Number of the current step being performed. Human-readable description of the current step. Additional flags. Jumping to the previous calibration step is not supported. Jumping to the next calibration step is not supported. The calibration procedure was suspended and must be resumed or cancelled with a DeviceCalibrationControl message. Calibration was interrupted due to an error and must be restarted or cancelled with a DeviceCalibrationControl message. The calibration procedure was completed. State of entity activation/deactivation. Current state. Entity is inactive. Entity is active. Activation is in progress. Activation is completed. The activation procedure failed and the field 'error' contains the error message. Deactivation is in progress. Deactivation is in progress. The deactivation procedure failed and the field 'error' contains the error message. Human-readable error message. Query the activation/deactivation state of an entity. The recipient shall reply with an EntityActivationState message. Vehicle opertional limits. For aircraft this should represent the flight envelope and the dynamic contraints. Action on the vehicle operation limits Minimum operation speed. For aircraft this is equal or larger then the stall speed. Maximum operation speed. For aircraft this is limited by the engine power or structural contrains. Maximum longitudinal acceleration. Maximum altitude above mean-sea-level. Maximum dive rate (negative vertical speed) as a fraction of the longitudinal speed. Maximum climb rate (positive vertical speed) as a fraction of the longitudinal speed. Limit to the bank angle (roll; angle over the xx body-axis). Limit to the bank angular rate (roll; angle over the xx body-axis). Minimum pitch angle (angle over the xx body-axis). Maximum pitch angle (angle over the xx body-axis). Maximum pitch angular rate (angle over the xx body-axis). Minimum load factor, i.e., maximum positive acceleration in the zz body-axis as a factor of the gravity acceleration at mean-sea-level. Maximum load factor, i.e., maximum negative acceleration in the zz body-axis as a factor of the gravity acceleration at mean-sea-level. Maximum lateral load factor, i.e., maximum acceleration in the yy body-axis as a factor of the gravity acceleration at mean-sea-level. Minimum motor RPMs. Maximum motor RPMs. Maximum motor RPMs' rate of change. Report of software RAM usage. The RAM usage, in KiB, of the sending software. This message presents the simulated state of the vehicle. The simulated state attempts to provide a realistic state interpretation of operating various kinds of vehicles. WGS-84 Latitude. WGS-84 Longitude. Height above the WGS-84 ellipsoid. The North offset of the North/East/Down field. The East offset of the North/East/Down field. The Down offset of the North/East/Down field. The phi Euler angle from the vehicle's attitude. The theta Euler angle from the vehicle's attitude. The psi Euler angle from the vehicle's attitude. Body-fixed frame xx axis linear velocity component. Body-fixed frame yy axis linear velocity component. Body-fixed frame zz axis linear velocity component. The angular velocity over body-fixed xx axis (roll rate). The angular velocity over body-fixed yy axis (pitch rate). The angular velocity over body-fixed zz axis (yaw rate). Stream Velocity xx axis velocity component. Stream Velocity yy axis velocity component. Stream Velocity zz axis velocity component. Simulate leak behavior. Indicates whether leaks have been detected or not. Comma separated list of leak entities (empty for all leaks configured). Underwater acoustics simulation request. Type of request. Transmission speed. Data for transmission requests. Vehicle dynamics parameters for 3DOF, 4DOF or 5DOF simulations. Action on the vehicle simulation parameters for the formation control Proportional gain from the TAS (True Airspeed) error to the longitudinal acceleration. Proportional gain from the bank angle error to the bank angular rate. Report of storage usage. The available storage of the reporting device. The percentage of storage used by the reporting device. Control caching of messages to persistent storage. Operation to perform. Destination for the cache snapshot file. Message to store. Control logging of messages to persistent storage. Operation to perform. Request the logging manager to start logging. The logging manager will reply with a STARTED operation. If logging is already in progress the current log will be closed and a new one will be opened (therefore the logging manager will send two messages - STOPPED and STARTED). The field 'name' represents the label that will be appended to the log path. The logging manager will send a message with this operation everytime a log is successfully started. The field 'name' contains the complete name of the log. Request the logging manager to stop logging messages. The logging manager will reply with a STOPPED operation and logging will be suspended until a message with operation START is received. If logging is already stoppped the logging manager will ignore this operation and will not reply with a STOPPED operation. The field 'name' with this operation type has no meaning. The logging manager will send a message with this operation when logging is successfully stopped. The field 'name' contains the complete name of the log that was closed. This operation instructs the logging manager to send a message with operation CURRENT_NAME containing the complete name of the current log in the field 'name'. The field 'name' with this operation type has no meaning. The logging manager will send a message with this operation when asked via the REQUEST_CURRENT_NAME operation. The field 'name' contains the complete name of the log. The meaning of this field depends on the operation and is explained in the operation's description. Human readable message reporting an event of interest. Type of message. Timestamp (Epoch time). Message context. Message text. Control history log. Command to perform. Retrieve log book entries. Clear log book entries. Retrieve log book entries corresponding to errors. Reply to a GET command. Message argument is a MessageList instance containing LogBookEntry messages. Timestamp for command (Epoch time). Argument, currently used only for 'REPLY'. Control replay of LSF logged data. Operation to perform. Pathname of file to replay. Clock control. Operation to perform. Synchronize clock according to given clock value. Request autonomous clock synchronization. Synchronization start notification. Synchronization completion notification. Set timezone. Notification due to timezone modification. Clock value (Epoch time). Timezone. This message is used to store historic (transmitted afterwards) CTD data . This message is used to store historic (transmitted afterwards) telemetry information. Roll encoded as α.(65535/(2.π)) Pitch encoded as α.(65535/(2.π)) Yaw encoded as α.(65535/(2.π)) This message is used to store historic (transmitted afterwards) sonar data. The number of pixels per line as the data in 'sonar_data' may correspond to more than one sequential sidescan lines. Sonar data encoded as in 'encoding'. This message is used to store historic event log entries. Type of event. This message is used to store historic profiles for water parameters: Temperature, Salinity, Chlorophyll... Water parameter used to calculate the vertical profile. In this case, the Depth value of the ProfileSample message indicates wind direction, in degrees. In this case, the Depth value of the ProfileSample message indicates wind direction, in degrees. Latitude where the profile was calculated. Longitude where the profile was calculated. Samples to calculate a vertical profile. The Heartbeat message is used to inform other modules that the sending entity's system is running normally and communications are alive. A system description that is to be broadcasted to other systems. System name. System type. The owner IMC system ID. WGS-84 Latitude. If lat=0 and lon=0 means location value is unknown. WGS-84 Longitude. If lat=0 and lon=0 means location value is unknown. Height above WGS-84 ellipsoid. Semicolon separated list of URLs. Examples of such URLs are: - *imc+udp://192.168.106.34:6002/* - *dune://0.0.0.0/uid/1294925553839635/* - *http://192.168.106.34/dune/*. Announcement about the existence of a service. Semicolon separated list of URLs (see :ref:`Announce`). Informs about the availability of the service on internal and external networks. Measure of the RSSI by a networking device. Indicates the gain or loss in the signal strength due to the transmission and reception equipment and the transmission medium and distance. RSSI measurement. Measure of the VSWR by a networking device. VSWR measurement. Measurement of link level quality. For instance, this may correspond to the acknowledgment ratio of a link. But, generally, the measure is link-dependent. Link level value. Send a SMS message. Target mobile device number. Timeout for sending message. Message contents. Request to send SMS. Sequence number. Number or name of the recipient. Timeout for sending message. Message data. Received SMS data. Number of name of the sender. Message data. Sequence number. Current state of an SMS transaction. A text message has been received. Message origin (if known). Message contents. The unique identifier of this message's origin device (e.g. lauv-xtreme-2, manta-0). Timestamp (Epoch time). Message data. The request identifier used to receive transmission updates. Time, in seconds, after which there will be no more atempts to transmit the message. The unique identifier of this message's destination (e.g. lauv-xtreme-2, manta-0). Message data. The request identifier used to receive transmission updates Group communication link assertion. Name of the group of systems. Communication link assertion for each group member. One bit to assert each system communication link state. Group of systems configuration. Name of the group of systems. Actions on the group list. List of names of system in the group, separated by commas. Communications latency between two systems. Time taken between the communications package/message is sent from the source until it arrives to the destination. ID of system that was the source of the communication package. Measure of the RSSI by a networking device. Indicates the gain or loss in the signal strenght due to the transmission and reception equipment and the transmission medium and distance. RSSI measurement. Indicates the units used for the RSSI value. This message holds a list of inline data samples produced by one or more vehicles in the past. It is used to transfer data over disruption tolerant networks. All data sent inside this message will have offsets relative to this latitude. All data sent inside this message will have offsets relative to this longitude. All data sent inside this message will use this time as the origin (0). This message holds a list of inline data samples produced by one or more vehicles in the past. It is used to transfer data over disruption tolerant networks. All data sent inside this message will have offsets relative to this latitude. All data sent inside this message will have offsets relative to this longitude. All data sent inside this message will use this time as the origin (0). A message-list of HistoricSample messages compressed with GZip algorithm. The IMC identifier of the system that produced this sample. The priority for this data sample. Default priority is 0. Samples with higher priorities will *always* be transmitted before samples with lower priorities. Samples with -127 priority will not be transmitted but just logged to disk locally. Northing offsets relative to base latitude / longitude expressed in the enclosing `HistoricData` message. Easting offsets relative to base latitude / longitude expressed in the enclosing `HistoricData` message. Altitude / depth offsets relative to sea level expressed in decimeters. Negative values mean depth and positive values mean altitude. Time offset in seconds relative to the base time expressed in the enclosing `HistoricData` message. Request data from the Data Store Data Store response with Data (using field 'data') Clear 'data' from the Data Store Command to remote system. If a system receives a RemoteCommand and it isn't the intended recipient, then it should resend it. IMC id of the original sender. IMC id of the recipient. Expiration time of the message (Epoch Time), in seconds. If the message doesn't reach the destination within timeout, the validity of the message expires and there will be no more attempts to transmit the message. Command to be unpacked by the recipient. Presence of Communication Interfaces query. Query systems about communication capability Reply systems about communication capability Communication interface to be used for reports. Use acoustic communications Use satellite communications Use Global System for Mobile Communications Use mobile networks Use Radio telemetry Model is not defined Radio Model 3DR Radio Model RDFXXXx point to point Comma separated list of known Radio system names. Message to handle telemetry transmissions. Type of telemetry transmissions. Send telemetry data. Received telemetry data. Status of transmitted data. The request identifier used to receive transmission updates. Time, in seconds, which will be considered a non-transmitted message. Type of telemetry transmissions. Unknown code type Concise representation of entire system state message. Payload message is a MessageList. Payload message is INLINEMSG Payload message is in raw The unique identifier of this message's destination (e.g. lauv-xtreme-2, manta-0). The unique identifier of this message's destination (e.g. lauv-xtreme-2, manta-0). Type of telemetry transmissions. Message transmitted without acknowledged reception response Message transmitted with acknowledged reception response State of the transmitted message. When the vehicle uses Long Base Line navigation, this message notifies that a new range was received from one of the acoustics transponders. The message fields are used to identify the range value and the transponder name. Identification number of the acoustic transponder from which the range information was received. Distance to the acoustic transponder. Position and configuration of an LBL transponder (beacon). Name/Label of the acoustic transponder. WGS-84 Latitude coordinate. WGS-84 Longitude coordinate. The beacon's depth. Interrogation channel. Reply channel. Transponder delay. Long Base Line configuration. Used to define the type of the operation this message holds. Set the beacons configuration aboard the vehicle. Request the vehicle to send its current beacons configuration. A list of LBL beacon configuration messages. Send an acoustic message. Message to send. Send an acoustic message. Absolute latitude of sending vehicle. Absolute longitude of sending vehicle. Depth of sending vehicle. Sentence string sent/received by the modem Transmission time. The modem being used. Name of source system. Acoustic operation. Operation type. Send an abort through the acoustic channel to the system specified in the field 'system'. The latest abort request to the system specified in the field 'system' is in progress. The latest abort operation expired without acknowledgment from the system specified in the field 'system'. The latest abort operation was acknowledged by the system specified in the field 'system'. Request a range through the acoustic channel to the system specified in the field 'system'. The latest range request to the system specified in the field 'system' is in progress. The latest range request operation expired without reply from the system specified in the field 'system'. The latest range request operation to the system specified in the field 'system' was successful and the range is specified in the field 'range'. The acoustic modem is busy and cannot execute the requested operation. The latest requested operation is not supported. The transducer was not detected. Request message over acoustic channel. The message to send is specified by the 'msg' field. Message send request has been queued. Message send request is in progress. Message send request has been fulfilled. Message send request could not be fulfilled. Request message over acoustic channel. The message to send is specified by the 'msg' field. Request sending updated position to remote system so it can be ranged. Send an abort through the acoustic channel to the system specified in the field 'system', ignoring safety checks such as "transducer not connected". Request to fragment message over acoustic channel. The message to send is specified by the 'msg' field. Size of fragment is specified in the 'range' field. The meaning of this field depends on the operation and is explained in the operation's description. The meaning of this field depends on the operation and is explained in the operation's description. Argument for message send ('MSG') requests. Request a list of known underwater acoustic systems. The recipient of this message shall reply with an AcousticSystems message. This message is sent in reply to an AcousticSystemsQuery message and lists all known underwater acoustic systems (modems, narrow band transponders, etc). Comma separated list of known acoustic system names. This message is used to report the perceived link quality to other acoustic peers. The name of the peer on the other side of this link. RSSI is a signed floating point number. Higher RSSI values correspond to stronger signals. The signal strength is acceptable when measured RSSI values lie between -20 dB and -85 dB. Signal Integrity value illustrates distortion of the last received acoustic signal. It is calculated based on cross-correlation measurements. Higher *Signal Integrity Level* values correspond to less distorted signals. An acoustic link is considered weak if the *Signal Integrity Level* value is less than 100. Request Acoustic sending. The name of the system where to send this message. Period of time to send message (in seconds). The meaning of this field depends on the operation and is explained in the operation's description. Argument for message send ('MSG') or ('RAW') but in this case expects DevDataBinary message requests. Reply sent in response to a Acoustic Text sending request. Status description. The meaning of this field depends on the operation and is explained in the operation's description. Request a system (local or remote) to activate its acoustic release. The name of the system that should execute an acoustic release. Number of revolutions per minute. Number of revolutions per minute. Report of electrical voltage. The value of the internal electrical voltage as measured by the sensor. Report of electrical current. The value of the internal electrical current as measured by the sensor. Report of a GPS fix. Validity of fields. Fields 'utc_year', 'utc_month' and 'utc_day' are valid. Field 'utc_time' is valid. Fields 'lat', 'lon', 'altitude' and 'satellites' are valid. Field 'cog' is valid. Field 'sog' is valid. Field 'hacc' is valid. Field 'vacc' is valid. Field 'hdop' is valid. Field 'vdop' is valid. Type of fix. Stand alone solution. Differential solution. Dead reckoning solution. Manual solution. Simulated solution. UTC year. UTC month. UTC day. UTC time of the GPS fix measured in seconds since 00:00:00 (midnight). WGS-84 Latitude coordinate. WGS-84 Longitude coordinate. Height above WGS-84 ellipsoid. Number of satellites used by the GPS device to compute the solution. Course Over Ground (true). Speed Over Ground. Horizontal dilution of precision. Vertical dilution of precision. Horizontal Accuracy Estimate. Vertical Accuracy Estimate. Report of spatial orientation according to SNAME's notation (1950). The device time. Rotation around the vehicle longitudinal axis. Rotation around the vehicle lateral or transverse axis. Rotation around the vehicle vertical axis. A value of 0 means the vehicle is oriented towards true north. In cases where the sensor cannot measure the true heading, this field will have the same value as Yaw (Magnetic). Rotation around the vehicle vertical axis. A value of 0 means the vehicle is oriented towards magnetic north. In cases where the sensor cannot measure the magnetic heading, this field will have the same value as Yaw (True). Component of incremetal orientation vector over a period of time. The device time. X component. Y component. Z component. Period of time of the orientation vector increments. Vector quantifying the direction and magnitude of the measured angular velocity that a device is exposed to. The device time. X component. Y component. Z component. Vector quantifying the direction and magnitude of the measured acceleration that a device is exposed to. The device time. X component. Y component. Z component. Vector quantifying the direction and magnitude of the measured magnetic field that a device is exposed to. The device time. X component. Y component. Z component. Vector quantifying the direction and magnitude of the measured velocity relative to the ground that a device is exposed to. Each bit of this field represents if a given velocity component is valid. X component. Y component. Z component. Vector quantifying the direction and magnitude of the measured velocity relative to the water that a device is exposed to. Each bit of this field represents if a given velocity component is valid. X component. Y component. Z component. Component of incremetal velocity vector. The device time. X component. Y component. Z component. Distance measurement detected by the device. Validity of the measurement. Measurement is invalid. Measurement is valid. Device Location in the system. Beam configuration of the device. Measured distance. Report of temperature. The value of the temperature as measured by the sensor. Report of external pressure. The value of the pressure as measured by the sensor. Depth report. Depth value measured by a sensor. Report of Depth Offset. Depth offset. Sound Speed report. Estimated sound speed. Negative values denote invalid estimates. Water Density report. Computed Water Density. Report of conductivity. The value of the conductivity as measured by the sensor. Report of salinity. The value of the salinity as measured by the sensor. Measurement of relative wind speed. (Meaning without correcting for vehicle effects). Direction of the measured wind speed. The value of the wind speed as measured by the sensor. Wind turbulence intensity. Measurement of relative humidity. Value of relative humidity. Verbatim representation of device data in plain text format. Plain text data as extracted directly from the device. Verbatim representation of device data in binary format. Raw binary data as extracted directly from the device. Force measurement. Force magnitude. This message contains the data acquired by a single sonar measurement. The following describes the format used to fill the data field used in this message. (Byte order is little endian.) **Sidescan:** +------+-------------------+-----------+ | Data | Name | Type | +======+===================+===========+ | A | Ranges data | uintX_t | +------+-------------------+-----------+ .. figure:: ../images/imc_sidescan.png * The type *uintX_t* will depend on the number of bits per unit, and it should be a multiple of 8. * Furthermore, for now, 32 bits is the highest value of bits per unit supported. **Multibeam:** +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | Index| Section| Name | Type | Comments | +======+========+=========================+=========+======================================================================+ | 1 | H1 | Number of points | uint16_t| Number of data points | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 2 | H2 | Start angle | fp32_t | In radians | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 3 | H3 | Flags | uint8_t | Refer to next table | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 4 | H4 ? | Angle scale factor | fp32_t | Used for angle steps in radians | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 5 | H5 ? | Intensities scale factor| fp32_t | | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 6 | D1 ? | Angle steps[H1] | uint16_t| Values in radians | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 7 | D2 | Ranges[H1] | uintX_t | Ranges data points (scale factor from common field "Scaling Factor") | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ | 8 | D3 ? | Intensities[H1] | uintX_t | Intensities data points | +------+--------+-------------------------+---------+----------------------------------------------------------------------+ +--------+------------------+-----+ | Section| Flag Label | Bit | +========+==================+=====+ | H3.1 | Intensities flag | 0 | +--------+------------------+-----+ | H3.2 | Angle step flag | 1 | +--------+------------------+-----+ .. figure:: ../images/imc_multibeam.png *Notes:* * Each angle at step *i* can be calculated is defined by: .. code-block:: python angle[i] = H2_start_angle + (32-bit sum of D1_angle_step[0] through D1_angle_step[i]) * H4_scaling_factor * If bit H3.1 is not set then sections H5 and D3 won't exist. * If bit H3.2 is not set then sections H4 and D1 won't exist. In case this bit is set, then the angle steps is read from field "Beam Width" from "Beam Configuration". * The type *uintX_t* will depend on the number of bits per unit, and it should be a multiple of 8. * Furthermore, for now, 32 bits is the highest value of bits per unit supported. *How to write ranges and intensities data:* .. code-block:: python :linenos: data_unit = (Integer) (data_value / scale_factor); bytes_per_unit = bits_per_unit / 8; LOOP: i = 0, until i = bytes_per_unit byte[i] = (data_unit >> 8 * i) & 0xFF); write(byte); **Common:** Type of sonar. Operating frequency. Minimum range. Maximum range. Size of the data unit. (Should be multiple of 8) Scaling factor used to multiply each data unit to restore the original floating point value. Beam configuration of the device. Data acquired by the measurement. Hardware pulse detection. Control of hardware pulse detection. Activate or deactivate hardware pulse detection. Report of fuel level. Fuel level percentage of the system. Percentage level of confidence in the estimation of the amount of energy in the batteries. Operation mode name and the estimated time available in that mode in hours. Example: "Motion=1.5" Report of GPS navigation data. GPS Millisecond Time of Week. Latitude. Longitude. Height Above Ellipsoid. Height Above Sea Level. Horizontal Accuracy Estimate. Vertical Accuracy Estimate. NED North Velocity. NED East Velocity. NED Down Velocity. NED Down Velocity. NED Down Velocity. NED Down Velocity. NED Down Velocity. Course / Heading Accuracy Estimate. Actual position of a servo. Servo identifier. Value of the servo position. Location of a specific device in the system's body frame. Device's position over the X axis. Device's position over the Y axis. Device's position over the Z axis. Device's rotation over the X axis. Device's rotation over the Y axis. Device's rotation over the Z axis. Beam configuration of the device. Beam width of the instrument. A negative number denotes that this information is not available or is not applicable. Beam height of the instrument. A negative number denotes that this information is not available or is not applicable. Report sanity or lack of it in the data output by a sensor. Whether the data is sane or not sane. Data is sane. Data is not sane. Rhodamine Dye measurement. Amount of rhodamine dye detected. Crude oil measurement. Amount of crude oil detected. Fine oil measurement. Amount of fine oil detected. Turbidity measurement. Turbidity reading. Chlorophyll measurement. Chlorophyll reading. Fluorescein measurement. Fluorescein reading. Phycocyanin measurement. Phycocyanin reading. Phycoerythrin measurement. Phycoerythrin reading. Report of an RTK-GPS fix. Validity of fields. Field 'tow' is valid. Fields 'base_lat', 'base_lon' and 'base_height' are valid. Fields 'n', 'e', 'd' are valid. Fields 'v_n', 'v_e', 'v_d' are valid. Type of fix. No solution, but RTK task is running. No solution, but receiving observations. Floating point solution of IAR. Fixed (single) solution of IAR. GPS Time of Week. WGS-84 Latitude coordinate of the base. WGS-84 Longitude coordinate of the base. Height above WGS-84 ellipsoid of the base. Baseline North coordinate. Baseline East coordinate. Baseline Down coordinate. Velocity North coordinate. Velocity East coordinate. Velocity Down coordinate. Number of satellites used in solution. Number of hypotheses in the Integer Ambiguity Resolution (smaller is better). Quality ratio of Integer Ambiguity Resolution (bigger is better). This message is a representation of the state of the vehicle, as seen by an external navigation computer. An example usage is when DUNE is used with ardupilot. The data gathered from the autopilot is a complete navigation solution. ExternalNavData contains an inline Estimated State, which is a complete description of the system in terms of parameters such as position, orientation and velocities at a particular moment in time. The Type field selects wether the navigation data is a full state estimation, or only concerns attitude or position/velocity. External Navigation Data. The type of external navigation data Dissolved Oxygen measurement. Dissolved Oxygen reading. Air Saturation measurement. Air Saturation reading. Throttle e.g. for Plane/Copter . The value of the desired throttle. Report of pH. The value of the pH as measured by the sensor. Report of Redox Potential. The value of the Redox as measured by the sensor. Camera Zoom. The identification number of the destination camera. Absolute zoom level. The zoom action to perform. Actuate directly on a thruster. The identification number of the destination thruster. Actuation magnitude. Set the position of a servo. The identification number of the destination servo. Actuation magnitude. Set the deflection angle of a control surface. The identification number of the destination control surface. Actuation magnitude. This message is used as query to request for the possible remote actions (operation=QUERY and the list is empty in this case). The vehicle responds using the same message type returning the tuplelist with the pairs: Action,Type (operation=REPORT). The type of action can be Axis, Hat or Button. Verbs to use: +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Verb | Type | LAUV Use | Verb alternatives | Notes | +===============+==============+==========+============================================+=======================================+ | Accelerate | Button | yes | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Arm | Button | | | Should use ArmState message for state | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Decelerate | Button | yes | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Disarm | Button | | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Exit | Button | yes | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Heading | Axis | yes | Yaw, Rotate, Turning | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Lateral | Axis | | Sway, Sideways | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Pitch | Axis | | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Roll | Axis | | Bank | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Stop | Button | yes | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Thrust | Axis | yes | Surge, Forward, Throtle | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | Vertical | Axis | | Heave, Up, Ascende, VerticalRate, Depth, Z | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ | * | (type) | | | | +---------------+--------------+----------+--------------------------------------------+---------------------------------------+ Special actions for configuration: +---------------+-------------------+----------------------------------------------------+ | Verb | Special Type | Notes | +===============+===================+====================================================+ | Ranges | Decimal, Range127 | Decimal [-1.0; 1.0], Range127[-127; 127] (default) | +---------------+-------------------+----------------------------------------------------+ Types: +-------------------+------------------------------------------------------+ | Type | Note | +===================+======================================================+ | Axis | Axis like (full range) | +-------------------+------------------------------------------------------+ | Button | A button (0 for release, 1 for press) | +-------------------+------------------------------------------------------+ | Slider | Slider like (full range) | +-------------------+------------------------------------------------------+ | HalfSlider | Slider like, but only the positive half of the range | +-------------------+------------------------------------------------------+ Special Types: +--------------+----------------------------------------------------+ | Special Type | Notes | +==============+====================================================+ | Lock | Specify a Verb to be "locked" | +--------------+----------------------------------------------------+ Operation to perform. This will serve as a registration of an additional action. It should be used by an internal system entity to register an action to a central registration. This way only one will responde to a QUERY request. Example: "Propulsion=Axis,Lights=Button,Lights=Lock" This message is used to send a periodic update of values for each remote action. If the action is not on the list the assumed value is 0. List of values for each remote action (e.g: "Propeller=0.6,PanTilt=0.75,Lights=1"). Event of a specific hardware button. Button identifier. Value of the button. Control LCD. The LCD action to perform Text to be written (if defined write operation). This message allows controlling the system's power lines. Operation type. Request the destination entity of this message to power down it's devices immediately. If the destination entity is the special entity '0' the whole system will power down. The latest power down request is in progress and the time remaining until power down is given in field 'time_remain'. The latest power down request was aborted. Request the destination entity of this message to power down it's devices at the time given in the field 'sched_time'. If the destination entity is the special entity '0' the whole system will power down. Request the destination entity of this message to power up it's devices. The latest power up request is in progress. Request the destination entity of this message to power up it's devices at the time given in the field 'sched_time'. If the destination entity is the special entity '0' the whole system will power up. Time remaining to complete operation. Scheduled time of operation. This message allows controlling power channels. The name of the power channel. Operation to perform. Turn off power channel specified in field 'name'. Turn on power channel specified in field 'name'. Toggle power channel specified in field 'name'. Turn on power channel specified in field 'name' in 'sched_time' seconds. Turn off power channel specified in field 'name' in 'sched_time' seconds. Reset all scheduled operations for the channel specified in field 'name'. Save the current state of the channel 'name' to persistent storage. Restart power channel specified in field 'name'. Scheduled time of operation. Request the state of power channels. Message conveying the state of a power channel. Power Channel Name. State of the Power Channel. Power channel is off. Power channel is on. Brightness value of an LED (Light-Emitting Diode). LED name. Brightness value. Query the brightness of an LED (Light-Emitting Diode). The recipient of this message shall reply with 'LedBrightness'. LED name. Control the brightness of an LED (Light-Emitting Diode). The recipient of this message shall set the intensity of the LED to the desired 'value' and reply with 'LedBrightness'. LED name. Desired brightness value. Set properties of a PWM signal channel. PWM channel identifier. The total period of the PWM signal (sum of active and inactive time of the PWM). The active time of the PWM signal. The duty cycle value must be less or equal to the period. Properties of a PWM signal channel. PWM channel identifier. The total period of the PWM signal (sum of active and inactive time of the PWM). The active time of the PWM signal. The duty cycle value is less or equal to the period. This message presents the estimated state of the vehicle. EstimatedState is a complete description of the system in terms of parameters such as position, orientation and velocities at a particular moment in time. The system position is given by a North-East-Down (NED) local tangent plane displacement (x, y, z) relative to an absolute WGS-84 coordinate (latitude, longitude, height above ellipsoid). The symbols for position and attitude as well as linear and angular velocities were chosen according to SNAME's notation (1950). The body-fixed reference frame and Euler angles are depicted next: .. figure:: ../images/euler-lauv.png :align: center Euler angles WGS-84 Latitude. WGS-84 Longitude. Height above the WGS-84 ellipsoid. The North offset of the North/East/Down field with respect to LLH. The East offset of the North/East/Down field with respect to LLH. The Down offset of the North/East/Down field with respect to LLH. The phi Euler angle from the vehicle's attitude. The theta Euler angle from the vehicle's attitude. The psi Euler angle from the vehicle's attitude. Body-fixed frame xx axis velocity component. Body-fixed frame yy axis velocity component. Body-fixed frame zz axis velocity component. Ground Velocity xx axis velocity component. Ground Velocity yy axis velocity component. Ground Velocity zz axis velocity component. The angular velocity over body-fixed xx axis (roll). The angular velocity over body-fixed yy axis (pitch). The angular velocity over body-fixed zz axis (yaw). Depth, in meters. To be used by underwater vehicles. Negative values denote invalid estimates. Altitude, in meters. Negative values denote invalid estimates. The estimated stream velocity, typically for water or air streams. X component (North). Y component (East). Z component (Down). Speed measured by the navigation filter. Ground true speed. Report of navigation uncertainty. This is usually given by the output of the state covariance matrix of an Extended Kalman Filter. The North offset variance of the North/East/Down field with respect to LLH. The East offset variance of the North/East/Down field with respect to LLH. The Down offset variance of the North/East/Down field with respect to LLH. The phi Euler angle variance from the vehicle's attitude. The theta Euler angle variance from the vehicle's attitude. The psi Euler angle variance from the vehicle's attitude. The angular velocity variance over body-fixed xx axis (roll). The angular velocity variance over body-fixed yy axis (pitch). The angular velocity variance over body-fixed zz axis (yaw). Body-fixed frame xx axis velocity variance component. Body-fixed frame yy axis velocity variance component. Body-fixed frame zz axis velocity variance component. The psi Euler angle bias variance from the vehicle's sensed attitude. The angular velocity over body-fixed zz axis bias variance from sensor. Report of navigation data. This is constituted by data which is not part of the vehicle estimated state but that the user may refer for more information. The psi Euler angle bias from the vehicle's sensed attitude. The angular velocity over body-fixed zz axis bias from sensor. Course over ground given by NED ground velocity vectors. Continuous psi Euler angle (without normalizations). GPS rejection filter level. LBL rejection filter level. Custom variable. Custom variable. Custom variable. UTC time of the rejected GPS fix measured in seconds since 00:00:00 (midnight). Reason for rejection. New GPS Fix position is above a computed threshold. Invalid measurement. Above maximum horizontal dilution of precision. Above maximum horizontal accuracy index. Lost one of the validity bits between consecutive GPS fixes. When the vehicle uses Long Base Line navigation, this message notifies that a new range was received from one of the acoustics transponders. The message fields are used to identify the range value and the transponder name. Also, this message has an acceptance field that indicates whether a LBL range was accepted or rejected, and if rejected, the reason why. Identification number of the acoustic transponder from which the range information was received. Distance to the acoustic transponder. Reason for acceptance/rejection. This LBL range is accepted by the navigation filter. New LBL Range is above a computed threshold. Singular point. The filter lacks information to properly use the received LBL range. Vehicle is using only GPS fix when it is at surface. When the vehicle uses Doppler Velocity Log sensor, this message notifies that a new measurement was locally rejected by the navigation filter. This field represents the type of the rejected velocity. Reason for rejection. There are two types of DVL measurement filters. An Innovation filter checks the innovation between the current measurement and the previous measurement within a certain amount of time and an Absolute filter compares the measurement with an absolute threshold value. Those filters are tested using horizontal speed measurements, i.e., measurements in the x-axis and in the y-axis. The current DVL x-axis measurement is discarded because the absolute difference between the value and the previous accepted DVL measurement with a given time window is above a configurable threshold. The current DVL y-axis measurement is discarded because the absolute difference between the value and the previous accepted DVL measurement with a given time window is above a configurable threshold. The current DVL x-axis measurement is discarded because the the absolute value is above a configurable threshold. The current DVL y-axis measurement is discarded because the the absolute value is above a configurable threshold. Value of the rejection. If it is an innovation rejection the value is the absolute difference between the previous accepted DVL measurement and the current one. If it is an absolute rejection the value is the current DVL measurement. Timestep of the rejection. The timestep is 0 for an absolute rejection since it is an instantaneous reading. For innovation rejection it is the time difference between the previous accepted DVL measurement and the current one. LBL Beacon position estimate. LBL Beacon configuration estimate. The North position offset of the NED field with respect to origin. The East position offset of the NED field with respect to origin. The North offset variance of the North/East/Down field with respect to LLH. The East offset variance of the North/East/Down field with respect to LLH. Distance between current LBL Beacon position and filter estimation. This message notifies the vehicle is ready for dead-reckoning missions. Alignment State. The stream velocity estimated by a group of systems. Typically for water or air streams. X component (North). Y component (East). Z component (Down). Airspeed along with airflow angles. Airspeed, the 2-norm of the relative velocity. Angle of attack. Sideslip angle. Desired Heading angle reference value for the control layer. The value of the desired heading angle, relative to true north, in radians. Desired Z reference value for the control layer. The value of the desired z reference in meters. Units of the z reference. Desired Speed reference value for the control layer. The value of the desired speed, in the scale specified by the "Speed Units" field. Indicates the units used for the speed value. Desired Roll angle reference value for the control layer. The value of the desired roll angle. Desired Pitch angle reference value for the control layer. The value of the desired pitch angle. Desired Vertical Rate speed reference value for the control layer. The value of the desired vertical rate speed in meters per second. Perform path control. The path is specified by two WGS-84 waypoints, respective altitude / depth settings, optional loitering at the end point, and some control flags. The start and end waypoints are defined by the specified end point fields ('end_{lat/lon/z}') plus: 1. the start waypoint fields ('start_{lat|lon|z}') if the 'START' flag (bit in 'flags' field) is set; or 2. the end point of the previous path recently tracked; or 3. the current location is the 'DIRECT' flag is set or if the tracker has been idle for some time. Altitude and depth control can be performed as follows: 1. by default, the tracker will just transmit an altitude/depth reference value equal to 'end_z' to the appropriate controller; 2. if the 'NO_Z' flag is set no altitude/depth control will take place, hence they can be controlled independently; 3. if the '3DTRACK' flag is set, 3D-tracking will be done (if supported by the active controller). Loitering can be specified at the end point with a certain radius ('lradius'), duration ('lduration'), and clockwise or counter-clockwise direction ('CCLOCKW' flag). Unsigned integer reference for the scope of the desired path message. Path reference should only be set by a maneuver. Should be set to an always increasing reference at the time of dispatching this message. Lower level path controllers must inherit the same path reference sent by maneuver. WGS-84 latitude of start point. This will be ignored unless the 'START' flag is set. WGS-84 longitude of start point. This will be ignored unless the 'START' flag is set. Altitude or depth of start point. This parameter will be ignored if the 'NO_Z' flag is set, or if the 'START' flag is not set. Units of the start point's z reference. WGS-84 latitude of end point. WGS-84 longitude of end point. Depth or altitude for the end point. This parameter will be ignored if the 'NO_Z' flag is set. Units of the end point's z reference. Maneuver speed reference. Speed units. Radius for loitering at end point. Specify less or equal to 0 for no loitering. Desired Path flags. Indicates that the start point specification is given, therefore it should be considered for tracking. If start point is not given, ignore also the previous path's endpoint and take the start point to be the current vehicle location. Ignore altitude/depth setting and let them be controlled independently. Perform 3D-tracking, i.e., consider the path formed in the XYZ plane taking into account both the 'start_z' and 'end_z' values. Indicates that loitering, if defined, should be done counter-clockwise. Clockwise loitering will apply otherwise. Indicates that loitering, if defined, should be done from the current vehicle position. The end_lat and end_lon fields will be ignored. Indicates that takeoff should be done before going to the end position. Indicates that the system should land at the end position. Set the desired virtual forces and torques to be applied to the vehicle. Force X along the vehicle's x axis. Force Y along the vehicle's y axis. Force Z along the vehicle's z axis. Torque K about the vehicle's x axis. Torque M about the vehicle's y axis. Torque N about the vehicle's z axis. Desired Control flags. If enabled then field X has a meaningful value. If enabled then field Y has a meaningful value. If enabled then field Z has a meaningful value. If enabled then field K has a meaningful value. If enabled then field M has a meaningful value. If enabled then field N has a meaningful value. Desired Heading Rate speed reference value for the control layer. The value of the desired heading rate speed in radians per second. Desired value for each linear and angular speeds. Desired speed along the vehicle's x axis. Desired speed along the vehicle's y axis. Desired speed along the vehicle's z axis. Desired speed about the vehicle's x axis. Desired speed about the vehicle's y axis. Desired speed about the vehicle's z axis. Desired Velocity flags. If enabled then field u has a meaningful value. If enabled then field u has a meaningful value. If enabled then field w has a meaningful value. If enabled then field p has a meaningful value. If enabled then field q has a meaningful value. If enabled then field r has a meaningful value. Path control state issued by Path Controller. Unsigned integer reference of the desired path message to which this PathControlState message refers to. Path reference should only be set by a maneuver, not by path controllers. WGS-84 latitude of start point. WGS-84 longitude of start point. Altitude or depth of start point. This parameter will be ignored if the 'NO_Z' flag is set, or if the 'START' flag is not set. Units of the start point's z reference. WGS-84 latitude of end point. WGS-84 longitude of end point. Depth or altitude for the end point. This parameter should be ignored if the 'NO_Z' flag is set. Units of the end point's z reference. Radius for loitering at end point. Will be 0 if no loitering is active. Path control state flags. Set if near the target endpoint. Set if loitering. Altitude/depth being controlled independently. 3D-tracking is active. Indicates that loitering, if active, is being done counter-clockwise. Otherwise, clockwise loitering should be assumed. Along-Track position value. Cross-Track position value. Vertical-Track position value. Along-Track velocity value. Cross-Track velocity value. Vertical-Track velocity value. Course error value. Estimated time to reach target waypoint. The value will be 65535 if the time is unknown or undefined, and 0 when loitering. Control torques allocated to the actuators. Torque K about the vehicle's x axis. Torque M about the vehicle's y axis. Torque N about the vehicle's z axis. Report of PID control parcels. Proportional parcel value. Integral parcel value. Derivative parcel value. Anti-windup parcel value. Brake the vehicle in some way, i. e., reduce forward speed. Brake operation. Stop braking procedures. Start braking procedures. Revert Actuation. Position, velocity and acceleration setpoints in NED Desired pos in x. Desired pos in y. Desired pos in z. Desired speed along NED x axis. Desired speed along NED y axis. Desired speed along NED z axis. Desired acceleration along NED x axis. Desired acceleration along NED y axis. Desired acceleration along NED z axis. Setpoint Flags If enabled then field x has a meaningful value. If enabled then field y has a meaningful value. If enabled then field z has a meaningful value. If enabled then field vx has a meaningful value. If enabled then field vy has a meaningful value. If enabled then field vz has a meaningful value. If enabled then field ax has a meaningful value. If enabled then field ay has a meaningful value. If enabled then field az has a meaningful value. Desired throttle e.g. for Plane in FBWA-mode. The value of the desired throttle. A "Goto" is a maneuver specifying a movement of the vehicle to a target waypoint. The waypoint is described by the WGS-84 waypoint coordinate and target Z reference. Mandatory parameters defined for a "Goto" are timeout, speed and speed units. Optional parameters may be defined for the target Euler Angles (roll, pitch and yaw) though these parameters may not be considered by all maneuver controllers in charge of the execution of this type of maneuver. The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. The phi Euler angle in which the vehicle should set its attitude. Use '-1' for this field to be unconsidered. Otherwise the value spans from 0 to 2 Pi. The theta Euler angle in which the vehicle should set its attitude. Use '-1' for this field to be disconcerted. Otherwise the value spans from 0 to 2 Pi. The psi Euler angle in which the vehicle should set its attitude. Use '-1' for this field to be considered. Otherwise the value spans from 0 to 2 Pi. Custom settings for maneuver. The Pop Up maneuver makes the vehicle come to the surface at a specific waypoint. This maneuver is restricted to underwater vehicles. The amount of time the maneuver is allowed to run. If the maneuver is not completed in the amount of time specified an error will be generated. WGS-84 Latitude. WGS-84 Longitude. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. The duration of this maneuver at surface level. Only used if flag WAIT_AT_SURFACE is on. Radius of the maneuver. Only used if flag STATION_KEEP is on. Flags of the maneuver. If this flag is set, lat/lon/start_z fields should be ignored and current vehicle position should be considered as starting point for ascent/descent. If this flag is set, duration field is used to hold position at surface for that amount of time. This flag will only make sense if WAIT_AT_SURFACE is also set. While holding position at surface the vehicle will assume a station keeping behavior. Custom settings for maneuver. The Teleoperation Maneuver lets the vehicle be controlled by an external human operator. Custom settings for maneuver. The Loiter maneuver makes the vehicle circle around a specific waypoint with fixed depth reference. The timeout indicates the time that an error should occur if exceeded. WGS-84 Latitude coordinate. WGS-84 Longitude coordinate. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. The duration of this maneuver. Use '0' for unlimited duration time. Maneuver speed reference. Speed units. Loiter maneuver type. Radius of the maneuver. Length of the maneuver. Bearing of the maneuver. Desired direction. Custom settings for maneuver. Causes the vehicle to stay idle for some time. Optional duration of the Idle maneuver. Use '0' for unlimited duration time (maneuver will have to be explicitly stopped). Custom settings for maneuver. Low level maneuver that sends a (heading, roll, speed, ...) reference to a controller of the vehicle and then optionally lingers for some time. Control command: can be of type DesiredZ, DesiredHeading, DesiredRoll, DesiredPitch, DesiredSpeed, DesiredThrottle or DesiredPath. Duration of the control. Custom settings for maneuver. Rows maneuver (i.e: lawn mower type maneuver) The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. Rows bearing angle. Rows cross angle reference. Width of the maneuver. Length of the maneuver. Horizontal step. Desired curve offset. Alternation parameter. Maneuver flags. Custom settings for maneuver. Maneuver constituted by a list of Path Points. The amount of time the maneuver is allowed to run. WGS-84 Latitude of start point. WGS-84 Longitude of start point. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. List of PathPoint messages, encoding the path points. Custom settings for maneuver. Waypoint coordinate of a Follow Path maneuver. The North offset of the North/East/Down coordinate of this point in relation to the path start point. The East offset of the North/East/Down coordinate of this point in relation to the path start point. The Down offset of the North/East/Down coordinate of this point in relation to the path start point. A "yo-yo" is a maneuver specifying a vehicle movement to a target waypoint in which depth/altitude varies along the way between two values with a desired pitch angle. The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Amplitude. Pitch angle for use in ascent/descent. Maneuver speed reference. Speed units. Custom settings for maneuver. Notification of completion of a Teleoperation maneuver. The Station Keeping maneuver makes the vehicle come to the surface and then enter a given circular perimeter around a waypoint coordinate for a certain amount of time. WGS-84 Latitude. WGS-84 Longitude. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Radius. Duration (0 for unlimited). The value of the desired speed, in the scale specified by the "Speed Units" field. Indicates the units used for the speed value. Custom settings for maneuver. The Elevator maneuver specifies a vehicle to reach a target waypoint using a cruise altitude/depth and then ascend or descend to another target altitude/depth. The ascent/descent slope and radius can also be optionally specified. The amount of time the maneuver is allowed to run. If the maneuver is not completed in the amount of time specified an error will be generated. Flags of the maneuver. If this flag is set, lat/lon/start_z fields should be ignored and current vehicle position should be considered as starting point for ascent/descent. WGS-84 Latitude. WGS-84 Longitude. Altitude or depth of start point. This parameter will be ignored if the 'NO_Z' flag is set, or if the 'START' flag is not set. Units of the start point's z reference. Depth or altitude for the end point. This parameter will be ignored if the 'NO_Z' flag is set. Units of the end point's z reference. Radius for use in ascent/descent. If 0 the controller to should use a custom control strategy. Maneuver speed. Speed units. Custom settings for maneuver. Maneuver constituted by a list of Trajectory Points. The amount of time the maneuver is allowed to run. WGS-84 Latitude for start point. WGS-84 Longitude for start point. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed. Speed units. List of trajectory points. Custom settings for maneuver. Waypoint coordinate of a Follow Trajectory maneuver. The North offset of the North/East/Down coordinate of this point in relation to the trajectory start point. The East offset of the North/East/Down coordinate of this point in relation to the trajectory start point. The Down offset of the North/East/Down coordinate of this point in relation to the trajectory start point. The time offset relative to the previous trajectory point. The Custom Maneuver message may be used as specification of a very specific maneuver not covered by the IMC scope. The settings of the maneuver are just its id, timeout and other settings encoded as a tuple list. The amount of time the maneuver is allowed to run. If the maneuver is not completed in the amount of time specified an error will be generated. The maneuver name, used as key by an implementation to bind the maneuver to the corresponding controller. Custom settings for maneuver. Coordinate maneuver using two or more cooperating systems. WGS-84 Latitude for start point. WGS-84 Longitude for start point. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Reference speed. Reference speed units. List of trajectory points. List of formation participants. Optional start time hint for vehicle formation. Custom settings for maneuver. Definition of a vehicle participant in a VehicleFormation maneuver. IMC address of vehicle. Distance that the system must respect along the xx axis. Distance that the system must respect along the yy axis. Distance that the system must respect along the zz axis. Command used to stop currently executing maneuver. Command used to indicate maneuver can be executed in the vehicle. IMC serialization ID of maneuver type. Maneuver control state. Code indicating maneuver state. Maneuver in progress. Maneuver completed. Maneuver error. Maneuver stopped. Estimated time to completion of the maneuver, when executing. The value will be 65535 if the time is unknown or undefined. Complementary information, e.g., regarding errors. System-following maneuver. IMC address of system to follow. Duration of maneuver, 0 for unlimited duration. Reference speed. Reference speed units. Along-track offset. Cross-track offset. Coordinate z during follow maneuver. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. In this maneuver, a vehicle drives to the center of two other systems (a, b) in order to be used as a communications relay. WGS-84 Latitude for start point. WGS-84 Longitude for start point. Reference speed. Reference speed units. Duration of maneuver, 0 for unlimited duration. The IMC id of the system A. The IMC id of the system B. Move only if the distance to the target is bigger than this threshold. Given a polygonal area, generates trajectories to cover the area. WGS-84 Latitude for start point. WGS-84 Longitude for start point. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Reference speed. Reference speed units. Message list of type PolygonVertex. Additional parameters to be used by the controller. This message is used to store the various polygon vertices for CoverArea maneuvers. WGS-84 Latitude for start point. WGS-84 Longitude for start point. This maneuver is a mix between the Loiter maneuver and the YoYo maneuver. The vehicle cirlcles around a specific waypoint with a variable Z reference between a minimum and maximum value. The timeout indicates the time that an error should occur if exceeded. WGS-84 Latitude coordinate. WGS-84 Longitude coordinate. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Pitch angle used to perform the maneuver. Yoyo motion amplitude. The duration of this maneuver. Use '0' for unlimited duration time. Maneuver speed. Speed units. Radius of the maneuver. Direction of the maneuver. Custom settings for maneuver. A "Formation" is defined by the relative positions of the vehicles inside the formation, and the reference frame where this positions are defined. The formation reference frame may be: - Earth Fixed: Where the vehicles relative position do not depend on the followed path. This results in all UAVs following the same path with an offset relative to each other; - Path Fixed: Where the vehicles relative position depends on the followed path, changing the inter-vehicle offset direction with the path direction. - Path Curved: Where the vehicles relative position depends on the followed path, changing the inter-vehicle offset direction with the path direction and direction change rate. An offset in the xx axis results in a distance over the curved path line. An offset in the yy axis results in an offset of the vehicle path line relative to the formation center path line. Name of the formation configuration. Formation reference frame List of formation participants. Custom settings for the formation configuration. A "Formation Plan" is a maneuver specifying a plan for a team of vehicles. The maneuver defines: - Vehicles included in the formation group - Formation shape configuration - Plan (set of maneuvers) to be followed by the formation center - Speed at which that plan is followed - Path contrains (virtual leader bank limit) - Supervision settings Target group for the formation plan. Name of the formation configuration. The flight plan's identifier. Flight plan defined to be tracked by the formation leader. Verbose text description of plan. Formation leader flight airspeed during the plan tracking. Formation leader flight bank limit during the plan tracking. Limit for the position mismatch between real and simulated position, before a maneuver abort is asserted. Warning threshold for the position mismatch between real and simulated position. Above this threshold a time-out limit is evaluated to assert a maneuver abort state. The amount of time the maneuver is allowed to run after the position mismatch threshold is surpassed. Threshold for the convergence measure, above which a time-out limit is evaluated to assert a maneuver abort state. The amount of time the maneuver is allowed to run after the convergence threshold is surpassed. The amount of time the maneuver is allowed to run without any update on the other formation vehicles states. Turbulence limit above which a maneuver abort is asserted. Custom settings for maneuver. This maneuver follows a reference given by an external entity. The IMC identifier of the source system that is allowed to provide references to this maneuver. If the value ''0xFFFF'' is used, any system is allowed to command references. The entity identifier of the entity that is allowed to provide references to this maneuver. If the value ''0xFF'' is used, any entity is allowed to command references. The ammount of time, in seconds, after which the maneuver will be terminated if no reference has been received. In other words, the controlling entity should send reference updates in shorter periods than 'timeout'. Whenever an intended reference is achieved, this maneuver will maintain the vehicle in vaticiny of that location. The loiter radius is used to define the radius of this (xy) area. Similarly to Loiter Radius, this field is used to define the "z" distance considered to be inside the vacitiny of the target location. An AUV may, for instance, be floating until it more than z units above the current reference, in which case it actively changes its position in order to achieve the desired depth / altitude. The IMC identifier of the source system that is allowed to control the vehicle. If the value ''0xFFFF'' is used, any system is allowed to command references. The entity identifier of the entity that is allowed to control the vehicle. If the value ''0xFF'' is used, any entity is allowed to command references. Reference currently being followed. Monitoring variables for the formation state and performance. Commanded acceleration computed by the formation controller: northward direction. On the vehicle directional reference frame. Constrained by the vehicle operational limits. Commanded acceleration computed by the formation controller: eastward direction. On the vehicle directional reference frame. Constrained by the vehicle operational limits. Commanded acceleration computed by the formation controller: downward direction. On the vehicle directional reference frame. Constrained by the vehicle operational limits. Desired acceleration computed by the formation controller: northward direction. On the fixed reference frame. Desired acceleration computed by the formation controller: eastward direction. On the fixed reference frame. Desired acceleration computed by the formation controller: downward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Overall formation combined virtual error: northward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Overall formation combined virtual error: eastward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Overall formation combined virtual error: downward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Overall formation combined sliding surface feedback: northward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Overall formation combined sliding surface feedback: eastward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Overall formation combined sliding surface feedback: downward direction. On the fixed reference frame. Components of the vehicle desired acceleration. Dynamics uncertainty compensation: northward direction. Components of the vehicle desired acceleration. Dynamics uncertainty compensation: eastward direction. Components of the vehicle desired acceleration. Dynamics uncertainty compensation: downward direction. Combined deviation from convergence (sliding surface): North component. Combined deviation from convergence (sliding surface): East component. Combined deviation from convergence (sliding surface): Down component. List of RelativeState messages, encoding the inter-vehicle formation state. Inter-vehicle formation state. The identifier of the vehicle whose relative state is being reported. Distance between vehicles. Relative position error norm. Weight in the computation of the desired acceleration. Inter-vehicle direction vector: North component. Inter-vehicle direction vector: East component. Inter-vehicle direction vector: Down component. Relative position error: North component. Relative position error: East component. Relative position error: Down component. Relative position error: X component on the inter-vehicle reference frame. Relative position error: Y component on the inter-vehicle reference frame. Relative position error: Z component on the inter-vehicle reference frame. Relative veloctity error: X component in the inter-vehicle reference frame. Relative velocity error: Y component on the inter-vehicle reference frame. Relative velocity error: Z component on the inter-vehicle reference frame. Deviation from convergence (sliding surface): X component on the inter-vehicle reference frame. Deviation from convergence (sliding surface): Y component on the inter-vehicle reference frame. Deviation from convergence (sliding surface): Z component on the inter-vehicle reference frame. Components of the vehicle desired acceleration. Relative virtual error: northward direction. Components of the vehicle desired acceleration. Relative virtual error: eastward direction. Components of the vehicle desired acceleration. Relative virtual error: downward direction. A "Dislodge" is a maneuver ordering the vehicle to attempt a series of thruster operations that will hopefully get it unstuck from an entangled condition. Parameters are RPMs for the motor when attempting dislodge and and a flag specifying whether the thrust burst should be attempted forward, backward or auto (letting the vehicle decide). The amount of time the maneuver is allowed to run. Maneuver RPM reference. Direction to which the vehicle should attempt to unstuck. Custom settings for maneuver. The "Formation" is a controller to execute a maneuver with a team of vehicles. It defines the: - Vehicles included in the formation group - Vehicles relative positions inside the formation - Reference frame where the relative positions are defined - Formation shape configuration - Plan (set of maneuvers) to be followed by the formation center - Plan contrains (virtual leader speed and bank limits) - Supervision settings The formation reference frame may be: - Earth Fixed: Where the vehicles relative position do not depend on the followed path. This results in all UAVs following the same path with an offset relative to each other; - Path Fixed: Where the vehicles relative position depends on the followed path, changing the inter-vehicle offset direction with the path direction. - Path Curved: Where the vehicles relative position depends on the followed path, changing the inter-vehicle offset direction with the path direction and direction change rate. An offset in the xx axis results in a distance over the curved path line. An offset in the yy axis results in an offset of the vehicle path line relative to the formation center path line. Name of the formation configuration. Indicates if the message is a request, or a reply to a previous request. Operation to perform. Start the formation maneuver. Stop the formation maneuver. Stop the formation maneuver. Stop the formation maneuver. Stop the formation maneuver. Target group for the formation plan. The flight plan's identifier. Flight plan defined to be tracked by the formation leader. Verbose text description of plan. Formation reference frame List of formation participants. Maximum absolute bank allowed for the formation leader. Minimum speed allowed for the formation leader flight. Maximum speed allowed for the formation leader flight. Minimum altitude allowed for the formation leader flight. Maximum altitude allowed for the formation leader flight. Limit for the position mismatch between real and simulated position, before a maneuver abort is asserted. Warning threshold for the position mismatch between real and simulated position. Above this threshold a time-out limit is evaluated to assert a maneuver abort state. The amount of time the maneuver is allowed to run after the position mismatch threshold is surpassed. Threshold for the convergence measure, above which a time-out limit is evaluated to assert a maneuver abort state. The amount of time the maneuver is allowed to run after the convergence threshold is surpassed. The amount of time the maneuver is allowed to run without any update on the other formation vehicles states. Turbulence limit above which a maneuver abort is asserted. Custom settings for maneuver. A "Launch" is a maneuver specifying a movement of the vehicle to a target waypoint after being launched from a ship or pier. The waypoint is described by the WGS-84 waypoint coordinate and target Z reference. Mandatory parameters defined for a "Launch" are timeout, speed and speed units. The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. Custom settings for maneuver. A "Drop" is a maneuver specifying a movement of the vehicle to a target waypoint. The waypoint is described by the WGS-84 waypoint coordinate and target Z reference. Mandatory parameters defined for a "Goto" are timeout, speed and speed units. The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. Custom settings for maneuver. This maneuver is used to command the vehicle to arrive at some destination at a specified absolute time. The vehicle's speed will vary according to environment conditions and/or maneuver start time. Unix timestamp, in seconds, for the arrival at the destination. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the destination z reference. Z reference to use while travelling to the destination. Z reference units to use while travelling to the destination. What to do if the vehicle fails to arrive before or at the requested time. If the vehicle fails to arrive at the specified time, it will keep going to the destination at top speed and only then consider this maneuver completed. If the vehicle fails to arrive at the specified time, it will stop the current maneuver and advance to the next one (independently of how far it is from destination). If the vehicle fails to arrive at the specified time, it will stop the execution of this maneuver with a FAILED result (the entire plan will be stopped). Rows coverage (i.e: lawn mower type maneuver) but with adaptive cover WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. Rows bearing angle. Rows cross angle reference. Width of the maneuver. Length of the maneuver. Desired curve offset. Angular aperture of the sensor (looking downwards). Maximum range of the sensor (in meters downwards from the vehicle's position). Amount of overlap among different transect surveys. Maneuver optional flags. Whether to move between transects using an additional perpendicular transect. Shall the vehicle turn towards the right after the first transect (alternatively it will turn left). Custom settings for maneuver. A "Sample" is a maneuver specifying a movement of the vehicle to a target waypoint. The waypoint is described by the WGS-84 waypoint coordinate and target Z reference. Mandatory parameters defined for a "Goto" are timeout, speed and speed units. The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. True when sampling with servo 0. True when sampling with servo 1. True when sampling with servo 2. Custom settings for maneuver. A "ImageTracking" is a maneuver specifying a particular heading to the detected object. Automatic takeoff for UAVs. This maneuver specifies a target waypoint where to takeoff. Takeoff direction is set from the direction the plane is pointing when the auto takeoff command is started. It will remain that way until the vehicle reaches the target z reference. After that it will go to the target waypoint. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Target altitude or height for the automatic takeoff. Units of the z reference. Maneuver speed reference. Speed units. Minimum pitch angle during automatic takeoff. Custom settings for maneuver. Automatic landing on the ground, for UAVs. This maneuver specifies the target touchdown location and sets the final approach based on the maneuver bearing and glide slope parameters. WGS-84 Latitude of touchdown waypoint. WGS-84 Longitude of touchdown waypoint. Target altitude or height for the automatic landing. Units of the z reference and abort z reference. Maneuver speed reference. Speed units. Abort altitude or height. If landing is aborted while executing, the UAV will maintain its course and attempt to climb to the abort z reference. Land bearing angle. Ratio of the distance from the last waypoint to the landing point (touchdown) and the height difference between them. Height difference between the last waypoint to the landing point (touchdown). Custom settings for maneuver. This maneuver triggers an external controller that will guide the vehicle during a specified duration of time or until it relinquishes control using (ManeuverDone). The external controller is allowed to drive the vehicle only inside the specified boundaries. WGS-84 Latitude of the initial location. WGS-84 Longitude of the initial location. Maneuver speed reference. Speed units. Maximum depth the autonomous controller is allowed to drive to. Minimum altitude the autonomous controller is allowed to drive to. The time after which this maneuver should be stopped (if still active and TIMEOUT is enforced). The boundaries of the admissable area for this autonomous section. The name of the controlling agent that will be allowed to guide the vehicle during the AutononousSection. Custom settings for maneuver. This maneuver behaves by following a point. The identifier of the point source to follow (via RemoteSensorInfo or EstimatedState). Use this speed when travelling from afar. Indicates the units used for the maximum speed value. WGS-84 Latitude of maneuver in the map. Ignored during execution. WGS-84 Longitude of maneuver in the map. Ignored during execution. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Custom settings for maneuver. An "Alignment" is a maneuver specifying a movement of the vehicle to a target waypoint intended to control activation of an IMU/INS in order to start aligning navigation for more precise dead reckoning operation. The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Maneuver speed reference. Speed units. Custom settings for maneuver. The Station Keeping Extended maneuver makes the vehicle come to the surface and then enter a given circular perimeter around a waypoint coordinate for a certain amount of time. It extends the Station Keeping maneuver with the feature 'Keep Safe', which allows for the vehicle to hold position underwater and popup periodically to communicate. WGS-84 Latitude. WGS-84 Longitude. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Radius. Duration (0 for unlimited). The value of the desired speed, in the scale specified by the "Speed Units" field. Indicates the units used for the speed value. The period at which the vehicle will popup to report its position. Only used if flag KEEP_SAFE is on. The duration of the station keeping at surface level when it pops up. Only used if flag KEEP_SAFE is on. Flags of the maneuver. If this flag is set, the vehicle will hold position underwater, loitering at z reference. It will popup periodically to report position. When it pops up, it will stay at surface in "normal" station keeping behaviour for a certain time (popup_duration). Custom settings for maneuver. Notification of completion of a maneuver (optional use). Magnetometer calibration maneuver (i.e: one square pattern in one direction, a second square in the opposite direction) The amount of time the maneuver is allowed to run. WGS-84 Latitude of target waypoint. WGS-84 Longitude of target waypoint. Maneuver reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Maneuver speed reference. Speed units. Rows bearing angle. Width of the maneuver. Desired direction. Custom settings for maneuver. This message summarizes the overall state of the vehicle. It can contains information regarding: - The overall operation mode. - Any error conditions. - Current maneuver execution. - Active control loops. The overall operation mode. Ready to service requests. Ongoing vehicle calibration. Errors are set. A maneuver is executing. External control is active. Booting system. Error count for monitored entitites. The monitored entities with error conditions. This is a comma separated list of entity names. Type of maneuver being executed, when in MANEUVER mode. The value is the IMC serialization ID of the corresponding maneuver. Start time of maneuver being executed (Epoch time), when in MANEUVER mode. Estimated time for maneuver completion. The value will be 65535 if the time is unknown or undefined. Enabled control loops. Description of last error. Time of last error (Epoch time). Vehicle command. Request ID The type of command/action to be performed Execute the maneuver specified in 'maneuver' field. Stop 'maneuver' being executed. Start calibrating vehicle. Stop calibrating vehicle. Maneuver to be executed (for 'EXEC_MANEUVER' command) Amount of time to calibrate Complementary human-readable information for replies. Controls monitoring of entity states in the vehicle. Command. Comma separated list of entity names. Number of entitities being monitored. Comma separated list of all entity names being monitored. Number of entitities with non-critical errors. Comma separated list of all entity names with non-critical errors. Number of entitities with critical errors. Comma separated list of all entity names with critical errors. Description of last error. Time of last error (Epoch time). Definition of operational limits. Command to obtain the operational limits in use by the vehicle. Initiate overall calibration of a vehicle. Duration of calibration. Enable or disable control loops. Control loop mask. Unsigned integer reference for the scope of the control loop message. Scope reference should only be set by a maneuver. Should be set to an always increasing reference at the time of dispatching this message. Lower level controllers must inherit the same scope reference sent by maneuver. This same scope reference must be sent down to lower control layers. Detect current vehicle medium. Current medium. Vehicle is on the ground Vehicle is airborne Vehicle is at water surface Vehicle is underwater Vehicle medium is unknown Detected collision. Estimated collision acceleration value. Collision flags. Collision detected in the x-axis Collision detected in the y-axis Collision detected in the z-axis Sudden impact detected Monitoring variables to assert the formation tracking state, i.e., the mismatch between the real and the simulated aircraft position, the convergence state, etc. Mismatch between the real and the simulated aircraft position. Convergence evalution variable. Value indicates the position error to which the system is converging, tacking into account the aircraft current position error and velocity. Evaluation of the stream turbulence level, through the stream acceleration. Position mismatch monitoring flag. Communications monitoring flag. Convergence monitoring flag. Reports autopilot mode. Current mode autonomy level. Autopilot has no control Autopilot has some control Autopilot has full control Current mode name. Monitoring variables to assert the formation tracking state, i.e., the mismatch between the real and the simulated aircraft position, the convergence state, etc. Indicates if the message is a request, or a reply to a previous request. Operation to perform. Start the formation maneuver. Stop the formation maneuver. Mismatch between the real and the simulated aircraft position. Convergence evalution variable. Value indicates the position error to which the system is converging, tacking into account the aircraft current position error and velocity. Evaluation of the stream turbulence level, through the stream acceleration. Position mismatch monitoring flag. Communications monitoring flag. Convergence monitoring flag. This message is sent to trigger reports to a destination system. Operation to perform. Request a system to periodically send reports through 'interface'. The destination system will reply with a STARTED command. Periodicity will be defined by the field 'period'. If applicable, the destination address is defined in field 'dst'. The destination system will reply a message with this operation everytime a report is successfully started. The periodicity of reports is indicated in the field 'period' while the communication interface to be used is described in field 'interface'. If applicable, the destination address is defined in field 'dst'. Request a system to stop dispatching reports through a given communication interface described in 'interface'. The destination system will reply with a STOPPED command. If applicable, the destination address is defined in field 'dst'. The destination system will reply a message with this operation everytime a scheduled report is successfully stopped in a defined communication interface. If applicable, the destination address is defined in field 'dst'. Request a system to issue a single report in a defined communication interface. The destination system will reply with a REPORT_ISSUED command. If applicable, the destination address is defined in field 'dst'. The destination system will reply a single report request with this operation.If applicable, the destination address is defined in field 'dst'. Communication interface to be used for reports. Use acoustic communications Use satellite communications Use Global System for Mobile Communications Use mobile networks Use Radio telemetry Desired periodicity for scheduled reports. Destination Address to be filled where applicable. It should be interpreted differently depending on communication interface. Concise representation of entire system state. Time, in seconds, since January 1st 1970. Latitude of the system, in degrees. Longitude of the system, in degrees. Altitude of the system, in decimeters. * *0xFFFF* used for unknown / not applicable value. Depth of the system, in decimeters. * *0xFFFF* used for unknown / not applicable value. Calculated as `(rads * (0xFFFF / (2 * PI))` Speed of the system in centimeters per second. System fuel gauge. * *-1* means unknown fuel level. Progress of execution or idle state. * *-1* means Service mode * *-2* means Boot mode * *-3* means Calibration mode * *-4* means Error mode Checksum of the plan being executed. Request data to be sent over a specified communication mean. The unique identifier for this request. Communication mean to be used to transfer these data. The name of the system where to send this message. Deadline for message transmission (seconds since epoch). The meaning of this field depends on the operation and is explained in the operation's description. Type of data to be transmitted. Abort and Range mode can only be used with comm_mean=ACOUSTIC Data to be transmitted if selected *data_mode* is *INLINEMSG*. Data to be transmitted if selected *data_mode* is *TEXT*. Data to be transmitted if selected *data_mode* is *RAW*. Reply sent in response to a communications request. The meaning of this field depends on the operation and is explained in the operation's description. Request SMS Text sending. Recipient identifier (number or name). Period of time to send message (in seconds). Reply sent in response to a SMS sending request. Error description. Reports VTOL current state. Vehicle is not configured as VTOL. Vehicle is in transition from multicopter to fixed-wing. Vehicle is in transition from fixed-wing to multicopter. Vehicle is in multicopter state. Vehicle is in fixed-wing state. Reports if motors are currently armed or disarmed. Request data to be sent over a TCP connection Recipient identifier (number or name). Period of time to send message (in seconds). IMC message to be transmitted . Reply sent in response to a TCP sending request. Error description. This message is represents an Asset position / status. The human readable name of the asset. Time in seconds since epoch, for the generation instant. Stops any executing actions and put the system in a standby mode. Identity and description of a plan's general parameters, associated with plan loading (i.e. load plan command in *PlanCommand*). A plan specification is defined by a plan identifier, a set of maneuver specifications and a start maneuver from that set. See the :ref:`PlanManeuver` message for details on maneuver specification. The plan's identifier. Verbose text description of plan. Namespace for plan variables. Plan variables. Indicates the id of the starting maneuver for this plan. List of maneuver specifications. List of maneuver specifications. Contains an optionally defined 'MessageList' for actions fired on plan activation. Contains an optionally defined 'MessageList' for actions fired on plan termination. Named plan maneuver. The maneuver ID. The maneuver specification. Contains an optionally defined 'MessageList' for actions fired on plan activation. Contains an optionally defined 'MessageList' for actions fired on plan termination. Describes a plan transition within a plan specification. A transition states the vehicle conditions that must be met to signal the transition, the maneuver that should be started as a result, and an optional set of actions triggered by the transition. Comma separated list of maneuver IDs, or the special value '.' to identify a global plan transition. Target maneuver name. If it equals the special value '_done_' then plan should terminate with a success status. If it equals the special value '_error_' then the plan should terminate with an error status. Comma separated list of conditions for transition. Each condition identifier corresponds to a known predicate which is interpreted and tested internally by the vehicle. Messages processed when the transition is triggered. Request/reply to plan database. Indicates if the message is a request, or a reply to a previous request. Indicates the operation affecting the DB. The operation may relate to a single plan or the entire plan DB. For each request, a plan DB may reply with any number of 'in progress' replies followed by a success or a failure reply. The 'op', 'request_id' and 'plan_id' fields of a request will be echoed in one or more responses to that request. The operation at stake also determines a certain type of the 'arg' field, and whether or not the 'plan_id' field needs to be set. Set a plan in the DB. The 'plan_id' field identifies the plan, and a pre-existing plan with the same identifier, if any will be overwritten. For requests, the 'arg' field must contain a 'PlanSpecification' message. Delete a plan from the DB. The 'plan_id' field identifies the plan to delete. Get a plan stored in the DB.The 'plan_id' field identifies the plan. Successful replies will yield a 'PlanSpecification' message in the 'arg' field. Get DB state for a stored plan. The 'plan_id' field identifies the plan. Successful replies will yield a 'PlanDBInformation' message in the 'arg' field. Clear the entire DB. Get state of the entire DB. Successful replies will yield a 'PlanDBState' message in the 'arg' field but without individual plan information (in the 'plans_info' field of 'PlanDBState'). Get detailed state of the entire DB. Successful replies will yield a 'PlanDBState' message in the 'arg' field with individual plan information (in the 'plans_info' field of 'PlanDBState'). PlanDB replies of this type are sent automatically during bootstrap. Request ID. This may be used by interfacing modules, e.g. using sequence counters, to annotate requests and appropriately identify replies Plan identifier for the operation, if one is required. Request or reply argument. Human-readable complementary information. For example this may be used to detail reasons for failure, or to report in-progress information. Characterizes the state of the entire plan database. Number of stored plans. Size of all plans.The value equals the sum of the IMC payload sizes for 'PlanSpecification' stored in the DB. Time of last change (Epoch time). IMC address for source of last DB change. IMC node name for source of last DB change. MD5 database verification code. The MD5 hash sum is computed over the stream formed by the MD5 of all plans, ordered by plan id, in compliance with RFC 1321. Individual information for plans. Plan identifier. Plan size. The value equals the IMC message payload of the associated 'PlanSpecification' message in bytes. Time of last change to the plan (Epoch time). IMC address for source of last change to the plan. IMC node name for source of last change to the plan. MD5 plan verification code. The value is calculated over the message payload of the 'PlanSpecification', in compliance with RFC 1321. Plan control request/reply. Indicates if the message is a request or a reply to a previous request. The *op*, *request_id* and *plan_id* fields of a request will be echoed in one or more responses to that request. Plan control operation. Start plan identified by *plan_id* field. The command will try to load the corresponding plan if none is loaded, and in that case will follow the same discipline as the *LOAD* command. If the message in *arg* is a :ref:`Maneuver`, a single-maneuver plan will be generated and executed. This will override any current plan being executed. Stop current plan being executed if any. Load Plan. If a :ref:`PlanSpecification` is given with the request in the *data* field, then that plan is used and stored in the Plan DB. Otherwise, the plan is loaded from the Plan DB. Get loaded plan. For a successful reply, the *data* field will contain the :ref:`PlanSpecification` message that corresponds to the currently loaded plan. Request ID. This may be used by interfacing modules e.g. using sequence counters. to annotate requests and appropriately identify replies. The identifier for the plan to be stopped / started / loaded / retrieved according to the command requested (*op* field). Perform vehicle calibration. Execute current plan while ignoring some errors that might be active. Complementary message argument for requests/replies. Complementary human-readable information. This is used in association to replies. State of plan control. Describes overall state. Plan execution is blocked e.g., due to a vehicle error, or if no plan is loaded. Ready to start plan execution. Initializing plan for execution. Executing plan. Identifier of plan currently loaded. Current plan estimated time to completion. The value will be -1 if the time is unknown or undefined. Current plan estimated progress in percent. The value will be negative if unknown or undefined. Current node ID, when executing a plan. Type of maneuver being executed (IMC serialization id), when executing a plan. Current node estimated time to completion, when executing a plan. The value will be -1 if the time is unknown or undefined. Outcome of the last executed plan. Unknown or not filled. Last plan execution was successful. Last plan execution was a failure. A plan variable. This message is used to order the generation of plans based on id and set of parameters. Generate the plan and store it in the PlanDB. Generate (storing it in the PlanDB) and execute it immediately. Request the execution of this command. Some error has occurred while executing the command. The error can be found in the 'params' tuplelist (under the key 'error'). The requested command was executed successfully. The name of the plan to be generated. An optional list of parameters to be used by the plan generation module. This message defines the formation leader state. LeaderState is a complete description of the leader state in terms of parameters such as position, orientation and velocities at a particular moment in time. The system position is given by a North-East-Down (NED) local tangent plane displacement (x, y, z) relative to an absolute WGS-84 coordinate (latitude, longitude, height above ellipsoid). The symbols for position and attitude as well as linear and angular velocities were chosen according to SNAME's notation (1950). The body-fixed reference frame and Euler angles are depicted next: .. figure:: ../images/euler-lauv.png :align: center Euler angles Name for the formation group. Action on the formation leader state variables WGS-84 Latitude. WGS-84 Longitude. Height above the WGS-84 ellipsoid. The North offset of the North/East/Down field with respect to LLH. The East offset of the North/East/Down field with respect to LLH. The Down offset of the North/East/Down field with respect to LLH. The phi Euler angle from the vehicle's attitude. The theta Euler angle from the vehicle's attitude. The psi Euler angle from the vehicle's attitude. Ground Velocity xx axis velocity component. Ground Velocity yy axis velocity component. Ground Velocity zz axis velocity component. The angular velocity over body-fixed xx axis (roll). The angular velocity over body-fixed yy axis (pitch). The angular velocity over body-fixed zz axis (yaw). Stream Velocity xx axis velocity component. Stream Velocity yy axis velocity component. Stream Velocity zz axis velocity component. The name of the plan to be generated. Type of plan statistics, if they are launched before, during or after the plan execution. Basic plan, meaning it is Linear, Finite and Noncyclic. Plan is nonlinear. Plan is infinite in duration. Plan is cyclical. All properties checked. Maneuver and plan duration statistics in seconds, for example: Total=1000,Goto1=20,Rows=980 Distances travelled in meters in each maneuver and/or total: Total=2000,Rows=1800,Elevator=200 List of components active by plan actions during the plan and time active in seconds: Sidescan=100,Camera Module=150 Amount of fuel spent, in battery percentage, by different parcels (if applicable): Total=35,Hotel=5,Payload=10,Motion=20,IMU=0 A vehicle state that is reported to other consoles (including PDAConsole). Source can be acoustic tracker, SMS, Wi-Fi, etc... The reported depth. In the case of not knowing the depth 0 will be reported. Airplanes usually have negative values (por positive altitude). The phi Euler angle from the vehicle's attitude. The theta Euler angle from the vehicle's attitude. The psi Euler angle from the vehicle's attitude. The time when the packet was sent, as seen by the packet dispatcher. The number of seconds is represented in Universal Coordinated Time (UCT) in seconds since Jan 1, 1970 using IEEE double precision floating point numbers. The id of the system whose position is being reported (it can be a vehicle's id, a boat name, etc) How the position was received/calculated Whenever the CUCS receives a message from one of the existing sensors (through SMS, ZigBee, Acoustic Comms, ...) it disseminates that info recurring to this message. An unique string that identifies the sensor. Used mostly for logging/presentation. The class of a sensor tells the type of sensor originating this message. It will determine how the sensor is to be shown and (optionally) how the custom data (tuplelist) is to be interpreted. This message represents a simple map that is transferred between CCU consoles (from Neptus to ACCU) The id of the map A list of map features. A feature to appear on the map The unique identifier for this feature (used as the name for points of interest) The type of feature These features should appear as a point with a label in the map These features should be represented as a filled polygon (no label) These features should be represented as a countoured closed polygon (no fill and no label) These features should be represented as an open polygon (no label) A transponder location in the map Intended vehicle's starting location The offsets reference for this map The red component of the color for this point The green component of the color for this point The blue component of the color for this point The enclosing feature definition. This message represents a point in the world. This message is used to signal events among running CCUs. This message is sent by the TREX task which gives further information to a TREX instance about connected IMC nodes The name of the vehicle being controlled A list of Announce messages with last announces heard This message is sent to TREX to post timeline observations This message is used to control TREX execution The id of the goal, if applicable (OP == POST_GOAL || OP == RECALL_GOAL) The goal encoded as XML, if applicable (OP == POST_GOAL) This message is used to control TREX execution The id of the goal, if applicable (OP == POST_GOAL || OP == RECALL_GOAL) Goal / observation to post, if applicable (OP == POST_GOAL || OP == POST_TOKEN) Name of this attribute. Lower bound of this interval. Empty text means no bound. Upper bound of this interval. Empty text means no bound. This message is used for signaling asynchronous events between different (sub) systems. The name or type of this event A map with additional event information. State summary for a remote vehicle. WGS-84 Latitude. WGS-84 Longitude. Depth. Speed. Heading. Target. Target identifier. WGS-84 Latitude coordinate. WGS-84 Longitude coordinate. Z axis reference. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Course Over Ground (true). Speed Over Ground. Entity parameter. Name of the parameter. Current value of the parameter. List of entity parameters. Name of the entity. List of parameters. Request creating a new session with this remote peer. Example session sequence is shown in the following diagram. .. figure:: ../images/session_sequence.png :align: center Session timeout, in seconds. If no messages are received from the remote peer, the session will be closed after this ammount of seconds have ellapsed. Request closing of an ongoing session Comma-separated list of messages to subscribe. Example: "EstimatedState,EulerAngles,Temperature" Message exchanged to prevent a session from timing out Message transmitted periodically to inform the state of a communication session Notification of an I/O event. Event type. Human-readable error message. This message shall be sent to acoustic modem drivers to request transmission of a data frame via the acoustic channel. A sequence identifier that should be incremented for each request. This number will then be used to issue transmission status updates via the message UamTxStatus. The canonical name of the destination system. If supported, the special destination 'broadcast' shall be used to dispatch messages to all nodes. Transmission flags. On modems that support it, this flag shall be used to request an acknowledgment of reception from the receiving node. On modems that support it, this flag shall be used to delay the frame transmission until the modem needs to transmit control data (e.g., acknowledgment of reception, etc). Ignore safety checks such as "transducer not connected". The actual data frame to transmit. The data size shall not exceed the MTU of the acoustic modem. This message shall be dispatched by acoustic modem drivers each time a data frame is received over the acoustic channel. The canonical name of the node that transmitted the data frame. If this name cannot be resolved the string 'unknown' shall be used. The canonical name of the destination node of the data frame. If this name cannot be resolved the string 'unknown' shall be used. Reception flags. The data frame was transmitted to an acoustic modem other than the one the acoustic modem driver is controlling. The data frame was transmitted using the DELAYED flag. The actual received data frame. This message shall be used by acoustic modem drivers to send updates on the transmission status of data frames. The sequence identifier of the frame transmission request. Frame transmission status. The frame transmission was completed. The frame transmission failed. The reason for the failure is given in the field 'error'. The frame transmission was canceled. The acoustic modem driver is busy and could not honor the frame transmission request at the moment. The canonical name of the destination node could not be resolved. The frame transmission is in progress. The frame transmission request is not valid for this acoustic modem driver. The frame transmission request exceeds the MTU of the acoustic modem. The message has been sent out. Message has been acknowledged by the destination. Transducer not connected to the acoustic modem. Where applicable this field shall contain a human-readable message explaining the error. Acoustic range measurement. The sequence identifier of the ranging request. The canonical name of the ranged system. The actual range. Negative values denote invalid measurements. Request an acoustic modem driver to measure the distance to another system. A sequence identifier that should be incremented for each request. This number will then be used to issue transmission status updates via the message UamTxStatus. The canonical name of the target system. Maximum amount of time to wait for a reply. Formation controller paramenters, as: trajectory gains, control boundary layer thickness, and formation shape gains. Action on the vehicle formation control parameters. Trajectory gain over the vehicle longitudinal direction. Trajectory gain over the vehicle lateral direction. Control sliding surface boundary layer thickness. Formation shape gain (absolute vehicle position tracking). Leader control importance gain (relative to the sum of every other formation vehicle). Collision avoidance and formation shape gain (position tracking relative to the other formation vehicles). Individual vehicle importance gain (relative to the leader), when the relative position or the velocity state indicate higher probability of collision. Formation control performance evaluation variables. Mean position error relative to the formation reference. Overall minimum distance to any other vehicle in the formation. Mean minimum distance to any other vehicle in the formation. Formation controller paramenters, as: trajectory gains, control boundary layer thickness, and formation shape gains. Action on the vehicle formation control parameters. Trajectory gain over the vehicle longitudinal direction. Trajectory gain over the vehicle lateral direction. Control sliding surface boundary layer thickness. Formation shape gain (absolute vehicle position tracking). Leader control importance gain (relative to the sum of every other formation vehicle). Collision avoidance and formation shape gain (position tracking relative to the other formation vehicles). Individual vehicle importance gain (relative to the leader), when the relative position or the velocity state indicate higher probability of collision. Switch gain to compensate the worst case of the wind flow acceleration. Inter-vehicle safety distance. Distance offset which defines the buffer area beyond the safety distace. Safety margin to compensate for possible shortfalls from the predicted maximum acceleration that a vehicle can generate. Maximum predicted longitudinal acceleration a vehicle can generate. Formation control performance evaluation variables. Indicates if the message is a request, or a reply to a previous request. Operation to perform. Start the formation maneuver. Stop the formation maneuver. Stop the formation maneuver. Stop the formation maneuver. Stop the formation maneuver. Mean position error relative to the formation reference. Overall minimum distance to any other vehicle in the formation. Mean minimum distance to any other vehicle in the formation. Mean minimum distance to any other vehicle in the formation. Period over which the evaluation data is averaged. Formation controller paramenters during the evaluation period. This message is used to send a fragment of a message. The fragments are sent in order, and the receiver must reassemble them in the correct order. The receiver can use the MessagePartControl message to inform the sender of the status of the fragment transmission. This message is used by the receiver of MessageParts messages to inform the sender of the status of the reception of a message in fragments. The sender can then use this information to determine which fragments were received and which ones were not. This message is sent in response to a MessagePart message. The status of the fragment transmission was received. The sender is requesting retransmission of the fragments. Comma-separated list of fragment numbers. Example: "1,2,3". This field is used to inform the sender of the fragments that should be considered. If this field starts with '!', it means that the indicated fragments should not be considered. Example: "!1,2,3" means that all fragments should be considered except 1,2,3. With this field equal to only "!" it means that all fragments must be considered. This message signals that an :ref:`Abort` message was received and acted upon. This message contains information, collected using USBL, about the bearing and elevation of a target. Target's IMC address. Target's bearing. Target's elevation. This message contains information, collected using USBL, about a target's position. Target's IMC address. X coordinate of the target in the local device's reference frame. Y coordinate of the target in the local device's reference frame. Z coordinate of the target in the local device's reference frame. This message contains the WGS-84 position of a target computed using USBL. Target's IMC address. WGS-84 Latitude. WGS-84 Longitude. Units of the z reference. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Message containing the parameters XML of the source system. The locale used to produce this parameters XML. The parameters XML file compressed using the GNU zip (gzip) format. Request the destination system to send its parameters XML file via a :ref:`ParametersXml` message. Message containing the x and y coordinates of object to track in remote peer. Camera identifier. X coordinate of the target in the image frame. Y coordinate of the target in the image frame. Message containing the x and y coordinates of object to track in image slave. Camera identifier. X coordinate of the target in the image frame. Y coordinate of the target in the image frame. Message containing the x, y and z coordinates of object in the real world. True when system is tracking. Latitude of the real world frame origin. Longitude of the real world frame origin. X offsets of the target in the real world frame. Y offsets of the target in the real world frame. Z offsets of the target in the real world frame. This message contains information, collected using USBL, about the bearing and elevation of a target. Target's system name. Target's bearing in the local device's reference frame. Target's elevation in the local device's reference frame. Target's bearing in the navigation reference frame. Target's elevation in the navigation reference frame. Rotation around the device longitudinal axis. Rotation around the device lateral or transverse axis. Rotation around the device vertical axis. Accuracy of the fix. This message contains information, collected using USBL, about a target's position. Target's system name. X coordinate of the target in the local device's reference frame. Y coordinate of the target in the local device's reference frame. Z coordinate of the target in the local device's reference frame. X coordinate of the target in the navigation reference frame. Y coordinate of the target in the navigation reference frame. Z coordinate of the target in the navigation reference frame. Rotation around the device longitudinal axis. Rotation around the device lateral or transverse axis. Rotation around the device vertical axis. Accuracy of the position fix. This message contains the WGS-84 position of a target computed using USBL. Target's system name. WGS-84 Latitude. WGS-84 Longitude. Units of the z reference. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Accuracy of the position fix. Position and configuration of an Ultra-Short Base Line modem. Name/Label of the acoustic modem. WGS-84 Latitude coordinate. WGS-84 Longitude coordinate. Target reference in the z axis. Use z_units to specify whether z represents depth, altitude or other. Units of the z reference. Ultra-Short Base Line configuration. Used to define the type of the operation this message holds. Set the beacons configuration aboard the vehicle. Request the vehicle to send its current beacons configuration. A list of USBL modem configuration messages. Dissolved Organic Matter measurement. Dissolved Organic Matter reading. Type of measurement. The optical backscattering coefficient refers to all the photons that have been redirected in the backward directions when a photon of light propagates in water and interacts with a "particle" (varying from water molecules to fish). Optical Backscattering Coefficient. This messages is used to record system activity parameters. These parameters are mainly used for used for maintenance purposes. The time when the last service was performed. The number of seconds is represented in Universal Coordinated Time (UCT) in seconds since Jan 1, 1970. Amount of time until the next recommended service. Amount of time the motor can run until the next recommended service. Amount of time the system spent idle on the ground. Amount of time the system spent idle in the air. Amount of time the system spent idle on the water (not submerged). Amount of time the system spent idle underwater. Amount of time the system spent idle in an unknown medium. Amount of time the system spent on the ground with the motor running. Amount of time the system spent in the air with the motor running. Amount of time the system spent on the water (not submerged) with the motor running. Amount of time the system spent underwater with the motor running. Amount of time the system spent in an unknown medium with the motor running. The minimum recorded RPM value. The maximum recorded RPM value. The maximum recorded depth value. StatusText message from ardupilot. Severity of status. Status text message. Readings from SADC board. Channel of SADC to read. Value raw of sadc channel. Gain value of readings. Presence of DMS (Dimethyl Sulphide). If the value of the channel is greater than zero, it means DMS was detected. Vehicle Home Position. Action on the vehicle home WGS-84 Latitude. WGS-84 Longitude. Height above the WGS-84 ellipsoid. Depth, in meters. To be used by underwater vehicles. Negative values denote invalid estimates. Altitude, in meters. Negative values denote invalid estimates. Measurement of absolute wind speed (Meaning without vehicle effects). Direction of the measured wind speed. The value of the wind speed as measured by the sensor. Wind turbulence intensity. Message containing static or dynamic AIS data received onboard the vehicle. Integer indicating the message type: 1,2,3,5, ... The class of a sensor tells the type of sensor originating this message. It will determine how the sensor is to be shown and (optionally) how the custom data (tuplelist) is to be interpreted. An unique string that identifies the sensor/vessel. Distance to own vehicle. Size of the vehicle (length = A + B, width = C + D) Contains information as extracted from a digital S-57 chart. This can be: location of static objects (buoys, beacons, etc), location and depth of depth contours, location and depth of any other location contained in the chart. For reference see Supervisors/Grounding. Example: "lat=63.46869;lon=10.37790;d=-10" Example: "lat=63.46869;lon=10.37790" Component of incremetal position vector over a period of time. The device time. X component. Y component. Z component. Contains a profile of water velocities measured relative to the vehicle velocity, represented in the specified coordinate system. Number of ADCP beams. Number of ADCP cells. Coordinate system of the velocity measurement. List of current profile measurement cells. One Current measurement at a specific CellPosition. Distance of each measurment cell along the Z-axis in the coordintate frame. List of beams measurements at the current cell level. Measurement from one specific beam at the given CellPosition. Water Velocity is provided in the chosen Coordinate system. Amplitude and Correlation are always in the BEAM coordinate system. Water velocity measured in the chosen coordinate system. Amplitude of returning ping for the beam. Autocorrelation of returning ping for the beam. Frequency value. This message reports various parameters related to ocean wave characteristics, including height, direction, and period. The average height of the highest one-third of waves in a wave spectrum, representing overall sea state. The dominant direction from which waves are propagating at their peak energy level. The time interval between successive wave crests at the peak energy level. The significant wave height generated by wind-driven waves. The significant wave height attributed to long-period swells. The dominant period of wind-generated waves. The dominant period of long-period swells. The primary direction of wind-generated waves. The primary direction of swell waves. The average direction of all waves in the wave spectrum. The mean period of ocean waves based on the spectral moment calculation. The maximum wave height observed in a given period. The height of the highest point of a wave above the mean water level. The depth of the lowest point of a wave below the mean water level. The longest observed wave period within a given time frame. The mean zero-crossing period of waves, an indicator of average wave duration. The mean height of the highest one-third of measured waves, commonly used to describe sea conditions. The average angular dispersion of wave energy across different directions. The first-order measure of directional wave spreading. A parameter indicating the degree to which waves are long-crested or short-crested. The vessel’s orientation relative to true north. The angular motion of the vessel along its transverse axis. The angular motion of the vessel along its longitudinal axis. The heading measurement obtained from an external source, such as a GPS compass. The standard deviation of heading measurements, indicating heading stability. The standard deviation of pitch measurements, indicating variability in vessel movement. The standard deviation of roll measurements, indicating fluctuations in vessel roll motion. Current state of a GPIO. GPIO Name. Logical level of the GPIO. Request the state of a given GPIO. The receiving entity shall reply with a GpioState message. GPIO Name. Set the state of a given GPIO. The receiving entity shall reply with a GpioState message. GPIO Name. Logical level of the GPIO. Colored Dissolved Organic Matter measurement. Colored Dissolved Organic Matter reading. Fluorescent Dissolved Organic Matter measurement. Fluorescent Dissolved Organic Matter reading. Total Magnetic Field Intensity (TMI) This message is used to restrict the vehicle from using some communication means. The restricted communication means. Textual description for why this restriction is needed. This message can be used to query/report the entities and respective parameters in the system Operation to perform. Echoes the request_id in the request Entity Label of the task that's replying to the request Contains an optionally defined List of TypedEntityParameter as a response to a TypedEntityParamaters Request. Additionally, if the entity has a custom editor, this message will contain the information to load it with a single TypedEntityParameterOptions message in the list. Entity parameter with all the data that defines an entity parameter. Name of the parameter. Default value of the parameter. The units of the field, if applicable Description of the parameter Comma-separated list of possible values Optional. Min value of the parameter Optional. Max value of the parameter When the parameter is a list, list_min_size indicates the minimum size of the list When the parameter is a list, list_max_size indicates the maximum size of the list A list of ValuesIf messages Parameter is visible and editable by the user. Parameter is visible and editable by the user bu in developer view. The same as for User, but the parameter is not editable. The same as for Developer, but the parameter is not editable. This message is used to describe the ValuesIf content of a TypedEntityParameter. Name of parameter to compare Value to compare List of possible values if param=value This message is used to query / report version information related to an entity. Operation to perform. Report the entity list. Request the entity list. Version of the entity. Description of the entity. This message is used to report the cumulative heading value. Cumulative heading value, in radians. This message is used to describe the ValuesIf content of a TypedEntityParameter. String name of the editor to be used for this entity parameters. This value is advisory only. The receiving end should try to honor it, for the edition respect more complicated logic that Values-If can provide.