Name
Localization_MRPT
Brief
Localization MRPT Component
Description
Localization RT-component using Monte Carlo Localization. This RT-component uses MRPT. See http://mrpt.org. To build this RT-component, install mrpt-1.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/odometry-and-motion-models/probabilistic_motion_models/ |
|
motion_alpha1 | float | 0.01 | Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometry-and-motion-models/probabilistic_motion_models/ |
|
motion_alpha2 | float | 0.05729 | Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometry-and-motion-models/probabilistic_motion_models/ |
|
motion_alpha3 | float | 0.01745 | Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometry-and-motion-models/probabilistic_motion_models/ |
|
motion_alpha4 | float | 0.05 | Parameter of motion_model.
http://www.mrpt.org/tutorials/programming/odometry-and-motion-models/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/odometry-and-motion-models/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/odometry-and-motion-models/probabilistic_motion_models/ |
|
LM_likelihoodMethod | string | lmLikelihoodField_Thrun | The selected method to compute an observation likelihood.
http://www.mrpt.org/tutorials/programming/maps-for-localization-slam-map-building/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 down-sample 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 RBPF-SLAM 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/statistics-and-bayes-filtering/particle_filter_algorithms/ |
|
PF_resamplingMethod | string | prMultinomial | Setting of resampling method.
See: http://www.mrpt.org/tutorials/programming/statistics-and-bayes-filtering/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 a-priori 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 most-likely (ML) particle found in the preliminary weight-determination 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
$ wasanbon-admin.py package create Localization_MRPT_test_project # You can also use other preinstalled package $ wasanbon-cd 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