Class Chi2Bearings

java.lang.Object
Localiser.algorithms.genericLocaliser.Chi2Bearings
All Implemented Interfaces:
MinimisationFunction

public class Chi2Bearings extends Object implements MinimisationFunction
Minimisation functions which is based on bearings rather than time delay measurements. e.g. this could be used for target motion localisation, DIFAR buoy or any system which uses bearings rather than time delay measurements.

Author:
Jamie Macaulay
  • Field Details

    • rotationVector

      public PamQuaternion[] rotationVector
      The heading of the array at each loclaisation point. Used if a localisation algortihm to transform stuff.
    • headingVectors

      public PamVector[] headingVectors
      Conveneince variable. Heading vectors.
    • detectionAngles

      public double[] detectionAngles
      Detection angles for simple cases of linear arrays these are angles relative to the heading vectors.
  • Constructor Details

    • Chi2Bearings

      public Chi2Bearings(PamVector[] wordlVectors, PamVector[] subDetectionAngleErrors, PamVector[] subDetectionOrigins, PamQuaternion[] rotationVector)
      Constructor to set up the minimisation function for bearing localisation
      Parameters:
      wordlVectors - - the world vectors- relative to the x y of the array
      subDetectionAngleErrors - - the errors in the bearings
      subDetectionOrigins - - the location of each bearing origin in x y z co-ordinate frame
    • Chi2Bearings

      public Chi2Bearings(PamVector[] wordlVectors, PamVector[] subDetectionAngleErrors, PamVector[] subDetectionOrigins, PamQuaternion[] rotationVector, int nDim)
      Constructor to set up the minimisation function for bearing localisation
      Parameters:
      wordlVectors - - the world vectors- relative to the x y of the array
      subDetectionAngleErrors - - the errors in the bearings
      subDetectionOrigins - - the location of each bearing origin in x y z co-ordinate frame
      nDim - - the number of dimensions to solve for.
  • Method Details

    • value

      public double value(double[] location)
      Description copied from interface: MinimisationFunction
      Return the Chi2 value at a specified 'location'/ for a set of points which can be used to generated expected data that is then used to calculated a chi2 value with observed data. Example location might be [x y z] location to generate time delays which are then compared to expected time delays.
      Specified by:
      value in interface MinimisationFunction
      Parameters:
      location - - the point at which chi2 value is to be calculated;
      Returns:
      the chi2 value.
    • getDim

      public int getDim()
      Description copied from interface: MinimisationFunction
      Get the simulation dimensions e.g. if solving for [x y z] location getDim()=3;
      Specified by:
      getDim in interface MinimisationFunction
    • getStart

      public double[] getStart()
      Description copied from interface: MinimisationFunction
      Get starting position for search algorithm.
      Specified by:
      getStart in interface MinimisationFunction
      Returns:
      starting location with getDim() dimensions.
    • setStart

      public void setStart(double[] start)
      Set the start location for the algortihm
      Parameters:
      start - location. Must be the same length as number of dimensions
    • getFirstStep

      public double[] getFirstStep()
      Description copied from interface: MinimisationFunction
      Get first search jump (often not needed)
      Specified by:
      getFirstStep in interface MinimisationFunction
      Returns:
      first jump location with getDim() dimensions.
    • getSubDetectionOrigins

      public PamVector[] getSubDetectionOrigins()
      Get sub detection origins. This is the origin of the subdection in Cartesian space.
      Returns:
      a list of sub detection co-ordinates.
    • getSubDetectionAngleErrors

      public PamVector[] getSubDetectionAngleErrors()
      Get sub detection angle errors.
      Returns:
      the angular errors
    • getUsedWorldVectors

      public PamVector[] getUsedWorldVectors()
      Get the angle of each sub detection. Note that the this is a non-ambiguous angle.
      Returns:
      the angle of each sub detection.
    • getRotationVectors

      public PamQuaternion[] getRotationVectors()
      Get the rotation of the hydrophone array for each detection. Used to transofmr co-oridnatres,
      Returns:
      the rotation of the hydrophone for each subdetection.