gripper_api.cpp
Go to the documentation of this file.
00001 //
00002 // Created by tom on 26/06/16.
00003 //
00004 
00005 #include <ros/ros.h>
00006 
00007 #include <actionlib/client/simple_action_client.h>
00008 #include <control_msgs/GripperCommandAction.h>
00009 
00010 #include <moveit/move_group_interface/move_group.h>
00011 #include <moveit/planning_scene_interface/planning_scene_interface.h>
00012 #include <moveit_msgs/DisplayRobotState.h>
00013 #include <moveit_msgs/DisplayTrajectory.h>
00014 
00015 
00016 typedef actionlib::SimpleActionClient<control_msgs::GripperCommandAction> GripperClient;
00017 
00018 bool gripper_cmd(GripperClient* gripperClient,double gap,double effort) {
00019 
00020     control_msgs::GripperCommandGoal openGoal;
00021 
00022     openGoal.command.position = gap;
00023     openGoal.command.max_effort = effort;
00024     gripperClient->sendGoal(openGoal);
00025     ROS_INFO("Sent gripper goal");
00026     gripperClient->waitForResult();
00027 
00028     if(gripperClient->getState() == actionlib::SimpleClientGoalState::SUCCEEDED) {
00029         ROS_INFO("Gripper done");
00030         return true;
00031     }
00032     else {
00033         ROS_ERROR("Gripper fault");
00034         // return false;
00035     }
00036     return false;
00037 }
00038 
00039 int main(int argc, char **argv) {
00040     ros::init(argc, argv, "gripper_api");
00041 
00042     ros::AsyncSpinner spinner(1);
00043     spinner.start();
00044     ros::NodeHandle nodeHandle;
00045 
00046 
00047     GripperClient gripperClient("/gripper_controller/gripper_cmd", true);
00048     //wait for the gripper action server to come up
00049     while (!gripperClient.waitForServer(ros::Duration(5.0))){
00050         ROS_INFO("Waiting for the /gripper_controller/gripper_cmd action server to come up");
00051     }
00052 
00053     gripper_cmd(&gripperClient,0.14,0);
00054     sleep(5);
00055     gripper_cmd(&gripperClient,0.01,0.2);
00056 
00057 }


robotican_demos
Author(s):
autogenerated on Fri Oct 27 2017 03:02:45