dio_service.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 import roslib
3 roslib.load_manifest('nextage_hardware_service')
4 import rospy
5 
6 from nextage_ros_bridge import nextage_client
7 
8 from hrpsys import rtm
9 import argparse
10 
11 from std_srvs.srv import Empty, EmptyRequest, EmptyResponse
12 
13 def main():
14  parser = argparse.ArgumentParser(description='ROS service interface for Nextage hardware service')
15  parser.add_argument('--host', help='CORBA name server hostname')
16  parser.add_argument('--port', help='CORBA name server port number')
17  parser.add_argument('--modelfile', help='robot model file name')
18  parser.add_argument('--robot', help='robot module name (RobotHardware0 for real robot, Robot()')
19  args, unknown = parser.parse_known_args()
20 
21  if args.host:
22  rtm.nshost = args.host
23  if args.port:
24  rtm.nsport = args.port
25  if not args.robot:
26  args.robot = "RobotHardware0"
27  if not args.modelfile:
28  args.modelfile = ""
29 
31  robot.init(robotname=args.robot, url=args.modelfile)
32 
33  rospy.init_node("nextage_hand_dio")
34 
35  def make_on_off_service(name):
36  def on_handler(req):
37  getattr(robot, name)(True)
38  return EmptyResponse()
39  def off_handler(req):
40  getattr(robot, name)(False)
41  return EmptyResponse()
42  on = rospy.Service("nextage_hand_dio/" + name + "/on", Empty, on_handler)
43  off = rospy.Service("nextage_hand_dio/" + name + "/off", Empty, off_handler)
44  return on, off
45  make_on_off_service('turn_handlight_l')
46  make_on_off_service('turn_handlight_r')
47  make_on_off_service('turn_handlight_both')
48 
49  def make_empty_service(name):
50  def handler(req):
51  getattr(robot, name)()
52  return EmptyResponse()
53  return rospy.Service("nextage_hand_dio/" + name, Empty, handler)
54  make_empty_service('handtool_eject_l')
55  make_empty_service('handtool_eject_r')
56  make_empty_service('handtool_attach_l')
57  make_empty_service('handtool_attach_r')
58  make_empty_service('gripper_close_l')
59  make_empty_service('gripper_close_r')
60  make_empty_service('gripper_open_l')
61  make_empty_service('gripper_open_r')
62  make_empty_service('airhand_drawin_l')
63  make_empty_service('airhand_drawin_r')
64  make_empty_service('airhand_keep_l')
65  make_empty_service('airhand_keep_r')
66  make_empty_service('airhand_release_l')
67  make_empty_service('airhand_release_r')
68  make_empty_service('initialize_hand_dio')
69 
70  rospy.spin()
71 
bool init()


nextage_ros_bridge
Author(s): Isaac Isao Saito , Akio Ochiai
autogenerated on Wed Jun 17 2020 04:14:47