1 #ifndef SLAM_CTOR_CORE_SINGLE_STATE_HYPOTHESIS_LASER_SCAN_GRID_WORLD_H 2 #define SLAM_CTOR_CORE_SINGLE_STATE_HYPOTHESIS_LASER_SCAN_GRID_WORLD_H 7 #include "../maps/grid_map.h" 8 #include "../maps/grid_map_scan_adders.h" 22 std::shared_ptr<GridScanMatcher>
gsm,
23 std::shared_ptr<GridMapScanAdder>
gmsa,
32 double localized_scan_quality = 1.0;
33 double raw_scan_quality = 1.0;
34 std::size_t scan_margin = 0;
37 std::shared_ptr<GridScanMatcher>
gsm;
38 std::shared_ptr<GridMapScanAdder>
gmsa;
42 template <
typename MapT>
57 auto sm = scan_matcher();
58 if (sm) { sm->subscribe(obs); }
62 auto sm = scan_matcher();
63 if (sm) { sm->unsubscribe(obs); }
75 auto sm = scan_matcher();
79 sm->process_scan(tr_scan, this->pose(), this->map(), pose_delta);
80 this->update_robot_pose(pose_delta);
82 tr_scan.
quality = pose_delta ? _props.localized_scan_quality
83 : _props.raw_scan_quality;
85 scan_adder()->append_scan(_map, this->pose(), tr_scan.
scan,
86 tr_scan.
quality, _props.scan_margin);
SingleStateHypothesisLSGWProperties()
void add_sm_observer(std::shared_ptr< GridScanMatcherObserver > obs)
const MapType & map() const override
double localized_scan_quality
typename World< TransformedLaserScan, UnboundedLazyTiledGridMap >::MapType MapType
std::shared_ptr< GridScanMatcher > gsm
std::shared_ptr< GridMapScanAdder > gmsa
std::shared_ptr< GridCell > cell_prototype
virtual void handle_observation(TransformedLaserScan &tr_scan)
SingleStateHypothesisLaserScanGridWorld(const Properties &props)
void remove_sm_observer(std::shared_ptr< GridScanMatcherObserver > obs)