noid_hand_controller.cpp
Go to the documentation of this file.
1 #include <noid_hand_controller.h>
2 
3 using namespace noid;
4 using namespace grasp;
5 
6 
8 :right_number_(0),left_number_(0)
9 {
10  ROS_INFO("hand_control_server start");
11 
12  hw_ = _in_hw;
13  nh_ = _nh;
15 
16  if(nh_.hasParam("/joint_settings/hand/right_number")) nh_.getParam("/joint_settings/hand/right_number", right_number_);
17  if(nh_.hasParam("/joint_settings/hand/left_number")) nh_.getParam("/joint_settings/hand/left_number", left_number_);
18 
19  //initialize script cancel on right_hand
21  //initialize script cancel on left_hand
23 
24  ROS_INFO("Initialized Handcontroller");
25 }
26 
28 {
29 
30 }
31 
32 bool NoidHandController::HandControlCallback(noid_ros_controller::HandControl::Request& _req,
33  noid_ros_controller::HandControl::Response& _res)
34 {
35  uint8_t send_number;
36  uint16_t script_number;
37 
38  ROS_INFO("Grasp callback start");
39 
40  //position
41  if(_req.position == "right") send_number = right_number_;
42  else if(_req.position == "left") send_number = left_number_;
43  else {
44  ROS_ERROR("please input \"right\" or \"left\". ");
45  _res.result = "service call failed";
46  return false;
47  }
48 
49  //script
50  if(_req.script == "grasp") script_number = SCRIPT_GRASP;
51  else if(_req.script == "ungrasp") script_number = SCRIPT_UNGRASP;
52  else if(_req.script == "cancel") script_number = SCRIPT_CANCEL;
53  else {
54  ROS_ERROR("please input \"grasp\", \"ungrasp\" or \"cancel\".");
55  _res.result = "service call failed";
56  return false;
57  }
58 
59  ROS_INFO("motion: %s", _req.script.c_str());
60  hw_->runHandScript(send_number, script_number, _req.current);
61 
62  ROS_INFO("End Grasp");
63  return true;
64 }
bool HandControlCallback(noid_ros_controller::HandControl::Request &_req, noid_ros_controller::HandControl::Response &_res)
NoidHandController(const ros::NodeHandle &_nh, noid_robot_hardware::NoidRobotHW *_in_hw)
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
#define ROS_INFO(...)
bool getParam(const std::string &key, std::string &s) const
void runHandScript(uint8_t _number, uint16_t _script, uint8_t _current)
bool hasParam(const std::string &key) const
#define ROS_ERROR(...)
noid_robot_hardware::NoidRobotHW * hw_


noid_ros_controller
Author(s): Yohei Kakiuchi
autogenerated on Sat Jul 20 2019 03:44:30