Working with an AHRS

The Signature instruments have a built in accelerometer and magnetometer to provide correct data for the instrument tilt and heading. This approach works well for a fixed instrument; the standard sensor gives you correct instantaneous heading in static conditions. Also, the standard sensor will still be correct on average – even in dynamic* conditions. However, for an instrument on a moving platform, for instance on a buoy, the tilt data derived from the accelerometer will be disturbed by the acceleration due to motion, and consequently introduce significantly errors into the ADCP data. By using a more advanced Attitude Heading Reference System (AHRS)  all components of the motion will be measured and enables an ADCP to accurately correct its data.

More specifically, the AHRS is comprised of three main components:

  • 3-axis accelerometer, 
  • 3-axis magnetometer
  • 3-axis rotation rate sensor (gyro)

With the information from the gyroscope it enables the sensor to differentiate acceleration of the ADCP from the acceleration of gravity. Consequently, an AHRS substantially improves the ADCP’s knowledge of its tilts, which in turn improves the ADCP’s data in highly dynamic conditions. 

*Dynamic conditions means that the instrument is moving/there is motion involved.

 The Signature can be configured to output velocities in either beam, XYZ or ENU coordinates when using the AHRS (just as with the standard sensor).

Terminology

Orientation Combined heading and tilt orientation
Accelerometer Measures linear acceleration (i.e. back and forth, up and down) and rotational accelerations
Gyro/Gyroscope Measures rotational velocity
Magnetometer Measures changes in magnetic field strength.
AHRS Attitude and Heading Reference System
IMU Inertial Motion Sensor – For Vectors only. Not covered in this document

 

Requirements

The AHRS is a feature that requires additional hardware and replaces the original sensor board. All instruments in the Signature series, as well as older Signature instruments can be factory upgraded with AHRS.

 

Functionality

AHRS is used to determine heading, pitch, roll, altitude etc. It consists of a triaxial accelerometer, triaxial gyroscope and triaxial magnetometer. Heading can be effectively determined through the use of dual-axis magnetometer and triaxial accelerometer sensors available, and with the information from a triaxial gyroscope it is possible to take tilt into account too. 

Key specifications:
Accelerometer dynamic range: +/- 2g
Gyro dynamic range: +/- 250 °/s
Magnetometer dynamic range +/- 1.3 Gauss
Range Pitch and Roll: +/- 90 ° (pitch), +/- 180 ° (roll)
Attitude accuracy +/- 2 ° (dynamic)* +/- 0.3 ° (static, +/- 30 °)
Attitude heading range 360 °, all axis
Heading accuracy +/- 5 ° (dynamic)*, 2 ° for tilt < 20 ° (static)
Sampling rate: Same as the configured measurement output rate (up to 16 Hz)


*Dynamic specifications depends on the type of motion

 

Data output

Data output is instantaneous heading, pitch, roll, acceleration, magnetometer- and gyro data, and orientation matrices. The orientation output can be specified in one of three ways; as quaternions, as Euler angles or as rotation matrices. These parameters are output for each data package, which means that with an AHRS the memory requirements goes up compared to the standard sensor.

 

Internal processing of the AHRS output

A quaternion is a way to represent 3D rotations. Instead of using angles (like pitch, roll, heading) or rotation matrices, quaternions give you a more stable and compact way to handle rotations.

A quaternion is made up of 4 numbers:

  • One real part: w
  • Three imaginary parts: x, y, z
  •  

It’s usually written like this: 

\begin{equation}
q = w + xi + yj + zk 
\end{equation}
(1)

For example: q = (0.707, 0.0, 0.707, 0.0) would represent a 90° rotation around the Y-axis.

The quaternions produced by the AHRS are received by the ADCP and transformed into the output format specified: Eulerian Angles or a Rotation matrix.

 

Quaternion to Rotation matrix

A quaternion an be converted to a 3×3 rotation matrix R using this formula:

\begin{equation}
R = 
\begin{bmatrix}
1 - 2(y^2 + z^2) & 2(xy - wz) & 2(xz + wy) \\
2(xy + wz) & 1 - 2(x^2 + z^2) & 2(yz - wx) \\
2(xz - wy) & 2(yz + wx) & 1 - 2(x^2 + y^2)
\end{bmatrix}
\end{equation}
(2)

This matrix can be used to rotate a vector [X;Y;Z] via standard matrix multiplication.

Quaternion to Eulerian angles

The eulerian angles describe the rotation around the instruments axis:

  • Roll (ϕ) — rotation around the X-axis

  • Pitch (θ) — rotation around the Y-axis

  • Yaw (ψ) — rotation around the Z-axis

To derive these angles from the quaternion output of the AHRS, the following equations are used:

\begin{equation}
\phi = \arctan2\left(2(w x + y z), 1 - 2(x^2 + y^2)\right)
\end{equation}
(3)
\begin{equation}
\theta = \arcsin\left(2(w y - z x)\right)
\end{equation}
(4)
\begin{equation}
\psi = \arctan2\left(2(w z + x y), 1 - 2(y^2 + z^2)\right)
\end{equation}
(5)

The Rotation Matrix or Eulerian Coordinates can be used when transforming the collected velocity data from XYZ to ENU coordinates. This is only necessary if choosing to process your data manually!

For the theory behind coordinate system transformation as well as Python/ Matlab scripts to carry these out manually, please see this FAQ.

 

Increased data quality

In dynamic conditions like on buoys, floats and other moving platforms, a Signature with AHRS will output heading and tilt data that separate acceleration due to motion. 

With the correct instantaneous orientation per data package, the AHRS will in addition enable the instrument to perform vertical bin mapping. Bin-mapping is also known as 'depth cell mapping' or 'tilt compensation' or even 'map to vertical', and ensures that cells from the same depth level is used. Vertical bin mapping is important in order to achieve correct measurement results even when there is shear in the current.

Vertical bin-mapping is not present in raw ad2cp-data, the option doing this correction is available for Signatures in Nortek post-processing software. If data is output through the telemetry scheme, vertical bin-mapping can be done automatically both in burst and averaged mode.  

Note: none of the processed data correct for the movement of the instrument it self.

Surface-buoy_3e386093e1098f67b7941dda1c65393c.png

Figure 1:. The above ADCP on a surface buoy illustrate how depth cells shifts position when the instrument tilt, accelerate up and down and back and forth, and rotate.

References
The following paper describes the problem of collecting accurate data ADCP from buoys, and shows how to improve motion compensation in current profile data from surface buoys by integration of an Attitude and Heading Reference Sensor (AHRS)

Enhancing the accuracy of current profiles from surface buoy-mounted systems (2018/2019)

Updated