gmapping
Task.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 #ifndef GMAPPING_TASK_TASK_HPP
4 #define GMAPPING_TASK_TASK_HPP
5 
6 #include "gmapping/TaskBase.hpp"
7 #include <gmapping/gmappingTypes.hpp>
8 #include <base/samples/RigidBodyState.hpp>
9 #include <boost/thread.hpp>
10 
11 
12 #include <gmapping/gridfastslam/gridslamprocessor.h>
13 #include <gmapping/sensor/sensor_base/sensor.h>
14 
15 namespace gmapping {
16 
38  class Task : public TaskBase
39  {
40 
41  private:
42 
43  base::samples::RigidBodyState base_to_laser_;
44  base::samples::RigidBodyState map_to_odom_;
45  int laser_count_;
46  boost::thread* transform_thread_;
47 
48  GMapping::GridSlamProcessor* gsp_;
49  GMapping::RangeSensor* gsp_laser_;
50  GMapping::OdometrySensor* gsp_odom_;
51 
52  double gsp_laser_angle_increment_;
53  bool got_first_scan_;
54  bool got_map_;
55  Config config_;
56 
57  boost::mutex map_to_odom_mutex_;
58  boost::mutex map_mutex_;
59  OccupancyGrid map_;
60 
61  unsigned int gsp_laser_beam_count_;
62 
63  double computePoseEntropy();
64  void laserCallBack(base::samples::LaserScan& scan);
65  void tfCallBack(base::samples::RigidBodyState& tf);
66 
67  void updateMap(const Laser& scan);
68  bool getOdomPose(GMapping::OrientedPoint& gmap_pose, const base::Time& t);
69  bool initMapper(const Laser& scan, GMapping::OrientedPoint& initialPose);
70  bool addScan(const Laser& scan, GMapping::OrientedPoint& gmap_pose);
71 
72  bool createImage(OccupancyGrid map);
73 
74  friend class TaskBase;
75  protected:
76 
77  /*
78  */
79  virtual ::gmapping::OccupancyGrid getDynamicMap();
80  virtual void scanTransformerCallback(const base::Time &ts, const ::base::samples::LaserScan &scan_sample);
81 
82  public:
87  Task(std::string const& name = "gmapping::Task");
88 
94  Task(std::string const& name, RTT::ExecutionEngine* engine);
95 
98  ~Task();
99 
114  bool configureHook();
115 
121  bool startHook();
122 
137  void updateHook();
138 
145  void errorHook();
146 
150  void stopHook();
151 
156  void cleanupHook();
157 
158 
159  void publishLoop(double transform_publish_period);
160 
161  void publishTransform();
162  };
163 }
164 
165 #endif
166 
virtual void scanTransformerCallback(const base::Time &ts, const ::base::samples::LaserScan &scan_sample)
Definition: Task.cpp:262
void updateHook()
Definition: Task.cpp:328
bool startHook()
Definition: Task.cpp:78
Definition: gmappingTypes.hpp:147
void errorHook()
Definition: Task.cpp:334
Definition: gmappingTypes.hpp:16
friend class TaskBase
Definition: Task.hpp:74
~Task()
Definition: Task.cpp:27
void stopHook()
Definition: Task.cpp:342
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: Task.cpp:47
virtual ::gmapping::OccupancyGrid getDynamicMap()
Definition: Task.cpp:31
Task(std::string const &name="gmapping::Task")
Definition: Task.cpp:17
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: Task.hpp:38
void publishTransform()
Definition: Task.cpp:390
Definition: gmappingTypes.hpp:133
Definition: gmappingTypes.hpp:18
void publishLoop(double transform_publish_period)
Definition: Task.cpp:381
void cleanupHook()
Definition: Task.cpp:347