aima.core.robotics.datatypes.IMclRangeReading Maven / Gradle / Ivy
package aima.core.robotics.datatypes;
/**
* This interface defines a data type for a range measurement.
* It has to contain an {@link IMclVector} by which the robot was rotated from its original facing direction to receive the measurement.
* In addition it describes a method for using a range sensor noise model on the measurement.
*
* @author Arno von Borries
* @author Jan Phillip Kretzschmar
* @author Andreas Walscheid
*
* @param the class that is implementing this interface.
* @param a n-1-dimensional vector implementing {@link IMclVector}, where n is the dimensionality of the environment.
*/
public interface IMclRangeReading, V extends IMclVector> {
/**
* Returns the vector by which the robot was rotated for this range reading.
* @return the vector by which the robot was rotated for this range reading.
*/
V getAngle();
/**
* The range sensor noise model.
* Calculates a weight between 0 and 1 that specifies how similar the given range readings is to this range reading.
* @param secondRange the second range to be weighted against.
* @return a weight between 0 and 1.
*/
double calculateWeight(R secondRange);
}