📖
Cerulean Sonar Docs
Docs DirectoryStore
DVL-75
DVL-75
  • DVL-75
  • Overview
    • General Specifications
    • General Use Cases
    • The Basic System
    • System Components
    • Comparison of Tracker 650 and DVL-75
  • Usage Considerations and Scenarios
    • General Usage
    • Scenario: GPS Emulation
    • Scenario: Holding Position
    • Scenario: Autonomous Waypoint Navigation
    • Scenario: Returning to a Series of Known Positions
    • Scenario: Returning to Home
    • Scenario: Using GPS Assist
    • Scenario: Doing Your Own Dead Reckoning
    • Additional Connection Possibilities
    • General Hints and Tips
    • Operation in a Pool
  • Using MAVLink and BlueOS for Position Hold on a BlueROV2
    • ArduPilot Parameters
    • DVL Setup for MAVlink Support
  • Using Other Than the Bottom for the DVL (Side-Tracking Capability)
    • Side-Tracking Capability Design Use-Cases
    • Side-Tracking Capability Considerations
  • Mounting the DVL Components
    • Sensor Head Typical Mounting
    • Sensor Head Side-Tracking Mounting Alignment
    • All-in-One and Most-in-One Mounting Considerations
    • Mounting the Electronics Stack
    • Mounting an Auxiliary GPS
  • Assembling the Electronics Stack
    • Cerulean 300m Electronics Enclosure Assembly
  • Inertial Measurement Unit (IMU)
    • Baseline IMU Calibrations
    • Baseline IMU Background
    • Baseline IMU Blind Initial Calibration Procedure
    • Baseline IMU Status-Assisted Initial Calibration Procedure
    • Baseline IMU Calibration for Each Mission or Each Time Power is Applied
    • Upgraded IMU Calibration for Each Mission or Each Time Power is Applied
  • Communicating with the DVL
    • Factory Defaults and Default Messages
    • The Ethernet Interface
    • Tips on How to Find the IP Address Assigned to Your Ethernet Adapter
    • The Serial Interface
    • Resetting the Communications Parameters to Factory Default
    • What Do the LEDs Mean?
    • Outgoing Message Formats, DVL to Host
      • $GPRMC: NMEA standard Recommended Minimum GPS/Transit Data
      • $DVEXT: DVL Extended Data
      • $DVPDL: DVL Position and Angle Deltas Message
      • Freeform Error and Informational messages ($DVTXT)
      • Re-Tweeted GPS Messages
      • Re-Tweeted IMU Messages (IMU Raw Data)
      • $DVKFA, $DVKFB Kalman Filter Support Messages
        • Driving your own Kalman Filter
    • Commands Accepted by the DVL
      • $GPRMC
      • SET-POSITION
      • CONFIGURATION
      • SUPPRESS-GPS
      • DECLINATION
      • SET-SPEED-OF-SOUND
      • SET-VELOCITY-ADJUSTMENT
      • SEND-GPRMC
      • SEND-DVEXT
      • SEND-DVKFA
      • SEND-DVKFB
      • SEND-FREEFORM
      • SEND-DVPDL
      • RETWEET-GPS
      • RETWEET-IMU
      • SET-SENSOR-ORIENTATION
      • GRAB-IMU-CAL
      • VOID-IMU-CAL
      • BAUD-RATE
      • IP-ADDRESS
      • HOST-ADDRESS
      • MAVLINK-ADDRESS
      • FALLBACK-ADDRESS
      • UNICAST-TO-ME
      • PAUSE
      • RESUME
      • REBOOT
    • Blue Robotics Ping360 Discovery Protocol (Ethernet Only)
    • ARP (Address Resolution Protocol)
    • DHCP (Dynamic Host Configuration Protocol)
    • Ping (Internet Control Message Protocol Ping)
    • Mechanical Drawings
      • Mounting Dimensions, Sensor Head
      • Mounting Dimensions, Electronics Stack
      • RAM Mount Adapter Plate
      • Electronics Stack Assembly Drawing
      • Mounting Bracket for 300m Electronics Enclosure
      • Mounting Bracket for Sensor Head or Electronics Enclosure, fits BlueROV2 Heavy Thruster Guard
      • Mounting Bracket for All-in-One Enclosure, fits BlueROV2 Heavy Thruster Guard
      • Mounting Dimensions, Cerulean 300m Enclosure
      • Mounting Dimensions for the Cerulean All-in-One Enclosure
      • Mounting Dimensions, Cerulean GPS
  • Electrical Drawings
    • Serial Cable Supplied with Baseline Electronics Stack
    • DVL Serial Connection Example
    • Power over Ethernet (POE) Cabling
    • Standard Ethernet Pinouts
    • Optional GPS Wiring
    • Sensor Head Wiring
    • Using External Power with Serial Cable
    • Serial to USB Interface Using Blue Robotics BLUART Board
  • CAD Models
  • Appendix – Coordinate Systems
  • Copyright
