Exemple #1
0
def main():
    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

    arg_fmt = argparse.RawDescriptionHelpFormatter
    parser = argparse.ArgumentParser(formatter_class=arg_fmt,
                                     description=main.__doc__)

    parser.add_argument('-n', '--name', dest='name')
    # args = parser.parse_args(rospy.myargv()[1:])
    parser.add_argument('-s', '--start', dest='start', type=int)
    args = parser.parse_args(rospy.myargv()[1:])

    rospy.init_node("Record" + str(uuid.uuid4().hex), log_level=rospy.ERROR)
    print "Record" + str(uuid.uuid4().hex)
    if args.start == None:
        args.start = 0

    motion = RecordMotion('right', args.name, args.start)

    rospy.on_shutdown(motion.clean_shutdown)
    motion.record()

    return 0
Exemple #2
0
def main():
    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')
    parser.add_argument(
        "-l",
        "--limb",
        dest="limb",
        default=valid_limbs[0],
        choices=valid_limbs,
        help="Limb on which to run the joint position keyboard example")
    args = parser.parse_args(rospy.myargv()[1:])

    rospy.init_node('sawyer_metc_gripper'.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]

    rs = intera_interface.RobotEnable(CHECK_VERSION)
    rs.enable()

    rospy.on_shutdown(clean_shutdown)

    rospy.Subscriber("chatter", GripperControl, grip_ctrls[0]._handle_message)

    rospy.spin()
    return 0
Exemple #3
0
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
Exemple #4
0
    def __init__(self, arm, name, start):
        uri = "mongodb://*****:*****@sawyer-mongo.documents.azure.com:10255/?ssl=true"
        client = MongoClient(uri)
        self.db = client.SawyerDB
        self.collection = self.db.Commands
        self.commandName = name
        self.commandNumber = start
        rp = RobotParams()
        self._lastJoin = {}
        self.lastButtonPress = datetime.datetime.now()

        self._rs = intera_interface.RobotEnable()
        self._init_state = self._rs.state().enabled
        print("Enabling robot... ")
        self._rs.enable()
        self._navigator_io = intera_interface.Navigator()

        head_display = intera_interface.HeadDisplay()
        head_display.display_image(
            "/home/microshak/Pictures/Sawyer_Navigator_Main.png", False, 1.0)

        valid_limbs = rp.get_limb_names()
        self._arm = rp.get_limb_names()[0]
        self._limb = intera_interface.Limb(arm)
        if start == None:
            limb = intera_interface.Limb("right")
            limb.move_to_neutral()

        print(self._arm)
        # inputs
        self._cuff = Cuff(limb='right')
        self._navigator = Navigator()
        # connect callback fns to signals
        self._lights = None
        self._lights = Lights()
        self._cuff.register_callback(self._light_action,
                                     '{0}_cuff'.format('right'))
        try:
            self._gripper = Gripper(self._arm)
            #if not (self._gripper.is_calibrated() or self._gripper.calibrate() == True):
            #  rospy.logerr("({0}_gripper) calibration failed.".format(self._gripper.name))
            #  raise

        except:
            self._gripper = None
            msg = ("{0} Gripper is not connected to the robot."
                   " Running cuff-light connection only.").format(
                       arm.capitalize())
            rospy.logwarn(msg)
Exemple #5
0
    def __init__(self, Name):

        CONNECTION_STRING = "HostName=RobotForman.azure-devices.net;DeviceId=PythonTest;SharedAccessKey=oh9Fj0mAMWJZpNNyeJ+bSecVH3cBQwbzjDnoVmeSV5g="

        self.protocol = IoTHubTransportProvider.HTTP
        self.client = IoTHubClient(CONNECTION_STRING, self.protocol)
        self.client.set_option("messageTimeout", MESSAGE_TIMEOUT)
        self.client.set_option("MinimumPollingTime", MINIMUM_POLLING_TIME)

        self.client.set_message_callback(receive_message_callback,
                                         RECEIVE_CONTEXT)

        moveit_commander.roscpp_initialize(sys.argv)
        rospy.init_node('mid' + str(uuid.uuid4().hex), anonymous=True)
        print 'mid' + str(uuid.uuid4().hex)
        self.head_display = intera_interface.HeadDisplay()
        self.head_display.display_image("/home/microshak/Pictures/Ready.png",
                                        False, 1.0)
        self.head = intera_interface.Head()
        rp = RobotParams()
        valid_limbs = rp.get_limb_names()

        robot = moveit_commander.RobotCommander()
        rp.max_velocity_scaling_factor = .5
        scene = moveit_commander.PlanningSceneInterface()

        self.group = moveit_commander.MoveGroupCommander("right_arm")

        display_trajectory_publisher = rospy.Publisher(
            '/move_group/display_planned_path',
            moveit_msgs.msg.DisplayTrajectory,
            queue_size=20)

        self.light = Lights()
        self.headLight("green")

        #  rs = intera_interface.RobotEnable(CHECK_VERSION)

        self.group.clear_pose_targets()
        self.endeffector = intera_interface.Gripper("right")

        self.uri = "mongodb://*****:*****@sawyer-mongo.documents.azure.com:10255/?ssl=true"
        self.Mongoclient = MongoClient(self.uri)

        if Name == None:
            self.poleIoTHub()
        else:
            self.completeCommands(Name)