Main Page
+
Namespaces
Namespace List
+
Namespace Members
All
Functions
Variables
+
Classes
Class List
Class Hierarchy
+
Class Members
+
All
a
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
+
Functions
a
c
f
g
i
j
k
p
q
r
s
u
v
~
+
Variables
a
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Typedefs
Enumerator
Related Functions
+
Files
File List
include
robot_mechanism_controllers
cartesian_wrench_controller.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2008, Willow Garage, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
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 the Willow Garage, Inc. nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
54
#ifndef CARTESIAN_WRENCH_CONTROLLER_H
55
#define CARTESIAN_WRENCH_CONTROLLER_H
56
57
#include <vector>
58
#include <kdl/chain.hpp>
59
#include <kdl/frames.hpp>
60
#include <kdl/chainjnttojacsolver.hpp>
61
#include <
ros/node_handle.h
>
62
#include <geometry_msgs/Wrench.h>
63
#include <
pr2_controller_interface/controller.h
>
64
#include <
pr2_mechanism_model/chain.h
>
65
#include <
tf/transform_datatypes.h
>
66
#include <
realtime_tools/realtime_publisher.h
>
67
#include <boost/scoped_ptr.hpp>
68
69
70
namespace
controller
{
71
72
class
CartesianWrenchController
:
public
pr2_controller_interface::Controller
73
{
74
public
:
75
CartesianWrenchController
();
76
~CartesianWrenchController
();
77
78
bool
init
(
pr2_mechanism_model::RobotState
*robot,
ros::NodeHandle
&n);
79
80
void
starting
();
81
void
update
();
82
83
// input of the controller
84
KDL::Wrench
wrench_desi_
;
85
86
private
:
87
ros::NodeHandle
node_
;
88
ros::Subscriber
sub_command_
;
89
void
command
(
const
geometry_msgs::WrenchConstPtr& wrench_msg);
90
pr2_mechanism_model::RobotState
*
robot_state_
;
91
pr2_mechanism_model::Chain
chain_
;
92
93
KDL::Chain
kdl_chain_
;
94
boost::scoped_ptr<KDL::ChainJntToJacSolver>
jnt_to_jac_solver_
;
95
KDL::JntArray
jnt_pos_
,
jnt_eff_
;
96
KDL::Jacobian
jacobian_
;
97
98
};
99
100
}
// namespace
101
102
103
#endif
controller::CartesianWrenchController::wrench_desi_
KDL::Wrench wrench_desi_
Definition:
cartesian_wrench_controller.h:84
ros::NodeHandle
controller::CartesianWrenchController::jnt_to_jac_solver_
boost::scoped_ptr< KDL::ChainJntToJacSolver > jnt_to_jac_solver_
Definition:
cartesian_wrench_controller.h:94
KDL::Jacobian
KDL::Chain
KDL::JntArray
controller::CartesianWrenchController::CartesianWrenchController
CartesianWrenchController()
Definition:
cartesian_wrench_controller.cpp:45
controller::CartesianWrenchController::jnt_pos_
KDL::JntArray jnt_pos_
Definition:
cartesian_wrench_controller.h:95
realtime_publisher.h
controller::CartesianWrenchController::init
bool init(pr2_mechanism_model::RobotState *robot, ros::NodeHandle &n)
Definition:
cartesian_wrench_controller.cpp:58
controller::CartesianWrenchController
Definition:
cartesian_wrench_controller.h:72
transform_datatypes.h
controller::CartesianWrenchController::jacobian_
KDL::Jacobian jacobian_
Definition:
cartesian_wrench_controller.h:96
controller::CartesianWrenchController::sub_command_
ros::Subscriber sub_command_
Definition:
cartesian_wrench_controller.h:88
pr2_mechanism_model::Chain
controller::CartesianWrenchController::command
void command(const geometry_msgs::WrenchConstPtr &wrench_msg)
Definition:
cartesian_wrench_controller.cpp:139
ros::Subscriber
node_handle.h
controller::CartesianWrenchController::update
void update()
Definition:
cartesian_wrench_controller.cpp:113
pr2_mechanism_model::RobotState
controller.h
chain.h
controller::CartesianWrenchController::~CartesianWrenchController
~CartesianWrenchController()
Definition:
cartesian_wrench_controller.cpp:52
controller::CartesianWrenchController::chain_
pr2_mechanism_model::Chain chain_
Definition:
cartesian_wrench_controller.h:91
pr2_controller_interface::Controller
controller::CartesianWrenchController::jnt_eff_
KDL::JntArray jnt_eff_
Definition:
cartesian_wrench_controller.h:95
controller::CartesianWrenchController::robot_state_
pr2_mechanism_model::RobotState * robot_state_
Definition:
cartesian_wrench_controller.h:90
KDL::Wrench
controller
controller::CartesianWrenchController::starting
void starting()
Definition:
cartesian_wrench_controller.cpp:105
controller::CartesianWrenchController::kdl_chain_
KDL::Chain kdl_chain_
Definition:
cartesian_wrench_controller.h:93
controller::CartesianWrenchController::node_
ros::NodeHandle node_
Definition:
cartesian_wrench_controller.h:87
robot_mechanism_controllers
Author(s): John Hsu, Melonee Wise, Stuart Glaser
autogenerated on Sat Nov 12 2022 03:16:28