Powered by GitBook
On this page
  1. Communicating with the DVL
  2. Outgoing Message Formats, DVL to Host

$DVKFA, $DVKFB Kalman Filter Support Messages

PreviousRe-Tweeted IMU Messages (IMU Raw Data)NextDriving your own Kalman Filter

Last updated 1 year ago

When you want to use DVL input into your ow system Kalman Filter or if you have a high-grade IMU you wish to use instead of the DVL's built-in, we supply two data messages you can use: $DVKFA and $DVKFB. The messages have identical content but different encoding. $DVKFA is an NMEA-like string of ASCII data fields separated by commas. $DVKFB is a packed binary representation of the same data so you do not have to suffer the overhead of converting ASCII to binary.

Both messages types are sent to either serial or Ethernet, but you may find it difficult to parse the boundaries of the $DVKFB message when receiving it on a serial port as there are no reserved control characters marking end-of-message in a binary message.

Binary data is in three different formats: IEEE-754 single-precision floating point (four bytes in little-endian format), unsigned 32 bit integer (four bytes in little-endian format), and C-string (ASCII characters terminated with a null character).

Field are listed below. The offset numbers are byte offsets into the $DVKFB message.

Field 0 (offset 0). Each message starts with an NMEA tag, either $DVKFA or $DVKFB. IN $DVKFB the field is exactly 8 bytes long including the terminal null.

Field 1 (offset 8). Message version, an unsigned 32 bit number. This is a bit vector describing which data groups are included. The initial release has a version of 0x0000000F. If the message version changes we will provide mode clarity on the bit fields, and we will also endeavor to endure that the new messages are backwards-compatible with this message.

Field 2 (offset 12). Sequence Number, an unsigned 32 bit number that starts at 0 and increments by 1 each time a message is sent. $DVKFA and DVKFB have independent sequence numbers.

Field 3 (offset 16). Delta-Time, a single-precision floating point number denoting the number of seconds of time included the this measurement. Standard values are 0.05, 0.1, and 0.2, although other values are possible if you use the manual-control message.

Field 4 (offset 20). System-Time, a single-precision floating point number denoting the system clock value in seconds, which starts at 0 at boot-up and counts up.

Field 5 (offset 24). Down-angle, a single-precision floating point number denoting the angle in degrees from horizontal of the sensor cones. This is 70.0 unless you have an experimental sensor head.

Field 6 (offset 28). IMU status string. This is a fixed 12-byte field with at least one terminal null. If using a baseline IMU, the value will be a four-digit number (see for a description of the digits). If using an enhanced IMU this field will read either "OK" or "WAIT".

Field 7 (offset 40). Quaternion W, a single-precision floating point number. The quaternion is in the sensor frame and will read (1,0,0,0) when the sensor is level WRT gravity and the X-axis is pointed east.

Field 8 (offset 44). Quaternion X, a single-precision floating point number.

Field 9 (offset 48). Quaternion Y, a single-precision floating point number.

Field 10 (offset 52). Quaternion Z, a single-precision floating point number.

Field 11 (offset 56). Sensor channel A, a group of five values. The measurement cone on channel A is lined up with the +X axis with the down-angle mechanically applied.

Each sensor channel includes the following data, in this order (offsets are for the $DVKFB message and are offset from the channel base offset):

  1. (offset 0). Range to best estimate of bottom, a single-precision floating point number. If the channel is not locked, this is -1, otherwise it ranges from 0.1 to about 50 meters.

  2. (offset 4). Velocity along the sensor cone's axis, a single-precision floating point number. If the channel is not locked, this is 0, otherwise it ranges from about -10 m/s to +10 m/s. A positive velocity means the sensor is approaching the reflecting object.

  3. (offset 8). Confidence, a single-precision floating point number. If the channel is not locked, this is 0, otherwise it ranges from 0 to 1000+. Confidence is a measure of the variance of a synthesized Doppler signal (based on the parameters of measurement) compared to the measured signal. The larger the number, the more confidence that the estimated Doppler velocity represents the actual Doppler velocity.

  4. (offset 12). Gain, a single-precision floating point number the denoted the current gain in dB of the automatic gain control system for this channel. It ranges from 6 to 66 dB.

  5. (offset 16). Locked, an unsigned 32 bit number that indicated if the channel processor detected a valid return signal. A value of 1 means a valid detection, a value o 0 means no valid detection.

Field 12 (offset 76). Sensor channel B, a group of five values. The measurement cone on channel B is lined up with the -Y axis with the down-angle mechanically applied.

Field 13 (offset 96). Sensor channel C, a group of five values. The measurement cone on channel C is lined up with the -X axis with the down-angle mechanically applied.

Field 14 (offset 116). Sensor channel D, a group of five values. The measurement cone on channel D is lined up with the +Y axis with the down-angle mechanically applied.

Field 15 (offset 135). End-of-message tag, an unsigned 32 bit number that should have the value 0x0055AAFF. This has no purpose other than an indication that you have counted the preceding fields properly.

here