ATLAS
The ATLAS format is a fixed-length binary protocol used as the default motion sensor output for Atlas Fansweep echo sounders.
Data:
Roll, pitch
Heave
Format:
<DLE><Rr><Pp><Hh><Q><DLE>
ATLAS Fansweep 20 protocol description | |||||
---|---|---|---|---|---|
FIELD N. | FIELD | DESCRIPTION | UNIT | DATA TYPE | NOTE |
Byte 0 | DLE | start character | - | HEX | Control character: 0x10. Used to indicate the start of the message. |
Byte 1-2 | R | roll MSB | [deg] | U16 | Range: [0, 360] deg. Resolution: 360/2^16 degrees per bit. |
r | roll LSB | ||||
Byte 3-4 | P | pitch MSB | [deg] | U16 | Range: [270, 90] deg. Resolution: 360/2^16 degrees per bit. |
p | pitch LSB | ||||
Byte 5-6 | H | heave MSB | [mm] | I16 | Sign: Positive (+) when elevated. Range: [-32767, 32766] mm. Resolution: 1 mm per bit. |
h | heave LSB | ||||
Byte 7 | Q | status code from 0 to 7 | - | U8 | See status table below for details. |
Byte 8 | DLE | stop character | - | HEX | Control character: 0x10. Used to indicate the end of the message. |
Status code:
ATLAS status code description | ||
---|---|---|
STATUS CODE | DESCRIPTION | NOTE |
0 | unaided, stable data | The MRU operates without external input and provides stable data. |
1 | unaided, unstable data. | No external input is used, and the data is unstable, likely due to alignment after power-on or restart. |
2 | speed aided, stable data. | The MRU uses external speed data and provides stable measurements. |
3 | speed aided, unstable data | The MRU receives external speed data, but its output is unstable, likely due to alignment after power on, or input of speed data. |
4 | heading aided, stable data | The MRU uses external heading data and provides stable measurements. |
5 | heading aided, unstable data | The MRU receives external heading data, but its output is unstable, likely due to alignment after power on, or input of heading data. |
6 | full aided, stable data. | The MRU uses both speed and heading data as external inputs and provides stable measurements. |
7 | full aided, unstable data. | The MRU operates with external speed and heading data, but the output is unstable, likely due to alignment after power on, or input of aiding data. |
Example:
ATLAS frame with raw example data is listed below.
Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 |
---|---|---|---|---|---|---|---|---|
0x10 | 0x1E | 0x85 | 0x0F | 0xA0 | 0x12 | 0x34 | 0x02 | 0x10 |
Decode raw U16 values from the ATLAS frame above to get roll, pitch and heave by using hex-to-decimal conversion and the resolution.
Roll calculation
Resolution: 360/2^16 degrees per bit = 0.005493164 degrees per bit.
Roll U16 value (big-endian): (0x1E x 256) + 0x85 = (30 x 256) + 133 = 7813.
Roll angle = roll U16 value x resolution = 7813 x 360/2^16 degrees = 42.92 degrees.
Pitch calculation
Resolution: 360/2^16 degrees per bit = 0.005493164 degrees per bit.
Pitch U16 value (big-endian): (0x0F x 256) + 0xA0 = (15 x 256) + 160 = 4000.
Pitch angle = pitch U16 value x resolution = 4000 x 360/2^16 degrees = 21.97 degrees.
Heave calculation
Resolution: 1 mm per bit.
Heave U16 value (big-endian): (0x12 x 256) + 0x34 = (18 x 256) + 52 = 4660.
Heave = heave U16 value x resolution = 4660 x 1 mm = 4.66 m.
Status code
Status code: 0x02 = 2.
This refers to status code 2: speed aided, stable data.
Note 1
Atlas follows big-endian format: MSB is stored at the lowest memory address, followed by the LSB.
Note 2
The reference frame for data (e.g., heave) is configurable in the ATLAS protocol. Also, the data's location (e.g., MRU or MP1) is configurable.