В моей школе есть роботизированная рука (UR-10), подключенная к некоторым кнопкам, и я хотел запрограммировать ее так, чтобы при нажатии на эти кнопки рука могла плавно перемещаться влево и вправо.
В настоящее время я обнаружил, что рука просто двигается, затем останавливается, затем двигается и останавливается рывками.
Я хотел реализовать прерывание, которое могло бы ощущаться, пока кнопка нажата, тогда рука будет непрерывно двигаться, повторяя цикл достаточно быстро, чтобы рука двигалась без остановки. То есть, пока кнопка не отпущена.
Если есть более простой способ реализовать это, я бы с удовольствием это услышал.
Спасибо!
Ниже мой код.
import urx #UR-10 library
from threading import Thread
class UR10(object):
def __init__(self):
# Establishes connection to UR-10 via IP address
print("establishing connection")
Robot = urx.Robot("192.168.100.82")
self.r = Robot
print("Robot object is available as robot or r")
CheckingDigital_Inputs = Thread(target=self.ThreadChecker)
CheckingDigital_Inputs.setDaemon(True)
CheckingDigital_Inputs.start()
MoveThread = Thread(target = self.MoveThread)
MoveThread.setDaemon(True)
MoveThread.start()
def ThreadChecker(self):
while True:
self.TestingInputs()
def TestingInputs(self):
#Values = self.r.get_digital_in()
self.In_1 = self.r.get_digital_in(1)
self.In_2 = self.r.get_digital_in(2)
#print("Digital Input 1 is {}, Digital Input 2 is {}".format(Values1, Values2))
def MoveThread(self):
while True:
self.LinearMovement()
def LinearMovement(self):
#print("linear move")
#need to run at 125khz
while self.In_1:
print("move right linear")
l = 0.05
v = 0.05
a = 0.05
pose = self.r.getl()
print(pose)
pose[0] += .01
self.r.movel(pose, acc=a, vel=v)