|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectlejos.robotics.localization.MCLParticleSet
public class MCLParticleSet
Represents a particle set for the particle filtering algorithm.
| Field Summary | |
|---|---|
static int |
maxIterations
|
| Constructor Summary | |
|---|---|
MCLParticleSet(RangeMap map,
int numParticles,
int border)
Create a set of particles randomly distributed within the given map. |
|
MCLParticleSet(RangeMap map,
int numParticles,
int border,
RangeReadings readings,
float divisor,
float minWeight)
Generates a set of particles within the map that have a minimum weight as as calculated from the particle pose, the range readings and the map. |
|
MCLParticleSet(RangeMap map,
int numParticles,
Pose initialPose,
float radiusNoise,
float headingNoise)
Generates a circular cloud of particles centered on initialPose with random normal radius and angle, and random normal heading. |
|
| Method Summary | |
|---|---|
void |
applyMove(Move move)
Apply a move to each particle |
boolean |
calculateWeights(RangeReadings rr,
RangeMap map)
Calculate the weight for each particle |
void |
dumpClosest(RangeReadings rr,
java.io.DataOutputStream dos,
float x,
float y)
Find the closest particle to specified coordinates and dump its details to a data output stream. |
void |
dumpObject(java.io.DataOutputStream dos)
Serialize the particle set to a data output stream |
int |
findClosest(float x,
float y)
Find the index of the particle closest to a given co-ordinates. |
float |
getBorder()
Get the border where particles should not be generated |
int |
getIterations()
|
float |
getMaxWeight()
The highest weight of any particle |
MCLParticle |
getParticle(int i)
Get a specific particle |
void |
loadObject(java.io.DataInputStream dis)
Load serialized particles from a data input stream |
int |
numParticles()
Return the number of particles in the set |
boolean |
resample()
Resample the set picking those with higher weights. |
void |
setAngleNoiseFactor(float factor)
Set the distance angle factor |
void |
setBorder(int border)
Set border where no particles should be generated |
static void |
setDebug(boolean debug)
Set system out debugging on or off |
void |
setDistanceNoiseFactor(float factor)
Set the distance noise factor |
void |
setMaxIterations(int max)
Set the maximum iterations for the resample algorithm |
void |
setSigma(float sigma)
Set the standard deviation for the sensor probability model |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static int maxIterations
| Constructor Detail |
|---|
public MCLParticleSet(RangeMap map,
int numParticles,
int border)
map - the map of the enclosed environment
public MCLParticleSet(RangeMap map,
int numParticles,
int border,
RangeReadings readings,
float divisor,
float minWeight)
map - numParticles - - number of particlesborder - - within which no particles should be generatedreadings - - to use in calculating weightdivisor - minWeight - - the minimum wight of a particle in the map
public MCLParticleSet(RangeMap map,
int numParticles,
Pose initialPose,
float radiusNoise,
float headingNoise)
map - the mapnumParticles - the number of particlesinitialPose - the center of the cloudradiusNoise - standard deviation of the normal of the distance from centerheadingNoise - standard deviation of heading| Method Detail |
|---|
public int numParticles()
public static void setDebug(boolean debug)
debug - true to set debug, false to set it offpublic MCLParticle getParticle(int i)
i - the index of the particle
public boolean resample()
public boolean calculateWeights(RangeReadings rr,
RangeMap map)
rr - the robot range readingspublic void applyMove(Move move)
move - the move to applypublic float getMaxWeight()
public float getBorder()
public void setBorder(int border)
border - the borderpublic void setSigma(float sigma)
sigma - the standard deviationpublic void setDistanceNoiseFactor(float factor)
factor - the distance noise factorpublic void setAngleNoiseFactor(float factor)
factor - the distance angle factorpublic void setMaxIterations(int max)
max - the maximum iterations
public int findClosest(float x,
float y)
x - the x-coordinatey - the y-coordinate
public void dumpObject(java.io.DataOutputStream dos)
throws java.io.IOException
dumpObject in interface Transmittabledos - the data output stream
java.io.IOExceptionpublic int getIterations()
public void loadObject(java.io.DataInputStream dis)
throws java.io.IOException
loadObject in interface Transmittabledis - the data input stream
java.io.IOException
public void dumpClosest(RangeReadings rr,
java.io.DataOutputStream dos,
float x,
float y)
throws java.io.IOException
rr - a dummy set of range readings used to determine the anglesdos - the data output streamx - the x-coordinatey - the y-coordinate
java.io.IOException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||