Go to the documentation of this file.
3 #include <franka/gripper.h>
4 #include <franka_example_controllers/teleop_gripper_paramConfig.h>
5 #include <franka_gripper/GraspAction.h>
6 #include <franka_gripper/HomingAction.h>
7 #include <franka_gripper/MoveAction.h>
8 #include <franka_gripper/StopAction.h>
11 #include <dynamic_reconfigure/server.h>
14 #include <sensor_msgs/JointState.h>
20 using franka_gripper::GraspAction;
21 using franka_gripper::HomingAction;
22 using franka_gripper::MoveAction;
23 using franka_gripper::StopAction;
44 bool init(
const std::shared_ptr<ros::NodeHandle>& pnh) {
49 "teleop_gripper_node: Could not read parameter gripper_homed. "
58 dynamic_reconfigure::Server<franka_example_controllers::teleop_gripper_paramConfig>>(
63 bool homing_success(
false);
65 ROS_INFO(
"teleop_gripper_node: Homing Gripper.");
74 leader_sub_ = pnh->subscribe(
"leader/joint_states", 1,
78 "teleop_gripper_node: Action Server could not be started. Shutting "
113 dynamic_reconfigure::Server<franka_example_controllers::teleop_gripper_paramConfig>>
117 const franka_example_controllers::teleop_gripper_paramConfig& config,
122 ROS_INFO_STREAM(
"Dynamic Reconfigure: Gripper params set: grasp_force = "
139 ROS_ERROR(
"teleop_gripper_node: HomingAction has timed out.");
150 double gripper_width = 2 * msg.position[0];
153 franka_gripper::GraspGoal grasp_goal;
163 ROS_INFO(
"teleop_gripper_node: GraspAction was not successful.");
168 franka_gripper::MoveGoal move_goal;
175 ROS_ERROR(
"teleop_gripper_node: MoveAction was not successful.");
182 int main(
int argc,
char** argv) {
183 ros::init(argc, argv,
"teleop_gripper_node");
184 auto pnh = std::make_shared<ros::NodeHandle>(
"~");
186 if (teleop_gripper_client.
init(pnh)) {
double start_pos_opening_
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
void subscriberCallback(const sensor_msgs::JointState &msg)
double start_pos_grasping_
int main(int argc, char **argv)
bool waitForServer(const ros::Duration &timeout=ros::Duration(0, 0)) const
void teleopGripperParamCallback(const franka_example_controllers::teleop_gripper_paramConfig &config, uint32_t)
HomingClient follower_homing_client_
double grasp_epsilon_outer_scaling_
ros::NodeHandle dynamic_reconfigure_teleop_gripper_param_node_
std::mutex dynamic_reconfigure_mutex_
void sendGoal(const Goal &goal, SimpleDoneCallback done_cb=SimpleDoneCallback(), SimpleActiveCallback active_cb=SimpleActiveCallback(), SimpleFeedbackCallback feedback_cb=SimpleFeedbackCallback())
bool waitForResult(const ros::Duration &timeout=ros::Duration(0, 0))
#define ROS_INFO_STREAM(args)
HomingClient leader_homing_client_
Client class for teleoperating a follower gripper from a leader gripper.
std::mutex subscriber_mutex_
std::unique_ptr< dynamic_reconfigure::Server< franka_example_controllers::teleop_gripper_paramConfig > > dynamic_server_teleop_gripper_param_
double grasp_epsilon_inner_
GraspClient grasp_client_
bool init(const std::shared_ptr< ros::NodeHandle > &pnh)
ros::Subscriber leader_sub_