gazebo_ros_ir_sensor.h
Go to the documentation of this file.
1 #ifndef GAZEBO_ROS_IR_SENSOR_HH
2 #define GAZEBO_ROS_IR_SENSOR_HH
3 
4 #include <string>
5 
6 #include <boost/bind.hpp>
7 #include <boost/thread.hpp>
8 
9 #include <ros/ros.h>
10 #include <ros/advertise_options.h>
11 #include "std_msgs/Float32.h"
12 
13 #include <sdf/Param.hh>
14 #include <gazebo/physics/physics.hh>
15 #include <gazebo/transport/TransportTypes.hh>
16 #include <gazebo/msgs/MessageTypes.hh>
17 #include <gazebo/common/Time.hh>
18 #include <gazebo/common/Plugin.hh>
19 #include <gazebo/common/Events.hh>
20 #include <gazebo/sensors/SensorTypes.hh>
21 #include <gazebo/plugins/RayPlugin.hh>
23 
25 
26 namespace gazebo {
27  class GazeboRosIrSensor : public RayPlugin {
28  // \brief Constructor
29  public: GazeboRosIrSensor();
30 
31  // \brief Destructor
32  public: ~GazeboRosIrSensor();
33 
34  // \brief Load the plugin
35  // \param take in SDF root element
36  public: void Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf);
37 
38  // \brief Keep track of number of connections
40  private: void IrSensorConnect();
41  private: void IrSensorDisconnect();
42 
43  // Pointer to the model
45  private: std::string world_name_;
46  private: physics::WorldPtr world_;
47 
48  // \brief The parent sensor
49  private: sensors::RaySensorPtr parent_ray_sensor_;
50 
51  // \brief pointer to ros node
53  private: ros::Publisher pub_;
55 
56  // \brief topic name
57  private: std::string topic_name_;
58 
59  // \brief frame transform name, should match link name
60  private: std::string frame_name_;
61 
62  // \brief tf prefix
63  private: std::string tf_prefix_;
64 
65  // \brief for setting ROS name space
66  private: std::string robot_namespace_;
67 
68  // deferred load in case ros is blocking
69  private: sdf::ElementPtr sdf_;
70  private: void LoadThread();
71  private: boost::thread deferred_load_thread_;
72  private: unsigned int seed_;
73 
74  private: gazebo::transport::NodePtr gazebo_node_;
75  private: gazebo::transport::SubscriberPtr ir_sensor_scan_sub_;
76  private: void OnScan(ConstLaserScanStampedPtr &_msg);
77 
78  // \brief prevent blocking
79  private: PubMultiQueue pmq_;
80  };
81 }
82 #endif
gazebo::transport::SubscriberPtr ir_sensor_scan_sub_
PubQueue< std_msgs::Float32 >::Ptr pub_queue_
void Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf)
gazebo::transport::NodePtr gazebo_node_
sensors::RaySensorPtr parent_ray_sensor_
void OnScan(ConstLaserScanStampedPtr &_msg)


pheeno_ros_sim
Author(s): Zahi Kakish
autogenerated on Mon Jun 10 2019 14:25:55