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.