Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
TinyScanMatcher Class Reference

The scan matcher based on the Monte Carlo simulation. More...

#include <tiny_scan_matcher.h>

Inheritance diagram for TinyScanMatcher:
Inheritance graph
[legend]

Public Member Functions

virtual void reset_state () override
 
 TinyScanMatcher (ScePtr cost_estimator, unsigned bad_iter, unsigned max_iter, double sigma_coord, double sigma_angle)
 
- Public Member Functions inherited from MonteCarloScanMatcher
 MonteCarloScanMatcher (std::shared_ptr< ScanCostEstimator > estimator, unsigned failed_iter, unsigned max_iter)
 Initializes the scan matcher with a certain scan cost estimator. More...
 
virtual double process_scan (const RobotState &init_pose, const TransformedLaserScan &scan, const GridMap &map, RobotState &pose_delta) override
 
- Public Member Functions inherited from GridScanMatcher
 GridScanMatcher (std::shared_ptr< ScanCostEstimator > estimator)
 
void subscribe (std::shared_ptr< GridScanMatcherObserver > obs)
 
void unsubscribe (std::shared_ptr< GridScanMatcherObserver > obs)
 

Protected Member Functions

virtual unsigned on_estimate_update (unsigned sample_num, unsigned sample_limit) override
 
virtual void sample_pose (RobotState &base_pose) override
 
- Protected Member Functions inherited from GridScanMatcher
std::shared_ptr< ScanCostEstimatorcost_estimator ()
 Returns a pointer to the cost estimator. More...
 
std::vector< std::weak_ptr< GridScanMatcherObserver > > & observers ()
 Returns a reference to the vector of pointers on observers. More...
 

Private Types

using ScePtr = std::shared_ptr< ScanCostEstimator >
 

Private Attributes

double _curr_sigma_angle
 
double _curr_sigma_coord
 
double _sigma_angle
 
double _sigma_coord
 

Additional Inherited Members

- Public Types inherited from MonteCarloScanMatcher
using ObsPtr = std::shared_ptr< GridScanMatcherObserver >
 

Detailed Description

The scan matcher based on the Monte Carlo simulation.

The robot pose is updated by shifting it on a random vector and rotation by a random angle. The vector distribution is dynamically adjusted.

Definition at line 15 of file tiny_scan_matcher.h.

Member Typedef Documentation

using TinyScanMatcher::ScePtr = std::shared_ptr<ScanCostEstimator>
private

Definition at line 17 of file tiny_scan_matcher.h.

Constructor & Destructor Documentation

TinyScanMatcher::TinyScanMatcher ( ScePtr  cost_estimator,
unsigned  bad_iter,
unsigned  max_iter,
double  sigma_coord,
double  sigma_angle 
)
inline

Initializes the scan matcher.

Parameters
[in]cost_estimator- the type of estimator for the robot location.
[in]bad_iter,max_iter- see failed_iter, max_iter in MonteCarloScanMatcher
[in]sigma_coord,sigma_angle- the $\sigma$ value of a normal distribution for the random variables. ( $\Delta x$, $\Delta y$ and $\Delta \theta$).

Definition at line 28 of file tiny_scan_matcher.h.

Member Function Documentation

virtual unsigned TinyScanMatcher::on_estimate_update ( unsigned  sample_num,
unsigned  sample_limit 
)
inlineoverrideprotectedvirtual

A callback invoked when a better estimate is found.

Parameters
sample_numAmount of tries that were complited.
sample_limitTotla amount of tries allowed.

Implements MonteCarloScanMatcher.

Definition at line 54 of file tiny_scan_matcher.h.

virtual void TinyScanMatcher::reset_state ( )
inlineoverridevirtual

Resets the scan matcher to the state it had right after the initialization.

Reimplemented from GridScanMatcher.

Definition at line 37 of file tiny_scan_matcher.h.

virtual void TinyScanMatcher::sample_pose ( RobotState base_pose)
inlineoverrideprotectedvirtual

Generates the pose of a robot in a vicinity of a base pose.

Parameters
base_poseA basical pose of a robot.

Implements MonteCarloScanMatcher.

Definition at line 43 of file tiny_scan_matcher.h.

Member Data Documentation

double TinyScanMatcher::_curr_sigma_angle
private

Definition at line 67 of file tiny_scan_matcher.h.

double TinyScanMatcher::_curr_sigma_coord
private

Definition at line 67 of file tiny_scan_matcher.h.

double TinyScanMatcher::_sigma_angle
private

Definition at line 66 of file tiny_scan_matcher.h.

double TinyScanMatcher::_sigma_coord
private

Definition at line 66 of file tiny_scan_matcher.h.


The documentation for this class was generated from the following file:


tiny_slam
Author(s):
autogenerated on Mon Jun 10 2019 15:30:57