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)
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)
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)
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)
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)
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)
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)
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)
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