ROSAriacTaskManagerPlugin.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 
18 #ifndef GAZEBO_ROS_ARIAC_TASK_MANAGER_PLUGIN_HH_
19 #define GAZEBO_ROS_ARIAC_TASK_MANAGER_PLUGIN_HH_
20 
21 #include <memory>
22 #include <gazebo/common/Plugin.hh>
23 #include <gazebo/physics/PhysicsTypes.hh>
24 #include <osrf_gear/SubmitTray.h>
25 #include <sdf/sdf.hh>
26 #include <std_msgs/String.h>
27 #include <std_srvs/Trigger.h>
28 
29 namespace gazebo
30 {
31  // Forward declare private data class
32  class ROSAriacTaskManagerPluginPrivate;
33 
109  class GAZEBO_VISIBLE ROSAriacTaskManagerPlugin : public WorldPlugin
110  {
112  public: ROSAriacTaskManagerPlugin();
113 
115  public: virtual ~ROSAriacTaskManagerPlugin();
116 
117  // Documentation inherited.
118  public: virtual void Load(physics::WorldPtr _world, sdf::ElementPtr _sdf);
119 
121  protected: void OnUpdate();
122 
124  protected: void ProcessGoalsToAnnounce();
125 
127  protected: void ControlConveyorBelt(double velocity);
128 
130  protected: void PopulateConveyorBelt();
131 
133  public: bool HandleStartService(
134  std_srvs::Trigger::Request & req, std_srvs::Trigger::Response & res);
135 
137  public: bool HandleSubmitTrayService(
138  osrf_gear::SubmitTray::Request & req, osrf_gear::SubmitTray::Response & res);
139 
141  protected: void AssignGoal(const ariac::Goal & goal);
142 
144  protected: void StopCurrentGoal();
145 
147  private: std::unique_ptr<ROSAriacTaskManagerPluginPrivate> dataPtr;
148  };
149 }
150 #endif
Class to store information about a goal.
Definition: ARIAC.hh:291
std::unique_ptr< ROSAriacTaskManagerPluginPrivate > dataPtr
Private data pointer.
A plugin that orchestrates an ARIAC task. First of all, it loads a description of the goals...


osrf_gear
Author(s):
autogenerated on Wed Sep 7 2016 03:48:12