我们从Python开源项目中,提取了以下20个代码示例,用于说明如何使用rospy.myargv()。
def main(): """SDK Navigator Example Demonstrates Navigator by echoing input values from wheels and buttons. Uses the intera_interface.Navigator class to demonstrate an example of using the register_callback feature. Shows Navigator input of the arm for 10 seconds. """ arg_fmt = argparse.ArgumentDefaultsHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt) parser.add_argument( "-n", "--navigator", dest="nav_name", default="right", choices=["right", "head"], help='Navigator on which to run example' ) args = parser.parse_args(rospy.myargv()[1:]) rospy.init_node('sdk_navigator', anonymous=True) echo_input(args.nav_name) return 0
def main(): """Intera RSDK Joint Velocity Example: Wobbler Commands joint velocities of randomly parameterized cosine waves to each joint. Demonstrates Joint Velocity Control Mode. """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("rsdk_joint_velocity_wobbler") wobbler = Wobbler() rospy.on_shutdown(wobbler.clean_shutdown) wobbler.wobble() print("Done.")
def main(): """RSDK Head Example: Wobbler Nods the head and pans side-to-side towards random angles. Demonstrates the use of the intera_interface.Head class. """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("rsdk_head_wobbler") wobbler = Wobbler() rospy.on_shutdown(wobbler.clean_shutdown) print("Wobbling... ") wobbler.wobble() print("Done.")
def main(): parser = argparse.ArgumentParser() parser.add_argument("-t", "--timeout", type=lambda t:abs(float(t)), default=60.0, help="[in seconds] Time to wait for joints to home") parser.add_argument("-m", "--mode", type=str.upper, default="AUTO", choices=['AUTO', 'MANUAL'], help="Mode to home the robot's joints") enable_parser = parser.add_mutually_exclusive_group(required=False) enable_parser.add_argument("-e", "--enable", action='store_true', dest='enable', help="Try to enable the robot before homing.") enable_parser.add_argument("-n", "--no-enable", action='store_false', dest='enable', help="Avoid trying to enable the robot before homing.") enable_parser.set_defaults(enable=True) args = parser.parse_args(rospy.myargv()[1:]) rospy.init_node('home_joints_node') if args.enable: rs = intera_interface.RobotEnable(CHECK_VERSION) rs.enable() cmd_mode = HomingCommand.MANUAL if args.mode == 'MANUAL' else HomingCommand.AUTO rospy.loginfo("Homing joints in '{0}' mode".format(args.mode.capitalize())) home_jnts = HomeJoints() state = home_jnts.home_robot(mode=cmd_mode, timeout=args.timeout) rospy.loginfo("{0} in homing the robot's joints".format("Succeeded" if state else "Failed"))
def main(): """Intera SDK Lights Example: Blink Toggles the Lights interface on then off again while printing the state at each step. Simple demonstration of using the intera_interface.Lights class. Run this example with default arguments and watch the green light on the head blink on and off while the console echos the state. Use the light names from Lights.list_all_lights() to change lights to toggle. """ epilog = """ Intera Interface Lights """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__, epilog=epilog) parser.add_argument( '-l', '--light_name', dest='light_name', default='head_green_light', help=('name of Light component to use' ' (default: head_green_light)') ) args = parser.parse_args(rospy.myargv()[1:]) rospy.init_node('sdk_lights_blink', anonymous=True) test_light_interface(args.light_name)
def main(): """RSDK Gripper Example: Keyboard Control Use your dev machine's keyboard to control and configure grippers. Run this example to command various gripper movements while adjusting gripper parameters, including calibration, velocity, and force. Uses the intera_interface.Gripper class and the helper function, intera_external_devices.getch. """ epilog = """ See help inside the example with the '?' key for key bindings. """ rp = intera_interface.RobotParams() valid_limbs = rp.get_limb_names() if not valid_limbs: rp.log_message(("Cannot detect any limb parameters on this robot. " "Exiting."), "ERROR") return arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__, epilog=epilog) parser.add_argument( "-l", "--limb", dest="limb", default=valid_limbs[0], choices=valid_limbs, help="Limb on which to run the gripper keyboard example" ) args = parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("sdk_gripper_keyboard") map_keyboard(args.limb)
def main(): """SDK Joint Position Waypoints Example Records joint positions each time the navigator 'OK/wheel' button is pressed. Upon pressing the navigator 'Rethink' button, the recorded joint positions will begin playing back in a loop. """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) parser.add_argument( '-s', '--speed', default=0.3, type=float, help='joint position motion speed ratio [0.0-1.0] (default:= 0.3)' ) parser.add_argument( '-a', '--accuracy', default=intera_interface.settings.JOINT_ANGLE_TOLERANCE, type=float, help='joint position accuracy (rad) at which waypoints must achieve' ) args = parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("sdk_joint_position_waypoints", anonymous=True) waypoints = Waypoints(args.speed, args.accuracy) # Register clean shutdown rospy.on_shutdown(waypoints.clean_shutdown) # Begin example program waypoints.record() waypoints.playback()
def main(): rp = intera_interface.RobotParams() valid_limbs = rp.get_limb_names() if not valid_limbs: rp.log_message(("Cannot detect any limb parameters on this robot. " "Exiting."), "ERROR") return # Add an option for starting a server for all valid limbs all_limbs = valid_limbs all_limbs.append("all_limbs") arg_fmt = argparse.ArgumentDefaultsHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt) parser.add_argument( "-l", "--limb", dest="limb", default=valid_limbs[0], choices=all_limbs, help="joint trajectory action server limb" ) parser.add_argument( "-r", "--rate", dest="rate", default=100.0, type=float, help="trajectory control rate (Hz)" ) parser.add_argument( "-m", "--mode", default='position_w_id', choices=['position_w_id', 'position', 'velocity'], help="control mode for trajectory execution" ) args = parser.parse_args(rospy.myargv()[1:]) start_server(args.limb, args.rate, args.mode, valid_limbs)
def main(): parser = argparse.ArgumentParser() parser.add_argument('-l', '--limb', choices=['left', 'right'], default="right", help="Calibrate the specified arm") args = parser.parse_args(rospy.myargv()[1:]) arm = args.limb print("Initializing node...") rospy.init_node('sdk_calibrate_arm_{0}'.format(arm), disable_signals=True) rospy.loginfo("Preparing to Calibrate...") gripper_warn = ("IMPORTANT: Make sure to remove grippers and other" " attachments before running Calibrate.") rospy.loginfo(gripper_warn) if not gripper_removed(args.limb): return 1 ca = CalibrateArm(arm) error = None goal_state = "unreported error" rospy.loginfo("Running Calibrate on {0} arm".format(arm)) try: goal_state = ca.start_calibration() except KeyboardInterrupt, e: error = e goal_state = ca.stop_calibration() if error == None and "success" in str(goal_state).lower(): rospy.loginfo("Calibrate arm finished successfully. Please reboot your robot to use this calibration data.") else: error = True rospy.logerr("Calibrate arm failed with {0}".format(goal_state)) rospy.logerr("Please re-run this Calibration request.") return 0 if error == None else 1
def main(): """RSDK URDF Fragment Example: This example shows a proof of concept for adding your URDF fragment to the robot's onboard URDF (which is currently in use). """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) required = parser.add_argument_group('required arguments') required.add_argument( '-f', '--file', metavar='PATH', required=True, help='Path to URDF file to send' ) required.add_argument( '-l', '--link', required=False, default="right_hand", help='URDF Link already to attach fragment to (usually <left/right>_hand)' ) required.add_argument( '-j', '--joint', required=False, default="right_gripper_base", help='Root joint for fragment (usually <left/right>_gripper_base)' ) parser.add_argument("-d", "--duration", type=lambda t:abs(float(t)), default=5.0, help="[in seconds] Duration to publish fragment") args = parser.parse_args(rospy.myargv()[1:]) rospy.init_node('rsdk_configure_urdf', anonymous=True) if not os.access(args.file, os.R_OK): rospy.logerr("Cannot read file at '%s'" % (args.file,)) return 1 send_urdf(args.link, args.joint, args.file, args.duration) return 0
def __init__(self, name): """ :param name: the name of the ROS node """ super(NaoqiNode, self).__init__() # A distutils.version.LooseVersion that contains the current verssion of NAOqi we're connected to self.__naoqi_version = None self.__name = name ## NAOqi stuff # dict from a modulename to a proxy self.__proxies = {} # Initialize ros, before getting parameters. rospy.init_node(self.__name) # If user has set parameters for ip and port use them as default default_ip = rospy.get_param("~pip", "127.0.0.1") default_port = rospy.get_param("~pport", 9559) # get connection from command line: from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("--pip", dest="pip", default=default_ip, help="IP/hostname of parent broker. Default is 127.0.0.1.", metavar="IP") parser.add_argument("--pport", dest="pport", default=default_port, type=int, help="port of parent broker. Default is 9559.", metavar="PORT") import sys args, unknown = parser.parse_known_args(args=rospy.myargv(argv=sys.argv)[1:]) self.pip = args.pip self.pport = args.pport ## ROS stuff self.__stop_thread = False # make sure that we unregister from everything when the module dies rospy.on_shutdown(self.__on_ros_shutdown)
def main(): """RSDK Joint Torque Example: Joint Springs Moves the default limb to a neutral location and enters torque control mode, attaching virtual springs (Hooke's Law) to each joint maintaining the start position. Run this example and interact by grabbing, pushing, and rotating each joint to feel the torques applied that represent the virtual springs attached. You can adjust the spring constant and damping coefficient for each joint using dynamic_reconfigure. """ # Querying the parameter server to determine Robot model and limb name(s) rp = intera_interface.RobotParams() valid_limbs = rp.get_limb_names() if not valid_limbs: rp.log_message(("Cannot detect any limb parameters on this robot. " "Exiting."), "ERROR") robot_name = intera_interface.RobotParams().get_robot_name().lower().capitalize() # Parsing Input Arguments arg_fmt = argparse.ArgumentDefaultsHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt) parser.add_argument( "-l", "--limb", dest="limb", default=valid_limbs[0], choices=valid_limbs, help='limb on which to attach joint springs' ) args = parser.parse_args(rospy.myargv()[1:]) # Grabbing Robot-specific parameters for Dynamic Reconfigure config_name = ''.join([robot_name,"JointSpringsExampleConfig"]) config_module = "intera_examples.cfg" cfg = importlib.import_module('.'.join([config_module,config_name])) # Starting node connection to ROS print("Initializing node... ") rospy.init_node("sdk_joint_torque_springs_{0}".format(args.limb)) dynamic_cfg_srv = Server(cfg, lambda config, level: config) js = JointSprings(limb=args.limb) # register shutdown callback rospy.on_shutdown(js.clean_shutdown) js.attach_springs()
def main(): """Joint Torque Example: Joint Springs Moves the specified limb in torque control mode, attaching virtual springs (Hooke's Law) to each joint maintaining the start position. """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) parser.add_argument( '-l', '--limb', dest='limb', required=True, choices=['left', 'right'], help='limb on which to attach joint springs' ) args = parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("rsdk_joint_torque_springs_%s" % (args.limb,)) dynamic_cfg_srv = Server(JointSpringsExampleConfig, lambda config, level: config) js = JointSprings(args.limb, dynamic_cfg_srv) # register shutdown callback rospy.on_shutdown(js.clean_shutdown) js._get_data() # get data from file js.move_to_neutral() #while not rospy.is_shutdown() and js.i<len(js.data): while len(js.data) and not rospy.is_shutdown(): js.attach_springs()
def start_proxies(): parser = argparse.ArgumentParser() parser.add_argument('url', help='The url address of robot cloud.') parser.add_argument('--services', '--srv', nargs='+', help='Services provided by ROSBridge server') parser.add_argument('--published_topics', '--pub', nargs='+', help='Topics published to ROSBridge server') parser.add_argument('--subscribed_topics', '--sub', nargs='+', help='Topics subscribed from ROSBrdge server') parser.add_argument('--actions', nargs='+', help='Actions provided by ROSBridge server') parser.add_argument('-q', '--queue_size', type=int, default=1000, help='ROS message queue size on each topic') parser.add_argument('-t', '--test', action='store_true', default=False, help='Use if server and client are using the same ROS master for testing. Client service and topic names will have _ws appended.') parser.add_argument('-i', '--image_id', help='Unique image id on the robot cloud.', default="") args = parser.parse_args(rospy.myargv()[1:]) if not args.url.startswith('http'): args.url = 'http://' + args.url httpurl = args.url + '/getinstance/' + args.image_id try: req = urllib2.Request(httpurl) url_and_containerid = urllib2.urlopen(req).read() wsurl = url_and_containerid.split(" ")[0] containerid = url_and_containerid.split(" ")[1] except Exception, e: rospy.logerr('Failed to get websocket address for image %s from %s. Reason: %s', args.image_id, httpurl, str(e)) return flask_url = args.url + '/ping/' + str(containerid) print "&&&&&"+flask_url+"%%%%%%" proxy = keep_container_live(flask_url) proxy.start() rospy.init_node('cloud_proxy', anonymous=True) for topic_name in args.subscribed_topics: proxy = SubscribedTopicProxy(topic_name, wsurl, args.queue_size, args.test) proxy.start() for topic_name in args.published_topics: proxy = PublishedTopicProxy(topic_name, wsurl, args.test) proxy.start() if args.services != None: for service_name in args.services: proxy = CallServiceProxy(service_name, wsurl, args.test) proxy.start() rospy.spin()
def main(): """SDK Gripper Button Control Example Connects cuff buttons to gripper open/close commands: 'Circle' Button - open gripper 'Dash' Button - close gripper Cuff 'Squeeze' - turn on Nav lights Run this example in the background or in another terminal to be able to easily control the grippers by hand while using the robot. Can be run in parallel with other code. """ rp = RobotParams() valid_limbs = rp.get_limb_names() if not valid_limbs: rp.log_message(("Cannot detect any limb parameters on this robot. " "Exiting."), "ERROR") return if len(valid_limbs) > 1: valid_limbs.append("all_limbs") arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) parser.add_argument('-g', '--gripper', dest='gripper', default=valid_limbs[0], choices=[valid_limbs], help='gripper limb to control (default: both)') parser.add_argument('-n', '--no-lights', dest='lights', action='store_false', help='do not trigger lights on cuff grasp') parser.add_argument('-v', '--verbose', dest='verbosity', action='store_const', const=rospy.DEBUG, default=rospy.INFO, help='print debug statements') args = parser.parse_args(rospy.myargv()[1:]) rospy.init_node('sdk_gripper_cuff_control_{0}'.format(args.gripper), log_level=args.verbosity) arms = (args.gripper,) if args.gripper != 'all_limbs' else valid_limbs[:-1] grip_ctrls = [GripperConnect(arm, args.lights) for arm in arms] print("Press cuff buttons for gripper control. Spinning...") rospy.spin() print("Gripper Button Control Finished.") return 0
def main(): """SDK Gripper Example: Joystick Control Use a game controller to control the grippers. Attach a game controller to your dev machine and run this example along with the ROS joy_node to control gripper using the joysticks and buttons. Be sure to provide the *joystick* type you are using as an argument to setup appropriate key mappings. Uses the intera_interface.Gripper class and the helper classes in intera_external_devices.Joystick. """ epilog = """ See help inside the example with the "Start" button for controller key bindings. """ rp = intera_interface.RobotParams() valid_limbs = rp.get_limb_names() if not valid_limbs: rp.log_message(("Cannot detect any limb parameters on this robot. " "Exiting."), "ERROR") return arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__, epilog=epilog) required = parser.add_argument_group('required arguments') required.add_argument( '-j', '--joystick', required=True, choices=['xbox', 'logitech', 'ps3'], help='specify the type of joystick to use' ) parser.add_argument( "-l", "--limb", dest="limb", default=valid_limbs[0], choices=valid_limbs, help="Limb on which to run the gripper joystick example" ) args = parser.parse_args(rospy.myargv()[1:]) joystick = None if args.joystick == 'xbox': joystick = intera_external_devices.joystick.XboxController() elif args.joystick == 'logitech': joystick = intera_external_devices.joystick.LogitechController() elif args.joystick == 'ps3': joystick = intera_external_devices.joystick.PS3Controller() else: # Should never reach this case with proper argparse usage parser.error("Unsupported joystick type '%s'" % (args.joystick)) print("Initializing node... ") rospy.init_node("sdk_gripper_joystick") map_joystick(joystick, args.limb)
def main(): """SDK Joint Recorder Example Record timestamped joint and gripper positions to a file for later play back. Run this example while moving the robot's arm and gripper to record a time series of joint and gripper positions to a new csv file with the provided *filename*. This example can be run in parallel with any other example or standalone (moving the arms in zero-g mode while pressing the cuff buttons to open/close grippers). You can later play the movements back using one of the *_file_playback examples. """ epilog = """ Related examples: joint_position_file_playback.py; joint_trajectory_file_playback.py. """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__, epilog=epilog) required = parser.add_argument_group('required arguments') required.add_argument( '-f', '--file', dest='filename', required=True, help='the file name to record to' ) parser.add_argument( '-r', '--record-rate', type=int, default=100, metavar='RECORDRATE', help='rate at which to record (default: 100)' ) args = parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("sdk_joint_recorder") print("Getting robot state... ") rs = intera_interface.RobotEnable(CHECK_VERSION) print("Enabling robot... ") rs.enable() recorder = JointRecorder(args.filename, args.record_rate) rospy.on_shutdown(recorder.stop) print("Recording. Press Ctrl-C to stop.") recorder.record() print("\nDone.")
def main(): """RSDK Joint Torque Example: Joint Springs Moves the default limb to a neutral location and enters torque control mode, attaching virtual springs (Hooke's Law) to each joint maintaining the start position. Run this example and interact by grabbing, pushing, and rotating each joint to feel the torques applied that represent the virtual springs attached. You can adjust the spring constant and damping coefficient for each joint using dynamic_reconfigure. """ # Querying the parameter server to determine Robot model and limb name(s) rp = intera_interface.RobotParams() valid_limbs = rp.get_limb_names() if not valid_limbs: rp.log_message(("Cannot detect any limb parameters on this robot. " "Exiting."), "ERROR") robot_name = intera_interface.RobotParams().get_robot_name().lower().capitalize() # Parsing Input Arguments arg_fmt = argparse.ArgumentDefaultsHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt) parser.add_argument( "-l", "--limb", dest="limb", default=valid_limbs[0], choices=valid_limbs, help='limb on which to attach joint springs' ) args = parser.parse_args(rospy.myargv()[1:]) # Grabbing Robot-specific parameters for Dynamic Reconfigure config_name = ''.join([robot_name,"JointSpringsExampleConfig"]) config_module = "intera_examples.cfg" cfg = importlib.import_module('.'.join([config_module,config_name])) # Starting node connection to ROS print("Initializing node... ") rospy.init_node("sdk_joint_torque_springs_{0}".format(args.limb)) dynamic_cfg_srv = Server(cfg, lambda config, level: config) js = JointSprings(dynamic_cfg_srv, limb=args.limb) # register shutdown callback rospy.on_shutdown(js.clean_shutdown) js.move_to_neutral() js.attach_springs()
def main(): parser = argparse.ArgumentParser() parser.add_argument('-s', '--state', const='state', dest='actions', action='append_const', help='Print current robot state') parser.add_argument('-e', '--enable', const='enable', dest='actions', action='append_const', help='Enable the robot') parser.add_argument('-d', '--disable', const='disable', dest='actions', action='append_const', help='Disable the robot') parser.add_argument('-r', '--reset', const='reset', dest='actions', action='append_const', help='Reset the robot') parser.add_argument('-S', '--stop', const='stop', dest='actions', action='append_const', help='Stop the robot') args = parser.parse_args(rospy.myargv()[1:]) if args.actions == None: parser.print_usage() parser.exit(0, "No action defined") rospy.init_node('sdk_robot_enable') rs = intera_interface.RobotEnable(intera_interface.CHECK_VERSION) try: for act in args.actions: if act == 'state': print rs.state() elif act == 'enable': rs.enable() elif act == 'disable': rs.disable() elif act == 'reset': rs.reset() elif act == 'stop': rs.stop() except Exception, e: rospy.logerr(e.strerror) return 0
def main(): """Joint Trajectory Example: File Playback Plays back joint positions honoring timestamps recorded via the joint_recorder example. Run the joint_recorder.py example first to create a recording file for use with this example. Then make sure to start the joint_trajectory_action_server before running this example. This example will use the joint trajectory action server with velocity control to follow the positions and times of the recorded motion, accurately replicating movement speed necessary to hit each trajectory point on time. """ arg_fmt = argparse.RawDescriptionHelpFormatter parser = argparse.ArgumentParser(formatter_class=arg_fmt, description=main.__doc__) parser.add_argument( '-f', '--file', metavar='PATH', required=True, help='path to input file' ) parser.add_argument( '-l', '--loops', type=int, default=1, help='number of playback loops. 0=infinite.' ) # remove ROS args and filename (sys.arv[0]) for argparse args = parser.parse_args(rospy.myargv()[1:]) print("Initializing node... ") rospy.init_node("rsdk_joint_trajectory_file_playback") print("Getting robot state... ") rs = baxter_interface.RobotEnable(CHECK_VERSION) print("Enabling robot... ") rs.enable() print("Running. Ctrl-c to quit") traj = Trajectory() traj.parse_file(path.expanduser(args.file)) #for safe interrupt handling rospy.on_shutdown(traj.stop) result = True loop_cnt = 1 loopstr = str(args.loops) if args.loops == 0: args.loops = float('inf') loopstr = "forever" while (result == True and loop_cnt <= args.loops and not rospy.is_shutdown()): print("Playback loop %d of %s" % (loop_cnt, loopstr,)) traj.start() result = traj.wait() loop_cnt = loop_cnt + 1 print("Exiting - File Playback Complete")