Scan Matcher based on the Monte Carlo method. The focus of the scan matcher is to compare a scan and a built map; in this class the method of scan comparison is performed by comparing corresponding scan costs. More...
#include <monte_carlo_scan_matcher.h>
Public Member Functions | |
_failed_tries_limit (failed_iter) | |
_total_tries_limit (max_iter) | |
MonteCarloScanMatcher (std::shared_ptr< ScanCostEstimator > estimator, unsigned failed_iter, unsigned max_iter) | |
Initializes the scan matcher with a certain scan cost estimator. | |
virtual double | process_scan (const RobotState &init_pose, const TransformedLaserScan &scan, const GridMap &map, RobotState &pose_delta) override |
Protected Member Functions | |
virtual unsigned | on_estimate_update (unsigned sample_num, unsigned sample_limit)=0 |
virtual void | sample_pose (RobotState &base_pose)=0 |
Private Member Functions | |
void | do_for_each_observer (std::function< void(ObsPtr)> op) |
Private Attributes | |
unsigned | _failed_tries_limit |
unsigned | _total_tries_limit |
Scan Matcher based on the Monte Carlo method. The focus of the scan matcher is to compare a scan and a built map; in this class the method of scan comparison is performed by comparing corresponding scan costs.
Definition at line 30 of file monte_carlo_scan_matcher.h.
MonteCarloScanMatcher::MonteCarloScanMatcher | ( | std::shared_ptr< ScanCostEstimator > | estimator, |
unsigned | failed_iter, | ||
unsigned | max_iter | ||
) | [inline] |
Initializes the scan matcher with a certain scan cost estimator.
estimator | An estimator of Scan Cost. |
failed_iter | A limit of generated samples that have a higher cost comparing with the best estimated pose. |
max_iter | A maximum number of hypothesis to be tested. |
Definition at line 42 of file monte_carlo_scan_matcher.h.
MonteCarloScanMatcher::_failed_tries_limit | ( | failed_iter | ) |
MonteCarloScanMatcher::_total_tries_limit | ( | max_iter | ) | [inline] |
Definition at line 45 of file monte_carlo_scan_matcher.h.
void MonteCarloScanMatcher::do_for_each_observer | ( | std::function< void(ObsPtr)> | op | ) | [inline, private] |
Definition at line 129 of file monte_carlo_scan_matcher.h.
virtual unsigned MonteCarloScanMatcher::on_estimate_update | ( | unsigned | sample_num, |
unsigned | sample_limit | ||
) | [protected, pure virtual] |
A callback invoked when a better estimate is found.
sample_num | Amount of tries that were complited. |
sample_limit | Totla amount of tries allowed. |
Implemented in TinyScanMatcher.
virtual double MonteCarloScanMatcher::process_scan | ( | const RobotState & | init_pose, |
const TransformedLaserScan & | scan, | ||
const GridMap & | map, | ||
RobotState & | pose_delta | ||
) | [inline, override, virtual] |
Estimates the most probable position according to a given scan; the greater this probability, the lower cost of the scan.
init_pose | The first approxiamtion of pose. |
scan | A current scan. |
map | A current GridMap. |
pose_delta | An output parameter of the best pose_delta. |
Implements GridScanMatcher.
Definition at line 56 of file monte_carlo_scan_matcher.h.
virtual void MonteCarloScanMatcher::sample_pose | ( | RobotState & | base_pose | ) | [protected, pure virtual] |
Generates the pose of a robot in a vicinity of a base pose.
base_pose | A basical pose of a robot. |
Implemented in TinyScanMatcher.
unsigned MonteCarloScanMatcher::_failed_tries_limit [private] |
Definition at line 138 of file monte_carlo_scan_matcher.h.
unsigned MonteCarloScanMatcher::_total_tries_limit [private] |
Definition at line 139 of file monte_carlo_scan_matcher.h.