@PublicationReference(author="Wikipedia", title="Extended Kalman filter", type=WebPage, year=2010, url="http://en.wikipedia.org/wiki/Extended_Kalman_filter") public class ExtendedKalmanFilter extends AbstractKalmanFilter
Modifier and Type | Class and Description |
---|---|
protected class |
ExtendedKalmanFilter.ModelJacobianEvaluator
Holds the input constant while perturbing the state to estimate
the Jacobian (A) matrix
|
Modifier and Type | Field and Description |
---|---|
protected StatefulEvaluator<Vector,Vector,Vector> |
motionModel
Model that determines how inputs and the previous state are updated.
|
protected Evaluator<Vector,Vector> |
observationModel
Model that determines how the state is observed.
|
currentInput, measurementCovariance, modelCovariance
Constructor and Description |
---|
ExtendedKalmanFilter()
Creates a new instance of ExtendedKalmanFilter
|
ExtendedKalmanFilter(StatefulEvaluator<Vector,Vector,Vector> motionModel,
Evaluator<Vector,Vector> observationModel,
Vector currentInput,
Matrix modelCovariance,
Matrix measurementCovariance)
Creates a new instance of ExtendedKalmanFilter
|
Modifier and Type | Method and Description |
---|---|
ExtendedKalmanFilter |
clone()
This makes public the clone method on the
Object class and
removes the exception that it throws. |
MultivariateGaussian |
createInitialLearnedObject()
Creates a new initial learned object, before any data is given.
|
StatefulEvaluator<Vector,Vector,Vector> |
getMotionModel()
Getter for motionModel
|
Evaluator<Vector,Vector> |
getObservationModel()
Getter for observationModel
|
void |
measure(MultivariateGaussian belief,
Vector observation)
Integrates a measurement into the system, refining the current
belief of the state of the system
|
void |
predict(MultivariateGaussian belief)
Creates a prediction of the system's next state given the current
belief state
|
void |
setMotionModel(StatefulEvaluator<Vector,Vector,Vector> motionModel)
Setter for motionModel
|
void |
setObservationModel(Evaluator<Vector,Vector> observationModel)
Setter for observationModel
|
computeMeasurementBelief, computePredictionCovariance, getCurrentInput, getMeasurementCovariance, getModelCovariance, setCurrentInput, setMeasurementCovariance, setModelCovariance, update
learn, learn, update
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
learn
update
protected StatefulEvaluator<Vector,Vector,Vector> motionModel
public ExtendedKalmanFilter()
public ExtendedKalmanFilter(StatefulEvaluator<Vector,Vector,Vector> motionModel, Evaluator<Vector,Vector> observationModel, Vector currentInput, Matrix modelCovariance, Matrix measurementCovariance)
motionModel
- Model that determines how inputs and the previous state are updated.observationModel
- Model that determines how the state is observed.currentInput
- Current input to the model.modelCovariance
- Covariance associated with the system's model.measurementCovariance
- Covariance associated with the measurements.public ExtendedKalmanFilter clone()
AbstractCloneableSerializable
Object
class and
removes the exception that it throws. Its default behavior is to
automatically create a clone of the exact type of object that the
clone is called on and to copy all primitives but to keep all references,
which means it is a shallow copy.
Extensions of this class may want to override this method (but call
super.clone()
to implement a "smart copy". That is, to target
the most common use case for creating a copy of the object. Because of
the default behavior being a shallow copy, extending classes only need
to handle fields that need to have a deeper copy (or those that need to
be reset). Some of the methods in ObjectUtil
may be helpful in
implementing a custom clone method.
Note: The contract of this method is that you must use
super.clone()
as the basis for your implementation.clone
in interface CloneableSerializable
clone
in class AbstractKalmanFilter
public StatefulEvaluator<Vector,Vector,Vector> getMotionModel()
public void setMotionModel(StatefulEvaluator<Vector,Vector,Vector> motionModel)
motionModel
- Model that determines how inputs and the previous state are updated.public Evaluator<Vector,Vector> getObservationModel()
public void setObservationModel(Evaluator<Vector,Vector> observationModel)
observationModel
- Model that determines how the state is observed.public MultivariateGaussian createInitialLearnedObject()
IncrementalLearner
public void predict(MultivariateGaussian belief)
AbstractKalmanFilter
predict
in class AbstractKalmanFilter
belief
- Current belief statepublic void measure(MultivariateGaussian belief, Vector observation)
AbstractKalmanFilter
measure
in class AbstractKalmanFilter
belief
- Current belief of the state of the systemobservation
- Measurement to integrate.