gazebo_quadrotor_propulsion.h
Go to the documentation of this file.
1 //=================================================================================================
2 // Copyright (c) 2012-2016, Institute of Flight Systems and Automatic Control,
3 // Technische Universität Darmstadt.
4 // All rights reserved.
5 
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of hector_quadrotor nor the names of its contributors
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 //=================================================================================================
28 
29 #ifndef HECTOR_QUADROTOR_GAZEBO_PLUGINS_QUADROTOR_PROPULSION_H
30 #define HECTOR_QUADROTOR_GAZEBO_PLUGINS_QUADROTOR_PROPULSION_H
31 
32 #include <gazebo/common/Plugin.hh>
33 #include <gazebo/common/Time.hh>
34 
35 #include <ros/callback_queue.h>
36 #include <ros/ros.h>
37 
40 
41 #include <boost/thread.hpp>
42 
43 namespace gazebo
44 {
45 
46 class GazeboQuadrotorPropulsion : public ModelPlugin
47 {
48 public:
51 
52 protected:
53  virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf);
54  virtual void Reset();
55  virtual void Update();
56 
57 private:
59  physics::WorldPtr world;
60 
62  physics::LinkPtr link;
63 
65 
68  boost::thread callback_queue_thread_;
69  void QueueThread();
70 
77 
78  std::string body_name_;
79  std::string namespace_;
80  std::string param_namespace_;
81  std::string trigger_topic_;
82  std::string command_topic_;
83  std::string pwm_topic_;
84  std::string wrench_topic_;
85  std::string supply_topic_;
86  std::string status_topic_;
87  std::string frame_id_;
90 
91  common::Time last_time_;
92  common::Time last_trigger_time_;
94  common::Time last_supply_time_;
95 
96  // Pointer to the update event connection
97  event::ConnectionPtr updateConnection;
98 
101 };
102 
103 }
104 
105 #endif // HECTOR_QUADROTOR_GAZEBO_PLUGINS_QUADROTOR_PROPULSION_H
hector_quadrotor_model::QuadrotorPropulsion model_
physics::LinkPtr link
The link referred to by this plugin.
virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf)
physics::WorldPtr world
The parent World.


hector_quadrotor_gazebo_plugins
Author(s): Johannes Meyer
autogenerated on Mon Jun 10 2019 13:36:58