My Requests


How-to Layback

This How-to describes how to use layback systems in Qinsy.

A layback system is used to calculate a tow fish position from a manually entered range or from an externally interfaced range sensor e.g. a cable counter.

Slant Ranges

Layback values will be treated as a slant range (3D) between two nodes. It is not a horizontal range because the heights of the vessel and fish are taken into account. By default the calculation engine will assume that the fish skims along the surface of the water: height level MSL + Tide.
The position calculation of the fish can be further improved when the fish contains a depth or pressure sensor. It will then be assumed that the fish travels at the measured depth.
The horizontal position offset between vessel and fish is adjusted accordingly.

In the Controller’s Computation Setup the user can select which kind of rotation should be used to calculate the fish’s horizontal position.
This can either be the (priority) Heading of the vessel, the COG of the vessel, the (priority) heading of the fish or the COG of the fish.
If the heading for the fish needs to be entered manually, add a manual heading driver in the database and set this observation as priority heading for the fish.

Manual USBL

In Database Setup, when the USBL system driver “Manual Layback (dX dY dZ)” is used, the complicated USBL settings user interface is hidden from view and only a “from” (Vessel Towpoint) and “to” (Fish) are shown.
The Controller will show for this driver an extra rotation option in the Computation Setup page for the USBL. This option allows you to select how the USBL XYZ observations are rotated horizontally.
Note that when the normal driver “Manual USBL (dX dY dZ)” is used this rotation option is not shown in the Controller. Remember that when a negative USBL Y is entered then the fish will be positioned behind the vessel.

When to use manual USBL or layback system?

If you are using a basic sidescan tow fish then always use the layback system.

In situations that the position cannot be described by a single range value or you really need a fixed height difference between vessel and fish node, choose USBL.
For example a gun position or a paravane buoy will best be calculated with a delta XYZ.
Also, if you require a purely horizontal range then also use the USBL option (delta Height is obviously zero then).

Layback - Use Z

Scenario 1 (Default):
If you don't have a Depth or Pressure sensor on the SSS fish you can set Use 'Z' to enabled. Result is that the fish skims along the surface.

Scenario 2:
In case you do have a Depth or Pressure sensor on the SSS fish, you can disable Use 'Z'.

Layback - Rotation Vector

In the Computation Setup you can select what you want to use for Rotation.

Above it was explained that "Use 'Z'" controls how we calculate the vertical component. With Rotation we try to calculate the horizontal component.
So in other words, where is the SSS fish relative to my vessel, is it right behind me and what happens if the vessel is crabbing (current coming in from the side)?

In Qinsy there are 4 options for this:

  • Main object Heading
  • Main object COG
  • Towed object Heading
  • Towed object COG

Main object Heading

We use the Heading of the vessel for the Rotation Vector. This will mean that the SSS fish is always shown straight behind the vessel. 

Main object COG

In this case we take the COG of the vessel into account. So in case the vessel is crabbing due to a current the vessel heading and COG are not the same.
In this case you could assume the SSS fish is also affected by the current. The following screencapture shows what happens:

Towed Object Heading

In this case we use the heading of the SSS fish for the vector.

Towed Object COG

In this case we use the COG of the SSS fish for the vector. However, since the COG is based on the result of the vector, which in itself would be based on the COG, you could get strange results.


  • Note that the layback slant range should be a realistic value. If for instance the slant range is shorter than the height offset between vessel tow point and MSL then the position cannot be resolved by the Qinsy computation!!!
  • Height conflicts: when Use 'Z' is enabled then the “ROV depth” on the fish should be disabled and vice versa or else multiple height definitions will exist for the fish and the position cannot be resolved.
  • Using the Course Over Ground (COG) of the fish may result in a jumpy position of the fish when no filtering on the fish is used. Usually the best option for the horizontal rotation is the Course Over Ground of the vessel. Note that when no compass is defined on the tow fish the fish heading option will also use COG!
  • When the approximate position is far away from the real position and the computation doesn’t cycle then you can try to increase the iteration threshold from 10 to 100 to get a fix.


The “Layback System” driver will only support basic slant ranges but thanks to the flexibility of the Qinsy Computation Setup this will be sufficient for most cases.
For jobs that require the entering of real delta xyz positions a manual USBL system can be used.