|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--javaslam.slam.AbstractSLAMFilter
|
+--javaslam.slam.LGSLAMFilter
A linear-Gaussian filter for the Simultaneous Localization and Mapping (SLAM) problem.
| Field Summary |
| Fields inherited from class javaslam.slam.AbstractSLAMFilter |
id2lm, lm2id, x |
| Constructor Summary | |
LGSLAMFilter(int dim)
Constructor. |
|
| Method Summary | |
double[] |
getLandmarkEstimate(int id)
Returns the filtered estimate of a landmark's state. |
abstract Gaussian |
getLandmarkMarginal(int id)
Returns the filtered marginal potential over a landmark's state (in the moment parameterization). |
Gaussian[] |
getLandmarkMarginals(int[] ids)
Given a collection of landmark state variables, this method returns the set of filtered marginal potentials over each individual landmark's state. |
double[] |
getRobotEstimate()
Returns the filtered estimate of the robot's state. |
abstract Gaussian |
getRobotLandmarkMarginal(int id)
This method computes the joint filtered distribution over the states of the robot and a landmark. |
Gaussian[] |
getRobotLandmarkMarginals(int[] ids)
Given a set of landmarks { l1, ..., lk}, this method computes a set of potentials over (x, l1), ..., (x, lk). |
abstract Gaussian |
getRobotMarginal()
Returns the filtered marginal potential over the robot's state (in the moment parameterization). |
abstract void |
measurement(int id,
double[] z0,
double[][] C,
double[][] D,
double[][] R,
double[] z)
Performs a linear-Gaussian landmark measurement update. |
abstract void |
motion(double[] x0,
double[][] A,
double[][] Q)
Performs a linear-Gaussian motion update. |
abstract void |
odometry(double[] y0,
double[][] B,
double[][] S,
double[] y)
Performs a linear-Gaussian odometry update. |
| Methods inherited from class javaslam.slam.AbstractSLAMFilter |
addLandmark, contains, getLandmarkId, getLandmarkIds, getLandmarkVariable, getNumLandmarks, getRobotVariable |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public LGSLAMFilter(int dim)
dim - the dimension of the robot state variable| Method Detail |
public abstract void measurement(int id,
double[] z0,
double[][] C,
double[][] D,
double[][] R,
double[] z)
z0, C, D, and
R define the measurement equation as follows:
where x is the robot state variable,z= z0+Cx +Dlm+ w
lm is a
landmark variable, and w is a white-noise variable with
covariance R.
id - the identifier of the landmark that generated this
observation; if it is not currently in the belief state,
then it is first added with an uninformative prior.z0 - a k-vector giving the constant termC - a k by n matrix that defines the
linear coefficient for the robot's stateD - a k by m matrix that defines the
linear coefficient for the landmark's stateR - a k by k symmetric positive definite matrix
giving the covariance of the measurement white noisez - the measurement k-vector
IllegalArgumentException - if there are any dimension mismatches
public abstract void motion(double[] x0,
double[][] A,
double[][] Q)
A and Q define the state evolution
equation as follows:
where v is a white-noise variable with covariancext + 1 = x0+Axt+v
Q.
x0 - an n-vector giving the constant term of the
state evolution equationA - an n by n evolution matrix that defines the
linear evolution modelQ - an n by n symmetric positive definite matrix
giving the covariance of the evolution white noise
IllegalArgumentException - if there are any dimension mismatches
public abstract void odometry(double[] y0,
double[][] B,
double[][] S,
double[] y)
y0, B, and S define the
odometry measurement equation as follows:
where u is a white-noise variable with covarianceyt + 1= y0+Bxt + 1+u
S.
y0 - an h-vector giving the constant term of the
odometry equationB - an h by n evolution matrix that is
linear term of the odometry equationS - an h by h symmetric positive definite matrix
giving the covariance of the odometry white noisey - an h-vector giving the odometry measurement
IllegalArgumentException - if there are any dimension mismatchespublic abstract Gaussian getRobotMarginal()
public abstract Gaussian getLandmarkMarginal(int id)
public Gaussian[] getLandmarkMarginals(int[] ids)
ids - an array of landmark identifiers (or
null to indicate all landmarks)
public abstract Gaussian getRobotLandmarkMarginal(int id)
id - the landmark's identifier
public Gaussian[] getRobotLandmarkMarginals(int[] ids)
ids - an array of landmark identifiers (or
null to indicate all landmarks)
public double[] getRobotEstimate()
getRobotEstimate in interface SLAMFiltergetRobotEstimate in class AbstractSLAMFilterpublic double[] getLandmarkEstimate(int id)
getLandmarkEstimate in interface SLAMFiltergetLandmarkEstimate in class AbstractSLAMFilterid - the identifier of the landmark
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||