示例#1
0
    def sendFingerControl(self, positionA, positionB, positionC, force, velocity, scissor, mode):
        assert 0.0 <= positionA <= 254.0
        assert 0.0 <= positionB <= 254.0
        assert 0.0 <= positionC <= 254.0
        assert 0.0 <= force <= 100.0
        assert 0.0 <= velocity <= 100.0
        assert 0 <= int(mode) <= 4

        if not scissor is None:
            assert 0.0 <= scissor <= 254.0

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 1
        msg.ifc = 1
        msg.positionA = int(positionA)
        msg.positionB = int(positionB)
        msg.positionC = int(positionC)
        msg.force = int(254 * (force/100.0))
        msg.velocity = int(254 * (velocity/100.0))
        msg.mode = int(mode)

        if not scissor is None:
            msg.isc = 1
            msg.positionS = int(scissor)

        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#2
0
    def sendFingerControl(self, positionA, positionB, positionC, force,
                          velocity, scissor, mode):
        assert 0.0 <= positionA <= 254.0
        assert 0.0 <= positionB <= 254.0
        assert 0.0 <= positionC <= 254.0
        assert 0.0 <= force <= 100.0
        assert 0.0 <= velocity <= 100.0
        assert 0 <= int(mode) <= 4

        if not scissor is None:
            assert 0.0 <= scissor <= 254.0

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 1
        msg.ifc = 1
        msg.positionA = int(positionA)
        msg.positionB = int(positionB)
        msg.positionC = int(positionC)
        msg.force = int(254 * (force / 100.0))
        msg.velocity = int(254 * (velocity / 100.0))
        msg.mode = int(mode)

        if not scissor is None:
            msg.isc = 1
            msg.positionS = int(scissor)

        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#3
0
 def sendDrop(self):
     msg = lcmrobotiq.command_t()
     msg.utime = getUtime()
     msg.activate = 1
     msg.emergency_release = 1
     msg.do_move = 0
     msg.mode = 0
     msg.position = 0
     msg.force = 0
     msg.velocity = 0
     channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
     lcmUtils.publish(channel, msg)
示例#4
0
 def sendDrop(self):
     msg = lcmrobotiq.command_t()
     msg.utime = getUtime()
     msg.activate = 1
     msg.emergency_release = 1
     msg.do_move = 0
     msg.mode = 0
     msg.position = 0
     msg.force = 0
     msg.velocity = 0
     channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
     lcmUtils.publish(channel, msg)
示例#5
0
    def sendClose(self, percentage=100.0):
        assert 0.0 <= percentage <= 100.0

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 1
        msg.position = int(254 * (percentage/100.0))
        msg.force = 254
        msg.velocity = 254
        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#6
0
    def sendClose(self, percentage=100.0):
        assert 0.0 <= percentage <= 100.0

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 1
        msg.position = int(254 * (percentage / 100.0))
        msg.force = 254
        msg.velocity = 254
        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#7
0
    def setMode(self, mode):
        assert 0 <= int(mode) <= 4

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 0
        msg.position = 0
        msg.force = 0
        msg.velocity = 0
        msg.mode = int(mode)
        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#8
0
    def setMode(self, mode):
        assert 0 <= int(mode) <= 4

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 0
        msg.position = 0
        msg.force = 0
        msg.velocity = 0
        msg.mode = int(mode)
        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#9
0
    def sendCustom(self, position, force, velocity, mode):
        assert 0.0 <= position <= 100.0
        assert 0.0 <= force <= 100.0
        assert 0.0 <= velocity <= 100.0
        assert 0 <= int(mode) <= 4

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 1
        msg.position = int(254 * (position/100.0))
        msg.force = int(254 * (force/100.0))
        msg.velocity = int(254 * (velocity/100.0))
        msg.mode = int(mode)
        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#10
0
    def sendCustom(self, position, force, velocity, mode):
        assert 0.0 <= position <= 100.0
        assert 0.0 <= force <= 100.0
        assert 0.0 <= velocity <= 100.0
        assert 0 <= int(mode) <= 4

        msg = lcmrobotiq.command_t()
        msg.utime = getUtime()
        msg.activate = 1
        msg.emergency_release = 0
        msg.do_move = 1
        msg.position = int(254 * (position / 100.0))
        msg.force = int(254 * (force / 100.0))
        msg.velocity = int(254 * (velocity / 100.0))
        msg.mode = int(mode)
        channel = 'ROBOTIQ_%s_COMMAND' % self.side.upper()
        lcmUtils.publish(channel, msg)
