ed_sensor_integration
laser_plugin.h
Go to the documentation of this file.
1 #ifndef ED_SENSOR_INTEGRATION_LASER_PLUGIN_H_
2 #define ED_SENSOR_INTEGRATION_LASER_PLUGIN_H_
3 
4 #include "ed/laser/updater.h"
5 
6 #include <ed/plugin.h>
7 #include <ed/convex_hull.h>
8 
10 
11 #include <ros/subscriber.h>
12 #include <ros/callback_queue.h>
13 #include <sensor_msgs/LaserScan.h>
14 
15 #include <queue>
16 #include <map>
17 #include <memory>
18 
19 class LaserPlugin : public ed::Plugin
20 {
21 
22 public:
23 
24  LaserPlugin();
25 
26  virtual ~LaserPlugin();
27 
28  // initialise plugin
29  void initialize(ed::InitData& init);
30 
31  // process plugin
32  void process(const ed::WorldModel& world, ed::UpdateRequest& req);
33 
34 private:
35  ros::CallbackQueue cb_queue_;
36 
37  ros::Subscriber sub_scan_;
38 
40 
42 
43  void scanCallback(const sensor_msgs::LaserScan::ConstPtr& msg);
44 
53  void update(const ed::WorldModel& world, const sensor_msgs::LaserScan::ConstPtr& scan,
54  const geo::Pose3D& sensor_pose, ed::UpdateRequest& req);
55 };
56 
57 
58 #endif
ed::Plugin
ed::UpdateRequest
LaserPlugin::LaserPlugin
LaserPlugin()
Definition: laser_plugin.cpp:48
updater.h
LaserPlugin
Definition: laser_plugin.h:19
convex_hull.h
LaserPlugin::updater_
LaserUpdater updater_
Definition: laser_plugin.h:41
geo::Transform3T
ed::InitData
queue
LaserRangeFinder.h
LaserPlugin::sub_scan_
ros::Subscriber sub_scan_
Definition: laser_plugin.h:37
LaserPlugin::scanCallback
void scanCallback(const sensor_msgs::LaserScan::ConstPtr &msg)
Definition: laser_plugin.cpp:152
req
string req
map
ed::WorldModel
memory
plugin.h
LaserPlugin::cb_queue_
ros::CallbackQueue cb_queue_
Definition: laser_plugin.h:35
LaserUpdater
Definition: laser/updater.h:17
ed::Plugin::initialize
virtual void initialize()
LaserPlugin::scan_buffer_
std::queue< sensor_msgs::LaserScan::ConstPtr > scan_buffer_
Definition: laser_plugin.h:39
LaserPlugin::~LaserPlugin
virtual ~LaserPlugin()
Definition: laser_plugin.cpp:52
LaserPlugin::process
void process(const ed::WorldModel &world, ed::UpdateRequest &req)
Definition: laser_plugin.cpp:74
LaserPlugin::update
void update(const ed::WorldModel &world, const sensor_msgs::LaserScan::ConstPtr &scan, const geo::Pose3D &sensor_pose, ed::UpdateRequest &req)
Update the worldmodel based on a novel laserscan message.
Definition: laser_plugin.cpp:129