include
pr2_mechanism_controllers
pr2_gripper_controller.h
Go to the documentation of this file.
1
/*********************************************************************
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2008, Willow Garage, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of the Willow Garage nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*********************************************************************/
34
35
#ifndef PR2_GRIPPER_CONTROLLER_H__
36
#define PR2_GRIPPER_CONTROLLER_H__
37
61
#include <
ros/node_handle.h
>
62
63
#include <
pr2_controller_interface/controller.h
>
64
#include <
control_toolbox/pid.h
>
65
#include <
control_toolbox/pid_gains_setter.h
>
66
#include <boost/scoped_ptr.hpp>
67
#include <
realtime_tools/realtime_box.h
>
68
#include <
realtime_tools/realtime_publisher.h
>
69
#include <std_msgs/Float64.h>
70
71
#include <pr2_controllers_msgs/JointControllerState.h>
72
#include <pr2_controllers_msgs/Pr2GripperCommand.h>
73
74
namespace
controller
75
{
76
77
class
Pr2GripperController
:
public
pr2_controller_interface::Controller
78
{
79
public
:
80
81
Pr2GripperController
();
82
~Pr2GripperController
();
83
84
bool
init
(
pr2_mechanism_model::RobotState
*robot,
ros::NodeHandle
&n);
85
86
virtual
void
starting
() {
87
using namespace
pr2_controllers_msgs;
88
Pr2GripperCommandPtr c(
new
Pr2GripperCommand);
89
c->position =
joint_state_
->
position_
;
90
c->max_effort = 0.0;
91
command_box_
.
set
(c);
92
}
93
97
virtual
void
update
();
98
99
pr2_mechanism_model::JointState
*
joint_state_
;
100
realtime_tools::RealtimeBox<pr2_controllers_msgs::Pr2GripperCommandConstPtr>
command_box_
;
101
102
private
:
103
int
loop_count_
;
104
pr2_mechanism_model::RobotState
*
robot_
;
105
control_toolbox::Pid
pid_
;
106
ros::Time
last_time_
;
107
108
ros::NodeHandle
node_
;
109
110
boost::scoped_ptr<
111
realtime_tools::RealtimePublisher
<
112
pr2_controllers_msgs::JointControllerState> >
controller_state_publisher_
;
113
114
ros::Subscriber
sub_command_
;
115
void
commandCB
(
const
pr2_controllers_msgs::Pr2GripperCommandConstPtr& msg);
116
};
117
118
}
// namespace
119
120
#endif
realtime_publisher.h
node_handle.h
pr2_mechanism_model::JointState
controller::Pr2GripperController::joint_state_
pr2_mechanism_model::JointState * joint_state_
Definition:
pr2_gripper_controller.h:99
controller::Pr2GripperController::Pr2GripperController
Pr2GripperController()
Definition:
pr2_gripper_controller.cpp:45
pr2_mechanism_model::JointState::position_
double position_
realtime_tools::RealtimePublisher
controller::Pr2GripperController::loop_count_
int loop_count_
Definition:
pr2_gripper_controller.h:103
controller.h
controller
controller::Pr2GripperController::~Pr2GripperController
~Pr2GripperController()
Definition:
pr2_gripper_controller.cpp:51
pr2_mechanism_model::RobotState
controller::Pr2GripperController::starting
virtual void starting()
Definition:
pr2_gripper_controller.h:86
realtime_tools::RealtimeBox< pr2_controllers_msgs::Pr2GripperCommandConstPtr >
controller::Pr2GripperController::node_
ros::NodeHandle node_
Definition:
pr2_gripper_controller.h:108
controller::Pr2GripperController::command_box_
realtime_tools::RealtimeBox< pr2_controllers_msgs::Pr2GripperCommandConstPtr > command_box_
Definition:
pr2_gripper_controller.h:100
controller::Pr2GripperController::controller_state_publisher_
boost::scoped_ptr< realtime_tools::RealtimePublisher< pr2_controllers_msgs::JointControllerState > > controller_state_publisher_
Definition:
pr2_gripper_controller.h:112
pr2_controller_interface::Controller
pid_gains_setter.h
controller::Pr2GripperController::commandCB
void commandCB(const pr2_controllers_msgs::Pr2GripperCommandConstPtr &msg)
Definition:
pr2_gripper_controller.cpp:152
controller::Pr2GripperController::init
bool init(pr2_mechanism_model::RobotState *robot, ros::NodeHandle &n)
Definition:
pr2_gripper_controller.cpp:56
ros::Time
controller::Pr2GripperController::last_time_
ros::Time last_time_
Definition:
pr2_gripper_controller.h:106
controller::Pr2GripperController::robot_
pr2_mechanism_model::RobotState * robot_
Definition:
pr2_gripper_controller.h:104
control_toolbox::Pid
controller::Pr2GripperController::update
virtual void update()
Issues commands to the joint. Should be called at regular intervals.
Definition:
pr2_gripper_controller.cpp:100
pid.h
controller::Pr2GripperController::sub_command_
ros::Subscriber sub_command_
Definition:
pr2_gripper_controller.h:114
controller::Pr2GripperController
Definition:
pr2_gripper_controller.h:77
realtime_tools::RealtimeBox::set
void set(const T &value)
controller::Pr2GripperController::pid_
control_toolbox::Pid pid_
Definition:
pr2_gripper_controller.h:105
ros::NodeHandle
ros::Subscriber
realtime_box.h
pr2_mechanism_controllers
Author(s): Sachin Chita, John Hsu, Melonee Wise
autogenerated on Sat Nov 12 2022 03:33:25