|
||||||||||
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 | +--javaslam.slam.InformationSLAMFilter
An information filter for the Simultaneous Localization and Mapping (SLAM) problem.
Field Summary | |
protected InformationFilter |
pf
The thin junction tree used to represent the filtered belief state. |
Fields inherited from class javaslam.slam.AbstractSLAMFilter |
id2lm, lm2id, x |
Constructor Summary | |
InformationSLAMFilter(double[] mu,
double[][] sigma)
Constructor. |
Method Summary | |
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. |
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). |
Gaussian |
getRobotMarginal()
Returns the filtered marginal potential (in the moment parameterization) over the robot's state. |
void |
measurement(int id,
double[] z0,
double[][] C,
double[][] D,
double[][] R,
double[] z)
Performs a linear-Gaussian landmark measurement update. |
void |
motion(double[] x0,
double[][] A,
double[][] Q)
Performs a linear-Gaussian motion update. |
void |
odometry(double[] y0,
double[][] B,
double[][] S,
double[] y)
Performs a linear-Gaussian odometry update. |
Methods inherited from class javaslam.slam.LGSLAMFilter |
getLandmarkEstimate, getRobotEstimate |
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 |
Field Detail |
protected InformationFilter pf
Constructor Detail |
public InformationSLAMFilter(double[] mu, double[][] sigma)
mu
- a n-vector containing the starting state
of the robotsigma
- an n-by-n positive semidefinite
covariance matrix giving the uncertainty in the
robot's initial stateMethod Detail |
public 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
.
measurement
in class LGSLAMFilter
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 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
.
motion
in class LGSLAMFilter
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 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
.
odometry
in class LGSLAMFilter
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 Gaussian getRobotMarginal()
getRobotMarginal
in class LGSLAMFilter
public Gaussian getLandmarkMarginal(int id)
getLandmarkMarginal
in class LGSLAMFilter
public Gaussian getRobotLandmarkMarginal(int id)
getRobotLandmarkMarginal
in class LGSLAMFilter
id
- the landmark's identifier
public Gaussian[] getLandmarkMarginals(int[] ids)
getLandmarkMarginals
in class LGSLAMFilter
ids
- an array of landmark identifiers (or
null
to indicate all landmarks)
public Gaussian[] getRobotLandmarkMarginals(int[] ids)
getRobotLandmarkMarginals
in class LGSLAMFilter
ids
- an array of landmark identifiers (or
null
to indicate all landmarks)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |