|
||||||||||
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 variableMethod 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
+C
x +D
lm
+ 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 mismatchespublic 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
+A
xt+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 mismatchespublic 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
+B
xt + 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 SLAMFilter
getRobotEstimate
in class AbstractSLAMFilter
public double[] getLandmarkEstimate(int id)
getLandmarkEstimate
in interface SLAMFilter
getLandmarkEstimate
in class AbstractSLAMFilter
id
- the identifier of the landmark
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |