Class NonLinearLeastSquaresLateration2DSolver

java.lang.Object
com.irurueta.navigation.lateration.LaterationSolver<P>
com.irurueta.navigation.lateration.NonLinearLeastSquaresLaterationSolver<com.irurueta.geometry.Point2D>
com.irurueta.navigation.lateration.NonLinearLeastSquaresLateration2DSolver

public class NonLinearLeastSquaresLateration2DSolver extends NonLinearLeastSquaresLaterationSolver<com.irurueta.geometry.Point2D>
Solves a Trilateration problem with an instance of the least squares optimizer.
  • Constructor Details

    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver()
      Constructor.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      Throws:
      IllegalArgumentException - if either positions or distances are null, don't have the same length or their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      initialPosition - initial position to start lateration solving.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      initialPosition - initial position to start lateration solving.
      Throws:
      IllegalArgumentException - if either positions or distances are null, don't have the same length or their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      listener - listener to be notified of events raised by this instance.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if either positions or distances are null, don't have the same length or their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      initialPosition - initial position to start lateration solving.
      listener - listener to be notified of events raised by this instance.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      initialPosition - initial position to start lateration solving.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if either positions or distances are null, don't have the same length or their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      initialPosition - initial position to start lateration solving.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      initialPosition - initial position to start lateration solving.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      distanceStandardDeviations - standard deviations of provided measured distances.
      Throws:
      IllegalArgumentException - if either positions, distances or standard deviations are null, don't have the same length of their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      distanceStandardDeviations - standard deviations of provided measured distances.
      initialPosition - initial position to start lateration solving.
      Throws:
      IllegalArgumentException - if either positions, distances or standard deviations are null, don't have the same length of their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      distanceStandardDeviations - standard deviations of provided measured distances.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if either positions, distances or standard deviations are null, don't have the same length of their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      positions - known positions of static nodes.
      distances - euclidean distances from static nodes to mobile node.
      distanceStandardDeviations - standard deviations of provided measured distances.
      initialPosition - initial position to start lateration solving.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if either positions, distances or standard deviations are null, don't have the same length of their length is smaller than required (2 points).
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      distanceStandardDeviations - standard deviations of provided measured distances.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      distanceStandardDeviations - standard deviations of provided measured distances.
      initialPosition - initial position to start lateration solving.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      distanceStandardDeviations - standard deviations of provided measured distances.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
    • NonLinearLeastSquaresLateration2DSolver

      public NonLinearLeastSquaresLateration2DSolver(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener)
      Constructor.
      Parameters:
      circles - circles defining positions and distances.
      distanceStandardDeviations - standard deviations of provided measured distances.
      initialPosition - initial position to start lateration solving.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if circles is null or if length of circles array is less than 2.
  • Method Details

    • getCircles

      public com.irurueta.geometry.Circle[] getCircles()
      Gets circles defined by provided positions and distances.
      Returns:
      circles defined by provided positions and distances.
    • setCircles

      public void setCircles(com.irurueta.geometry.Circle[] circles) throws LockedException
      Sets circles defining positions and euclidean distances.
      Parameters:
      circles - circles defining positions and distances.
      Throws:
      IllegalArgumentException - if circles is null or length of array of circles is less than 2.
      LockedException - if instance is busy solving the lateration problem.
    • setCirclesAndStandardDeviations

      public void setCirclesAndStandardDeviations(com.irurueta.geometry.Circle[] circles, double[] radiusStandardDeviations) throws LockedException
      Sets circles defining positions and Euclidean distances along with the standard deviations of provided circles radii.
      Parameters:
      circles - circles defining positions and distances.
      radiusStandardDeviations - standard deviations of circles radii.
      Throws:
      IllegalArgumentException - if circles is null, length of arrays is less than 2 or don't have the same length.
      LockedException - if instance is busy solving the lateration problem.
    • getNumberOfDimensions

      public int getNumberOfDimensions()
      Gets number of dimensions of provided points.
      Specified by:
      getNumberOfDimensions in class LaterationSolver<com.irurueta.geometry.Point2D>
      Returns:
      always returns 2 dimensions.
    • getMinRequiredPositionsAndDistances

      public int getMinRequiredPositionsAndDistances()
      Minimum required number of positions and distances. At least 3 positions and distances will be required to solve a 2D problem.
      Specified by:
      getMinRequiredPositionsAndDistances in class LaterationSolver<com.irurueta.geometry.Point2D>
      Returns:
      minimum required number of positions and distances.
    • getEstimatedPosition

      public com.irurueta.geometry.Point2D getEstimatedPosition()
      Gets estimated position.
      Specified by:
      getEstimatedPosition in class LaterationSolver<com.irurueta.geometry.Point2D>
      Returns:
      estimated position.
    • internalSetCircles

      private void internalSetCircles(com.irurueta.geometry.Circle[] circles)
      Internally sets circles defining positions and Euclidean distances.
      Parameters:
      circles - circles defining positions and distances.
      Throws:
      IllegalArgumentException - if circles is null or length of array of circles is less than 2.
    • internalSetCirclesAndStandardDeviations

      private void internalSetCirclesAndStandardDeviations(com.irurueta.geometry.Circle[] circles, double[] radiusStandardDeviations)
      Internally sets circles defining positions and Euclidean distances along with the standard deviations of provided circles radii.
      Parameters:
      circles - circles defining positions and distances.
      radiusStandardDeviations - standard deviations of circles radii.
      Throws:
      IllegalArgumentException - if circles is null, length of arrays is less than 2 or don't have the same length.