Class HomogeneousLinearLeastSquaresLateration3DSolver

java.lang.Object
com.irurueta.navigation.lateration.LaterationSolver<P>
com.irurueta.navigation.lateration.HomogeneousLinearLeastSquaresLaterationSolver<com.irurueta.geometry.Point3D>
com.irurueta.navigation.lateration.HomogeneousLinearLeastSquaresLateration3DSolver

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

    • HomogeneousLinearLeastSquaresLateration3DSolver

      public HomogeneousLinearLeastSquaresLateration3DSolver()
      Constructor.
    • HomogeneousLinearLeastSquaresLateration3DSolver

      public HomogeneousLinearLeastSquaresLateration3DSolver(com.irurueta.geometry.Point3D[] 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 (4 points).
    • HomogeneousLinearLeastSquaresLateration3DSolver

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

      public HomogeneousLinearLeastSquaresLateration3DSolver(com.irurueta.geometry.Point3D[] positions, double[] distances, LaterationSolverListener<com.irurueta.geometry.Point3D> 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 (4 points).
    • HomogeneousLinearLeastSquaresLateration3DSolver

      public HomogeneousLinearLeastSquaresLateration3DSolver(com.irurueta.geometry.Sphere[] spheres)
      Constructor.
      Parameters:
      spheres - spheres defining positions and distances.
      Throws:
      IllegalArgumentException - if spheres is null or if length of spheres array is less than 4.
    • HomogeneousLinearLeastSquaresLateration3DSolver

      public HomogeneousLinearLeastSquaresLateration3DSolver(com.irurueta.geometry.Sphere[] spheres, LaterationSolverListener<com.irurueta.geometry.Point3D> listener)
      Constructor.
      Parameters:
      spheres - spheres defining positions and distances.
      listener - listener to be notified of events raised by this instance.
      Throws:
      IllegalArgumentException - if spheres is null or if length of spheres array is less than 4.
  • Method Details

    • getSpheres

      public com.irurueta.geometry.Sphere[] getSpheres()
      Gets spheres defined by provided positions and distances.
      Returns:
      spheres defined by provided positions and distances.
    • setSpheres

      public void setSpheres(com.irurueta.geometry.Sphere[] spheres) throws LockedException
      Sets spheres defining positions and Euclidean distances.
      Parameters:
      spheres - spheres defining positions and distances.
      Throws:
      IllegalArgumentException - if spheres is null or length of array of spheres 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.Point3D>
      Returns:
      always returns 2 dimensions.
    • getMinRequiredPositionsAndDistances

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

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

      private void internalSetSpheres(com.irurueta.geometry.Sphere[] spheres)
      Internally sets spheres defining positions and Euclidean distances.
      Parameters:
      spheres - spheres defining positions and distances.
      Throws:
      IllegalArgumentException - if spheres is null or length of array of spheres is less than 4.