3 roslib.load_manifest(
'nextage_hardware_service')
6 from nextage_ros_bridge
import nextage_client
11 from std_srvs.srv
import Empty, EmptyRequest, EmptyResponse
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()
22 rtm.nshost = args.host
24 rtm.nsport = args.port
26 args.robot =
"RobotHardware0" 27 if not args.modelfile:
31 robot.init(robotname=args.robot, url=args.modelfile)
33 rospy.init_node(
"nextage_hand_dio")
35 def make_on_off_service(name):
37 getattr(robot, name)(
True)
38 return EmptyResponse()
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)
45 make_on_off_service(
'turn_handlight_l')
46 make_on_off_service(
'turn_handlight_r')
47 make_on_off_service(
'turn_handlight_both')
49 def make_empty_service(name):
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')