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.
-
Field Summary
Fields inherited from class com.irurueta.navigation.lateration.NonLinearLeastSquaresLaterationSolver
DEFAULT_DISTANCE_STANDARD_DEVIATION
Fields inherited from class com.irurueta.navigation.lateration.LaterationSolver
distances, EPSILON, estimatedPositionCoordinates, listener, locked, positions
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, double[] distanceStandardDeviations, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, com.irurueta.geometry.Point2D initialPosition) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Circle[] circles, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D initialPosition) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, double[] distanceStandardDeviations, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, com.irurueta.geometry.Point2D initialPosition) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D[] positions, double[] distances, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(com.irurueta.geometry.Point2D initialPosition, LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor.NonLinearLeastSquaresLateration2DSolver
(LaterationSolverListener<com.irurueta.geometry.Point2D> listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncom.irurueta.geometry.Circle[]
Gets circles defined by provided positions and distances.com.irurueta.geometry.Point2D
Gets estimated position.int
Minimum required number of positions and distances.int
Gets number of dimensions of provided points.private void
internalSetCircles
(com.irurueta.geometry.Circle[] circles) Internally sets circles defining positions and Euclidean distances.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.void
setCircles
(com.irurueta.geometry.Circle[] circles) Sets circles defining positions and euclidean distances.void
setCirclesAndStandardDeviations
(com.irurueta.geometry.Circle[] circles, double[] radiusStandardDeviations) Sets circles defining positions and Euclidean distances along with the standard deviations of provided circles radii.Methods inherited from class com.irurueta.navigation.lateration.NonLinearLeastSquaresLaterationSolver
getChiSq, getCovariance, getDistanceStandardDeviations, getInitialPosition, getType, internalSetPositionsAndDistances, internalSetPositionsDistancesAndStandardDeviations, setInitialPosition, setPositionsAndDistances, setPositionsDistancesAndStandardDeviations, solve
Methods inherited from class com.irurueta.navigation.lateration.LaterationSolver
getDistances, getEstimatedPosition, getEstimatedPositionCoordinates, getListener, getPositions, isLocked, isReady, setListener
-
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(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.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.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.
-
-
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
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 classLaterationSolver<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 classLaterationSolver<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 classLaterationSolver<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.
-