

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.TJTSLAMFilter
A thin junction tree filter for the Simultaneous Localization and Mapping (SLAM) problem.
Field Summary  
protected ThinJunctionTree 
jt
The thin junction tree used to represent the filtered belief state. 
protected int 
overlap
When the active cluster is cloned to admit a new landmark variable, this is the size of its separator. 
protected int 
width
The cluster size limit of the thin junction tree. 
Fields inherited from class javaslam.slam.AbstractSLAMFilter 
id2lm, lm2id, x 
Constructor Summary  
TJTSLAMFilter(int width,
int overlap,
double[] mu,
double[][] sigma)
Constructor. 
Method Summary  
JunctionTree 
getJunctionTree()
Gets the junction tree representation of the belief state. 
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 { l_{1}, ..., l_{k}}, this method computes a set of potentials over (x, l_{1}), ..., (x, l_{k}). 
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 linearGaussian landmark measurement update. 
void 
motion(double[] x0,
double[][] A,
double[][] Q)
Performs a linearGaussian motion update. 
void 
odometry(double[] y0,
double[][] B,
double[][] S,
double[] y)
Performs a linearGaussian 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 ThinJunctionTree jt
protected int width
1
, then the junction tree is not thinned.
protected int overlap
Constructor Detail 
public TJTSLAMFilter(int width, int overlap, double[] mu, double[][] sigma)
width
 the maximum number of variables permitted in a
single cluster of the thin junction tree; this
must be two or greateroverlap
 the size of separators for clones; this must be
positive and less than widthmu
 a nvector containing the starting state
of the robotsigma
 an nbyn positive semidefinite
covariance matrix giving the uncertainty in the
robot's initial stateMethod Detail 
public JunctionTree getJunctionTree()
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 whitenoise variable with
covariance R
. Given the actual measurement
z
, this method updates the belief state as follows:
overlap
variables
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 kvector 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 kvector
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 whitenoise variable with covariancex_{t + 1} = x0
+A
x_{t}+v
Q
. This method updates the belief state as follows:
motion
in class LGSLAMFilter
x0
 an nvector 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 whitenoise variable with covariancey_{t + 1}= y0
+B
x_{t + 1}+u
S
. An odometry measurement potential over x
is constructed and multiplied into the active cluster.
odometry
in class LGSLAMFilter
y0
 an hvector 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 hvector 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 