Name
Localization_MRPT
Brief
Localization MRPT Component
Description
Localization RTcomponent using Monte Carlo Localization. This RTcomponent uses MRPT. See http://mrpt.org. To build this RTcomponent, install mrpt1.2.0.
License
GPLv3
Image
Language
C++
URL
https://github.com/sugarsweetrobotics/Localization_MRPT.git
Platform
[‘win’, ‘ubuntu’]
Data In Ports
Name  Type  Unit  Description 

range  RTC::RangeData  Range Sensor Data (usually, LiDAR)  
odometry  RTC::TimedPose2D  Robot position. Usually, estimated with encoders. 
Data Out Ports
Name  Type  Unit  Description 

estimatedPose  RTC::TimedPose2D  Estimated pose output. 
Service Ports
mapServer
Name  Direction  Type  Description 

mapServer  Required  RTC::OGMapServer  Map Server Interface 
Configurations
Name  Type  Default  Unit  Description 

initial_pose_x  string  0  meter  Initial pose of robot 
initial_pose_y  float  0  meter  Initial pose of robot 
initial_pose_phi  float  0  Initial pose of robot  
initial_particle_min_x  float  0.3  meter  minimum value range of initial particle position (This is added to initial position) 
initial_particle_max_x  float  0.3  meter  maximum value range of initial particle position (This is added to initial position) 
initial_particle_min_y  float  0.3  meter  minimum value range of initial particle position (This is added to initial position) 
initial_particle_max_y  float  0.3  meter  maximum value range of initial particle position (This is added to initial position) 
initial_particle_min_phi  float  0.3  minimum value range of initial particle position (This is added to initial position)  
initial_particle_max_phi  float  0.3  radian  maximum value range of initial particle position (This is added to initial position) 
initial_particle_count  string  1000  Initial particle count  
poseTimeOut  float  3.0  Timeout threshold [sec] of odometry port.  
motion_model  string  Gausian  Type name for Motion model.
http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

motion_alpha1  float  0.01  Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

motion_alpha2  float  0.05729  Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

motion_alpha3  float  0.01745  Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

motion_alpha4  float  0.05  Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

motion_std_XY  float  0.01  Parameter for Motion model. if motion_model is Gausian, this is Sigma_min if motion_model is Thrun, this is additional noise parameter. http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

motion_std_PHI  float  0.003490  Parameter for Motion model. if motion_model is Gausian, this is Sigma_min if motion_model is Thrun, this is additional noise parameter. http://www.mrpt.org/tutorials/programming/odometryandmotionmodels/probabilistic_motion_models/ 

LM_likelihoodMethod  string  lmLikelihoodField_Thrun  The selected method to compute an observation likelihood.
http://www.mrpt.org/tutorials/programming/mapsforlocalizationslammapbuilding/occupancy_grids/#42_Observations_likelihood 

LM_enableLikelihoodCache  string  true  Enables the usage of a cache of likelihood values (for LF methods), if set to true (default=true).  
LM_LF_decimation  int  5  [LikelihoodField] The laser range “sigma” used in computations; Default value = 0.35  
LM_LF_stdHit  float  0.35  The laser range “sigma” used in computations; Default value = 0.35  
LM_LF_zRandom  float  0.05  Ratios of the hit/random components of the likelihood; Default values=0.05  
LM_LF_alternateAverageMethod  string  false  Set this to “true” ot use an alternative method, where the likelihood of the whole range scan is computed by “averaging” of individual ranges, instead of by the “product”. Default = false  
LM_LF_zHit  float  0.95  Ratios of the hit/random components of the likelihood; Default values=0.95  
LM_LF_maxCorrsDistance  float  0.3  The max. distance for searching correspondences around each sensed point default 0.3  
LM_LF_maxRange  float  81  meter  The max. range of the sensor (def=81meters) 
LM_MI_exponent  float  2.5  The exponent in the MI likelihood computation. Default value = 2.5  
LM_MI_ratio_max_distance  float  1.5  [MI] The ratio for the max. distance used in the MI computation and in the insertion of scans, e.g. if set to 2.0 the MI will use twice the distance that the update distance. def=1.5  
LM_MI_skip_rays  float  10  The scan rays decimation: at every N rays, one will be used to compute the MI: def=10  
LM_consensus_pow  float  5  The power factor for the likelihood (default=5)  
LM_consensus_takeEachRange  int  1  The downsample ratio of ranges (default=1, consider all the ranges)  
LM_rayTracing_stdHit  float  1.0  [rayTracing] The laser range sigma. def=1.0  
LM_rayTracing_decimation  int  10  One out of “rayTracing_decimation” rays will be simulated and compared only: set to 1 to use all the sensed ranges. def=10  
LM_rayTracing_useDistanceFilter  string  true  If true (default), the rayTracing method will ignore measured ranges shorter than the simulated ones.  
PF_algorithm  string  pfStandardProposal  Sequential Importance Resampling – SIR (pfStandardProposal) Standard proposal distribution + weights according to likelihood function. Auxiliary Particle Filter – APF (pfAuxiliaryPFStandard) This method was introduced by Pitt and Shephard in 1999 [1] Optimal Sampling (pfOptimalProposal) Use the exact optimal proposal distribution (where available!, usually this will perform approximations). In the case of the RBPFSLAM implementation, this method follows [2] Approximate Optimal Sampling (pfAuxiliaryPFOptimal) Use the optimal proposal and a auxiliary particle filter (see paper [3] ). See : http://www.mrpt.org/tutorials/programming/statisticsandbayesfiltering/particle_filter_algorithms/ 

