21 #ifndef _GAZEBO_CONVEYOR_BELT_PLUGIN_HH_ 22 #define _GAZEBO_CONVEYOR_BELT_PLUGIN_HH_ 27 #include <gazebo/msgs/msgs.hh> 28 #include <gazebo/sensors/sensors.hh> 29 #include <gazebo/util/system.hh> 30 #include <ignition/math/Vector3.hh> 46 public:
virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf);
49 protected:
void OnUpdate(
const common::UpdateInfo &_info);
52 protected: transport::NodePtr
node;
58 protected:
void OnControlCommand(ConstHeaderPtr& _msg);
70 public:
void SetVelocity(
double velocity);
74 protected: std::string Topic(std::string topicName)
const;
77 protected:
void ActOnContactingLinks(
double velocity);
double beltVelocity
Belt velocity (m/s)
transport::SubscriberPtr controlCommandSub
Subscriber for the control commands.
transport::NodePtr node
Pointer to this node for publishing/subscribing.
std::mutex mutex
Mutex to protect the belt velocity.
ignition::math::Vector3d velocityAxis
Axis for belt velocity in local frame (+Y by default)
A plugin for a conveyor belt.