21#ifndef _PLUGINS_AMCL_MAP_LASERGEN_THREAD_H_
22#define _PLUGINS_AMCL_MAP_LASERGEN_THREAD_H_
26#include <aspect/blackboard.h>
27#include <aspect/blocked_timing.h>
28#include <aspect/clock.h>
29#include <aspect/configurable.h>
30#include <aspect/logging.h>
32#include <core/threading/thread.h>
34#if __cplusplus > 201100L || defined(__GXX_EXPERIMENTAL_CXX0X__)
39#include <interfaces/Laser360Interface.h>
40#include <interfaces/Position3DInterface.h>
66 bool set_laser_pose();
69 std::string cfg_map_file_;
70 float cfg_resolution_;
73 float cfg_origin_theta_;
74 float cfg_occupied_thresh_;
75 float cfg_free_thresh_;
76 bool cfg_send_zero_odom_;
77 bool cfg_use_current_pose_;
79 std::string cfg_laser_ifname_;
80 std::string cfg_pose_ifname_;
81 std::string laser_frame_id_;
82 std::string odom_frame_id_;
83 std::string base_frame_id_;
85 unsigned int map_width_;
86 unsigned int map_height_;
89 fawkes::tf::Transform latest_tf_;
97 float laser_pos_theta_;
101 float cfg_noise_sigma_;
103 std::mt19937 noise_rg_;
104 std::normal_distribution<float> noise_nd_;
Generate laser data from map and position.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual ~MapLaserGenThread()
Destructor.
virtual void finalize()
Finalize the thread.
virtual void loop()
Code to execute in the thread.
virtual void init()
Initialize the thread.
MapLaserGenThread()
Constructor.
Thread aspect to access to BlackBoard.
Thread aspect to use blocked timing.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Laser360Interface Fawkes BlackBoard Interface.
Thread aspect to log output.
Position3DInterface Fawkes BlackBoard Interface.
Thread class encapsulation of pthreads.