Class HomogeneousLinearLeastSquaresLateration2DSolver

java.lang.Object
com.irurueta.navigation.lateration.LaterationSolver<P>
com.irurueta.navigation.lateration.HomogeneousLinearLeastSquaresLaterationSolver<com.irurueta.geometry.Point2D>
com.irurueta.navigation.lateration.HomogeneousLinearLeastSquaresLateration2DSolver

public class HomogeneousLinearLeastSquaresLateration2DSolver extends HomogeneousLinearLeastSquaresLaterationSolver<com.irurueta.geometry.Point2D>
Linearly solves the lateration problem using an homogeneous LMSE solution.
  • Constructor Details

    • HomogeneousLinearLeastSquaresLateration2DSolver

      public HomogeneousLinearLeastSquaresLateration2DSolver()
      Constructor.
    • HomogeneousLinearLeastSquaresLateration2DSolver

      public HomogeneousLinearLeastSquaresLateration2DSolver(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 (3 points).
    • HomogeneousLinearLeastSquaresLateration2DSolver

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

      public HomogeneousLinearLeastSquaresLateration2DSolver(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 (3 points).
    • HomogeneousLinearLeastSquaresLateration2DSolver

      public HomogeneousLinearLeastSquaresLateration2DSolver(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 3.
    • HomogeneousLinearLeastSquaresLateration2DSolver

      public HomogeneousLinearLeastSquaresLateration2DSolver(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 3.
  • 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.
    • 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 linearly 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 3.