PF_resamplingMethod  string  prMultinomial  Setting of resampling method.
See: http://www.mrpt.org/tutorials/programming/statisticsandbayesfiltering/resampling_schemes/ 

PF_BETA  float  0.5  The resampling of particles will be performed when ESS (in range [0,1]) < BETA (default is 0.5)  
PF_powFactor  float  1.0  An optional step to “smooth” dramatic changes in the observation model to affect the variance of the particle weights, eg weight*=likelihood^powFactor (default=1 = no effects).  
PF_sampleSize  string  1  The initial number of particles in the filter (it can change only if adaptiveSampleSize=true) (default=1)  
PF_adaptiveSampleSize  string  true  A flag that indicates whether the CParticleFilterCapable object should perform adative sample size (default=true).  
PF_max_loglikelihood_dyn_range  double  15  Only for PF_algorithm=pfAuxiliaryPFOptimal: If a given particle has a max_likelihood (from the apriori estimate) below the maximum from all the samples – This is done to assure that the rejection sampling doesn’t get stuck in an infinite loop trying to get an acceptable sample. Default = 15 (in logarithmic likelihood)  
PF_AuxFilterOptimal_MaximumSearchSamples  int  100  In the algorithm “CParticleFilter::pfAuxiliaryPFOptimal” (and in “CParticleFilter::pfAuxiliaryPFStandard” only if pfAuxFilterStandard_FirstStageWeightsMonteCarlo = true) the number of samples for searching the maximum likelihood value and also to estimate the “first stage weights” (see papers!) (default=100)  
PF_AuxFilterStandard_FirstStageWeightsMonteCarlo  string  false  Only for PF_algorithm==pfAuxiliaryPFStandard: If false, the APF will predict the first stage weights just at the mean of the prior of the next time step. If true, these weights will be estimated as described in the papers for the “pfAuxiliaryPFOptimal” method, i.e. through a monte carlo simulation. In that case, “pfAuxFilterOptimal_MaximumSearchSamples” is the number of MC samples used.  
PF_AuxFilterOptimal_MLE  string  false  (Default=false) In the algorithm “CParticleFilter::pfAuxiliaryPFOptimal”, if set to true, do not perform rejection sampling, but just the mostlikely (ML) particle found in the preliminary weightdetermination stage.  
KLD_binSize_PHI  float  0.01  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers)  
KLD_binSize_XY  float  0.01  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers)  
KLD_delta  float  0.02  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers)  
KLD_epsilon  float  0.02  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers)  
KLD_maxSampleSize  int  1000  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers)  
KLD_minSampleSize  int  150  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers)  
KLD_minSamplesPerBin  double  0  Parameters for the KLD adaptive sample size algorithm (see Dieter Fox’s papers) 
How To Build
Linux
$ git clone https://github.com/sugarsweetrobotics/Localization_MRPT.git $ cd Localization_MRPT $ mkdir build $ cd build $ cmake ../ $ makeWindows
Download ZIP file from the website, and use CMake to generate VC2010 project. Then, open the project and build it.
How To Build in wasanbon
$ wasanbonadmin.py package create Localization_MRPT_test_project # You can also use other preinstalled package $ wasanboncd Localization_MRPT_test_project $ ./mgr.py repository clone Localization_MRPT $ ./mgr.py rtc build Localization_MRPT $ ./mgr.py rtc run Localization_MRPT # To Run RTC
Profile Status
Not available
Build Status
Build in Windows
Not available
Build in OSX
Not available
Build in Linux
Not available