MRXT: The Multi-Robot eXploration Tool
Multi-Robot autonomous exploration and mapping simulator.
Public Member Functions | Private Member Functions | Private Attributes
RBPFilter Class Reference

Implements an slam algorithm consisting on a rao-blackwellized particle filter. More...

#include <RBPFilter.h>

Inheritance diagram for RBPFilter:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 RBPFilter ()
 Constructor.
 RBPFilter (int nrobots, ConfigFile &configFile)
 Constructor.
virtual ~RBPFilter ()
 Destructor.
point getCell (int robot)
 returns the current cell of the robot
matrix getCovariance (int robot) const
 returns the matrix that represents the covariance of the position of the robot
float getDisp (int robot) const
 returns a measure of the dispersion of the robot
Ematrix getGlobalCovariance () const
 returns the matrix that represents the covariance of robots and marks
binMapgetImpMap ()
 returns a copy of the current imprecise pose map
gridMapInterfacegetOMap ()
 returns a copy of the current occupancy map
QPixmap * getPixmap ()
pose getPos (int robot)
 returns the current pose of the robot
binMapgetPreMap ()
 return a copy of the current precise pose map
QImage * getQImage ()
visualMapgetVMap ()
 returns a copy of the current visual map
void initialize (int nrobots, ConfigFile &configfile)
 initializer

Private Member Functions

void drawPoses (IplImage &im, float xorigin, float yorigin, float resolution)
void evalDisp (int r)
 evaluates the uncertainty on the position of each robot
void execute ()
 primary execution loop
void fastSlam (int robot, const landmarksData &lmData, const pose &lastOdo, const pose &odo)
 updates fast slam filter
matrix jacobian (const pose &pos)
 jacobian, this is to update the EKF of each feature
void onStop ()
 called before stopping
double resample ()
 performs the resampling step
int setup ()
 set up for the execution thread
void updateAll (const rangeSensorData &rsData, int robot)
 updates the occupancy, precise poses and imprecises poses maps
void updateParticle (int robot, const landmarksData &lmData, const pose &lastOdo, const pose &deltaOdo, int i)
 updates one particle of the RBPF

Private Attributes

ClMutex closing
 sampling syncronization mutual exclusion
float * dispRobot
 most probable particle
bool endSlam
 run/stop control
matrix Identity3
 a common imprecise pose binMap for all particles
int index
 last particles
binMapipmap
 a common precise pose binMap for all particles
pose ** lastOdoData
 odometry values
landmarksData ** lmData
 captured range sensor data
int M
float mahTh
 3x3 identity matrix
particlenewp
 particles data structure
pose ** odoData
 measure of uncertainty for each robot
gridMapInterfaceomap
 flag to use only one grid map instead of one per particle
bool onlyonegridmap
 stop condition
particlep
 number of particles
binMapppmap
 a common occupancy grid for all particles
rangeSensorData ** rsData
 last odometry values
ClMutex sampling
 captured features

Detailed Description

Implements an slam algorithm consisting on a rao-blackwellized particle filter.

Definition at line 26 of file RBPFilter.h.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Typedefs