示例#11
0
def genCommand(char):
    """Update the command according to the character entered by the user."""

    global forceLevel
    global speedLevel

    command = robotiqhand.command_t();

    #this is the default, overwrite below
    command.activate = 1
    command.do_move = 1
    command.mode = -1

    if char == 'a':
        command.do_move = 0

    elif char == 'r':
        command.activate = 0
        command.do_move = 0

    elif char == 'c':
        command.ifc = 1
        command.positionA = 254
        command.positionB = 254
        command.positionC = 254
        command.force = forceLevel
        command.velocity = speedLevel

    elif char == 'o':
        command.ifc = 1
        command.positionA = 0
        command.positionB = 0
        command.positionC = 0
        command.force = forceLevel
        command.velocity = speedLevel

    elif char == 'b':
        command.do_move = 0
        command.mode = 0
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'p':
        command.do_move = 0
        command.mode = 1
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'w':
        command.do_move = 0
        command.mode = 2
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 's':
        command.do_move = 0
        command.mode = 3
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'f':
        command.do_move = 0
        speedLevel += 32
        if speedLevel > 255:
            speedLevel = 255
        print "speed level now:", speedLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'l':
        command.do_move = 0
        speedLevel -= 32
        if speedLevel < 0:
            speedLevel = 0
        print "speed level now:", speedLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'i':
        command.do_move = 0
        forceLevel += 32
        if forceLevel > 255:
            forceLevel = 255
        print "force level now:", forceLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'd':
        command.do_move = 0
        forceLevel -= 32
        if forceLevel < 0:
            forceLevel = 0
        print "force level now:", forceLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char in [str(x) for x in range(254)]:
        command.ifc = 1
        command.positionA = int(char)
        command.positionB = int(char)
        command.positionC = int(char)
        command.force = forceLevel
        command.velocity = speedLevel

    elif char == 'e':
        command.emergency_release = 1

    else:
        # None of the individual commands were received, do nothing
        return None

    return command
def genCommand(char):
    """Update the command according to the character entered by the user."""

    global forceLevel
    global speedLevel

    command = robotiqhand.command_t()

    #this is the default, overwrite below
    command.activate = 1
    command.do_move = 1
    command.mode = -1

    if char == 'a':
        command.do_move = 0

    elif char == 'r':
        command.activate = 0
        command.do_move = 0

    elif char == 'c':
        command.ifc = 1
        command.positionA = 254
        command.positionB = 254
        command.positionC = 254
        command.force = forceLevel
        command.velocity = speedLevel

    elif char == 'o':
        command.ifc = 1
        command.positionA = 0
        command.positionB = 0
        command.positionC = 0
        command.force = forceLevel
        command.velocity = speedLevel

    elif char == 'b':
        command.do_move = 0
        command.mode = 0
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'p':
        command.do_move = 0
        command.mode = 1
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'w':
        command.do_move = 0
        command.mode = 2
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 's':
        command.do_move = 0
        command.mode = 3
        command.position = 0
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'f':
        command.do_move = 0
        speedLevel += 32
        if speedLevel > 255:
            speedLevel = 255
        print "speed level now:", speedLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'l':
        command.do_move = 0
        speedLevel -= 32
        if speedLevel < 0:
            speedLevel = 0
        print "speed level now:", speedLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'i':
        command.do_move = 0
        forceLevel += 32
        if forceLevel > 255:
            forceLevel = 255
        print "force level now:", forceLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char == 'd':
        command.do_move = 0
        forceLevel -= 32
        if forceLevel < 0:
            forceLevel = 0
        print "force level now:", forceLevel
        command.velocity = speedLevel
        command.force = forceLevel

    elif char in [str(x) for x in range(254)]:
        command.ifc = 1
        command.positionA = int(char)
        command.positionB = int(char)
        command.positionC = int(char)
        command.force = forceLevel
        command.velocity = speedLevel

    elif char == 'e':
        command.emergency_release = 1

    else:
        # None of the individual commands were received, do nothing
        return None

    return command