multi_trigger_controller.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  * Software License Agreement (BSD License)
4  *
5  * Copyright (c) 2009, Willow Garage, Inc.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * * Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  * * Redistributions in binary form must reproduce the above
15  * copyright notice, this list of conditions and the following
16  * disclaimer in the documentation and/or other materials provided
17  * with the distribution.
18  * * Neither the name of the Willow Garage nor the names of its
19  * contributors may be used to endorse or promote products derived
20  * from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGE.
34  *********************************************************************/
35 #ifndef TRIGGER_CONTROLLER_H
36 #define TRIGGER_CONTROLLER_H
37 
38 #include <vector>
39 
40 #include <ros/node_handle.h>
43 #include <ethercat_trigger_controllers/SetMultiWaveform.h>
44 #include <ethercat_trigger_controllers/MultiWaveform.h>
46 #include <std_msgs/Header.h>
47 #include <boost/shared_ptr.hpp>
48 #include <boost/thread/mutex.hpp>
49 
56 namespace controller
57 {
59 {
60 typedef ethercat_trigger_controllers::MultiWaveform config_t;
61 public:
63 
65 
66  void update();
67 
69 
70 private:
71  boost::mutex config_mutex_; // Held while config_ is changing.
72 
74  ethercat_trigger_controllers::SetMultiWaveform::Request &req,
75  ethercat_trigger_controllers::SetMultiWaveform::Response &resp);
76 
79 
80  // Information about the next transition
83  unsigned int transition_index_;
84 
88 
89  std::vector<boost::shared_ptr<realtime_tools::RealtimePublisher<std_msgs::Header> > > pubs_;
90 
91  // Configuration of controller.
93  std::string digital_output_name_;
94 };
95 
96 };
97 
98 #endif
99 
realtime_publisher.h
node_handle.h
controller::MultiTriggerController::pubs_
std::vector< boost::shared_ptr< realtime_tools::RealtimePublisher< std_msgs::Header > > > pubs_
Definition: multi_trigger_controller.h:89
ros::Publisher
pr2_hardware_interface::DigitalOutCommand
controller::MultiTriggerController::set_waveform_handle_
ros::ServiceServer set_waveform_handle_
Definition: multi_trigger_controller.h:85
controller::MultiTriggerController::config_t
ethercat_trigger_controllers::MultiWaveform config_t
Definition: multi_trigger_controller.h:60
controller::MultiTriggerController::waveform_
ros::Publisher waveform_
Definition: multi_trigger_controller.h:87
ros::ServiceServer
controller::MultiTriggerController::config_
config_t config_
Definition: multi_trigger_controller.h:92
controller::MultiTriggerController::transition_period_
double transition_period_
Definition: multi_trigger_controller.h:82
controller::MultiTriggerController::setMultiWaveformSrv
bool setMultiWaveformSrv(ethercat_trigger_controllers::SetMultiWaveform::Request &req, ethercat_trigger_controllers::SetMultiWaveform::Response &resp)
Definition: multi_trigger_controller.cpp:182
controller.h
controller
pr2_mechanism_model::RobotState
controller::MultiTriggerController::digital_output_name_
std::string digital_output_name_
Definition: multi_trigger_controller.h:93
pr2_controller_interface::Controller
controller::MultiTriggerController::node_handle_
ros::NodeHandle node_handle_
Definition: multi_trigger_controller.h:86
controller::MultiTriggerController::robot_
pr2_mechanism_model::RobotState * robot_
Definition: multi_trigger_controller.h:77
controller::MultiTriggerController::MultiTriggerController
MultiTriggerController()
Definition: multi_trigger_controller.cpp:49
controller::MultiTriggerController::transition_index_
unsigned int transition_index_
Definition: multi_trigger_controller.h:83
controller::MultiTriggerController::transition_time_
double transition_time_
Definition: multi_trigger_controller.h:81
controller::MultiTriggerController::config_mutex_
boost::mutex config_mutex_
Definition: multi_trigger_controller.h:71
controller::MultiTriggerController::init
bool init(pr2_mechanism_model::RobotState *robot, ros::NodeHandle &n)
Definition: multi_trigger_controller.cpp:113
controller::MultiTriggerController::digital_out_command_
pr2_hardware_interface::DigitalOutCommand * digital_out_command_
Definition: multi_trigger_controller.h:78
controller::MultiTriggerController::update
void update()
Definition: multi_trigger_controller.cpp:58
controller::MultiTriggerController::~MultiTriggerController
~MultiTriggerController()
Definition: multi_trigger_controller.cpp:54
ros::NodeHandle
robot.h
controller::MultiTriggerController
Definition: multi_trigger_controller.h:58


ethercat_trigger_controllers
Author(s): Blaise Gassend
autogenerated on Sat Nov 12 2022 03:33:17