My Requests

Drivers Manual

REMUS AUV (CARXD) ROV Depth - Altitude - 31


Driver to decode positions, headings, depths, altitude and CAD/CAC target information from an Autonomous Underwater Vehicle (AUV).

This paragraph describes the communication protocol to interface with the Utility Acoustic Modem (UAM) of a Remote Environmental Measuring UnitS (REMUS) AUV, developed by Woods Hole Oceanographic Institution (WHOI).

The communication protocol consists of two layers:

  1. ACOMMS NMEA-like micro-modem protocol to transfer data from a buoy to other locations.
  2. Hexadecimal coded structure to transfer data from a REMUS AUV to the buoy.

Driver Information



Interface Type Serial

Driver class type


UTC Driver (question)


Input / Output Input



Related Systems
Related Pages

Decoding Notes

The MDAT_STATE message is always decoded if a positioning system, gyro system or depth/altitude system has been defined in the database setup. By default, MDAT_BATHY and MDAT_CTD are not decoded; they are only decoded if certain registry options have been set and if a positioning system or depth/altitude system has been defined. MDAT_CADCAC is only decoded if an AIS system has been defined in the database.

The time information contained in the MDAT_STATE is currently not used by the REMUS AUV driver, because QPS hasn't got enough information to be able to assess its usability. The other messages have no time field. Positions and other observations are now time-tagged at the moment they arrive at the COM port.

Operation Mode. The position mode (solution mode) of a position contains the vehicles operation mode from  the MDAT_STATE messages. Its value can be monitored in a Positioning System Display or it can be used to set a raw data alert in a Alert Display. Normal mission operation has got a value 6, but value 7 has also been encountered. Note. In Qinsy versions prior to 2004.02.25 these were decoded as 12 and 14.

Battery Percentage. The quality field of a heading, depth or altitude observation contains the percentage of the battery capacity that remains from the MDAT_STATE messages. It can be monitored in an Observation Physics Display or Alpha Numerical Display, or it can be used to set a raw data alert in a Alert Display.

CAD/CAC Targets. Each MDAT_CADCAC message contains three sets of detected targets. The name of a detected target will be "CADCAC [n]", where 'n' is the source unit that detected the target. Each detection will have 3 scores representing the results of 3 different processing algorithms. A perfect score is 100%. The average score is saved as AIS call sign and the 3 individual scores are saved as AIS destination, so that they can be made visible in a Navigation Display. The three detected targets are saved as observations in the raw database (if recording is on) and exported to a line database as points, for example target 'i' from AUV 'n':





CADCAC [n] i

100 - (average score)

average score

score 1, score 2, score 3; average; lat; lon

Note. The radius is an indication of the average score; the smaller the radius, the better the confidence.

Database Setup

In order to use multiple AUV positions, add a new "Object" for each AUV and add a "System" of type "Position navigation system" to each of the objects. Be sure to select the same driver and I/O parameters. Enter the appropriate source unit as receiver number. Since depths can be with respect to mean sea level, make sure to select the appropriate vertical datum. In order to decode the headings, add a "System" of type "Gyro" to each object. Enter the source unit as gyro observation slot id. To decode depths and/or altitudes, add a "System" of type "Underwater Sensor" to each object and add a depth and/or an altitude observation. Use source unit as slot number. Note. Altitude values are only present in MDAT_BATHY messages.

CAD/CAC targets. In order to decode the CAD/CAC messages, add a system of type "AIS system" to the database setup, with driver "REMUS AUV ($CARXD) CAD/CAC Targets", which will end up under "Auxiliary Systems". All decoded CAD/CAC targets will be stored real-time to a line database called "CADCAC" in the line data folder of the current project. The targets can be monitored in an Observation Physics Display and will pop up in a Navigation Display, if the proper settings have been set.


CAD/CAC targets. In order to monitor the decoded CAD/CAC targets in an Observation Physics Display, select the AIS system name.
The name of an AIS target is displayed as "type (id) name", so for example the first detection with target ID 3 from a CADCAC message will be displayed as "mine (3001) CADCAC [n]".

CAD/CAC targets. Decoded targets can be shown on a Navigation Display in two manners. (1) "Layers - Line Database ...". Add the "CADCAC" from the current project.
The detected targets will be shown as points, with the radius indicating the average score. (2) "Layers - AIS Targets ...". Show targets including information or not. Newly detected targets will be visible for 30 seconds (registry setting).


CAD/CAC targets. If CAD/CAC targets have been saved to a storage database, the export option in the Raw Data Manager ("Replay" button in the Qinsy Console) can be used to export them to a line database file.

If CAD/CAC targets have been saved to a line database (i.e. "CADCAC" in the line data folder of the current project), they can be shown, edited and deleted using the Line Data Manager.
Select "Edit Points" to get the list of targets. Hovering over a target will pop up a window showing scores and position.

Drivers IO Notes command line parameter "NOCS" disregards the checksum field.
Omitting this parameter or using parameter "CS" will not decode the data when the checksum calculation fails.
Parameter "WHOI" will set the format to the one described in this paragraph, but this is the only format the current driver supports.

Registry Options


Registry Key




Decode Bathy


-1, 0, 1, 2

Disregard MDAT_BATHY  (-1) or decode Nth position

Decode CTD


-1, 0, 1  

Disregard MDAT_CTD (-1) or decode Nth position

Note. The position index to decode is zero-based, so enter 0 for first data set, 1 for the second one, etcetera.

Communication with REMUS AUV's through a buoy can be very slow, only a couple of MDAT_STATE messages per minute, so it is advisable to also use positions from the MDAT_BATHY and MDAT_CTD messages.
According to WHOI personnel, these positions are valid as well.
Apparently, the last data set in the messages is the most recent one, so use 2 for registry key "Decode Bathy" and 1 for "Decode CTD".