gpt4 book ai didi

python - 创建中断 (ISR) 以创建平滑的机械臂运动

转载 作者:行者123 更新时间:2023-12-01 09:16:59 24 4
gpt4 key购买 nike

我的学校有一个机械臂(UR-10),它连接到一些按钮,我想对其进行编程,以便在单击这些按钮时机械臂可以平稳地左右移动。

目前,我发现 ARM 只是移动然后停止,然后以猛烈的方式移动和停止。

我想实现一个中断,可以在按下按钮时进行感应,然后通过足够快地迭代循环来连续移动 ARM ,这样 ARM 就可以不停地移动。直到释放按钮为止。

如果有更简单的方法来实现这一点,我很想听听。

谢谢!

下面是我的代码。

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)

最佳答案

您正在使用的库代码表示(在方法的描述中):

This method is usefull since any new command from python to robot make the robot stop

https://github.com/SintefRaufossManufacturing/python-urx/blob/193577c0efed8a24d00bd12b3b6e0c7ffefb9dd9/urx/urrobot.py#L356-L357

因此,通过发出一堆命令可能无法让机器人连续移动,因为每次收到新命令时它都会停止。

您需要弄清楚要将机器人移动到的最远位置是哪里,在第一次按下按钮时发出命令将其移动到那里(使用 wait=False,以便您的代码不会等待机器人完成移动),然后在释放按钮时使用 self.r.stop() 停止机器人。

关于python - 创建中断 (ISR) 以创建平滑的机械臂运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51161843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com