职位:43 线程:19 加入时间:2018年6月
声誉:
2
大家好, 我一直在用KUKA robot + robodk + python脚本做一些测试,我注意到机器人没有等待完成运动(在这种情况下,move_joint) 这是一些奇怪的行为,因为我们有另一个相同品牌和型号的机器人,它正在等待完成动作,然后开始下一行python代码…… 我想知道这是因为robot或者robodk上的某些设置吗?
提前谢谢!
职位:43 线程:19 加入时间:2018年6月
声誉:
2
我注意到,机器人在移动时不会阻塞,只要我之前使用了一堆setDO函数
使用DO的示例:
代码:
def robot_ready (): 打印(“机器人准备好了!”) 机器人。setDO(io_value = 1, io_var = 4) # Robot Ready
def robot_not_ready (): 打印(“机器人还没准备好!”) 机器人。setDO(io_value = 0, io_var = 4) #机器人未准备好
#设置工作模式获取“工作编号” def work_mode(模式): 打印(“工作模式设置”) 如果mode == "job_numbers": 机器人。setDO(io_value = 0, io_var = 11) 机器人。setDO(io_value = 1, io_var = 8) 机器人。setDO(io_value = 0, io_var = 7) Elif mode == "manual": 机器人。setDO(io_value = 0, io_var = 11) 机器人。setDO(io_value = 0, io_var = 8) 机器人。setDO(io_value = 1, io_var = 7)
#设置工作#1 def job1 (): 打印(“转换到工作#1”) 机器人。setDO(io_value = 1, io_var = 12) time . sleep (0.1) 机器人。setDO(io_value = 0, io_var = 15) time . sleep (0.1) 机器人。setDO(io_value = 0, io_var = 16) time . sleep (0.1)
robot_ready () robot.move_joint (pos) 打印(“1”) robot.move_joint (weld_1) 打印(“2”) robot.move_joint (pos) 打印(“3”)
输出:
代码:
机器人准备好了! [2020-07-31 09:33:32.355090] KUKA START setDO['io_value=1', 'io_var=4'] [2020-07-31 09:33:32.355090] KUKA FINISH setDO['io_value=1', 'io_var=4'] 工作模式设置 [2020-07-31 09:33:32.356088] KUKA START setDO['io_value=0', 'io_var=11'] [2020-07-31 09:33:32.357085] KUKA FINISH setDO['io_value=0', 'io_var=11'] [2020-07-31 09:33:32.357085] KUKA START setDO['io_value=1', 'io_var=8'] [2020-07-31 09:33:32.357085] KUKA FINISH setDO['io_value=1', 'io_var=8'] [2020-07-31 09:33:32.358097] KUKA START setDO['io_value=0', 'io_var=7'] [2020-07-31 09:33:32.358097] KUKA FINISH setDO['io_value=0', 'io_var=7'] 转换到工作一 [2020-07-31 09:33:32.358097] KUKA START setDO['io_value=1', 'io_var=12'] [2020-07-31 09:33:32.361074] KUKA FINISH setDO['io_value=1', 'io_var=12'] [2020-07-31 09:33:32.361074] KUKA START setDO['io_value=0', 'io_var=15'] [2020-07-31 09:33:32.361074] KUKA FINISH setDO['io_value=0', 'io_var=15'] [2020-07-31 09:33:32.361074] KUKA START setDO['io_value=0', 'io_var=16'] [2020-07-31 09:33:32.362071] KUKA FINISH setDO['io_value=0', 'io_var=16'] [2020-07-31 09:33:32.362071] KUKA START move_joint[矩阵:(4,4)] 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] [2020-07-31 09:33:32.535185] KUKA FINISH move_joint[矩阵:(4,4)] 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] 1 [2020-07-31 09:33:32.535185] KUKA START move_joint[矩阵:(4,4) Pose(1533.415, 263.949, 841.912, 179.999, 0.001, 0.002): [[1.000, -0.000, 0.000, 1533.415], [-0.000, -1.000, -0.000, 263.949], [0.000, 0.000, -1.000, 841.912], [0.000, 0.000, 0.000, 1.000]] ] [2020-07-31 09:33:32.605416] KUKA FINISH move_joint[矩阵:(4,4)] Pose(1533.415, 263.949, 841.912, 179.999, 0.001, 0.002): [[1.000, -0.000, 0.000, 1533.415], [-0.000, -1.000, -0.000, 263.949], [0.000, 0.000, -1.000, 841.912], [0.000, 0.000, 0.000, 1.000]] ] 2 [2020-07-31 09:33:32.605621] KUKA START move_joint[矩阵:(4,4) 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] [2020-07-31 09:33:32.678451] KUKA FINISH move_joint[矩阵:(4,4) 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] 3.
没有做的事:
代码:
# robot_ready () # work_mode(“job_numbers”) # job1 ()
robot.move_joint (pos) 打印(“1”) robot.move_joint (weld_1) 打印(“2”) robot.move_joint (pos) 打印(“3”)
输出:
代码:
[2020-07-31 09:35:01.823666] KUKA START move_joint[矩阵:(4,4) 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] [2020-07-31 09:35:02.240909] KUKA FINISH move_joint[矩阵:(4,4) 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] 1 [2020-07-31 09:35:02.240909] KUKA START move_joint[矩阵:(4,4)] Pose(1533.415, 263.949, 841.912, 179.999, 0.001, 0.002): [[1.000, -0.000, 0.000, 1533.415], [-0.000, -1.000, -0.000, 263.949], [0.000, 0.000, -1.000, 841.912], [0.000, 0.000, 0.000, 1.000]] ] [2020-07-31 09:35:17.269861] KUKA FINISH move_joint[矩阵:(4,4) Pose(1533.415, 263.949, 841.912, 179.999, 0.001, 0.002): [[1.000, -0.000, 0.000, 1533.415], [-0.000, -1.000, -0.000, 263.949], [0.000, 0.000, -1.000, 841.912], [0.000, 0.000, 0.000, 1.000]] ] 2 [2020-07-31 09:35:17.270888] KUKA START move_joint[矩阵:(4,4)] 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] [2020-07-31 09:35:32.196230] KUKA FINISH move_joint[矩阵:(4,4) 姿态(1433.412,263.954,941.910,179.999,0.001,0.002): [[1.000, -0.000, 0.000, 1433.412], [-0.000, -1.000, -0.000, 263.954], [0.000, 0.000, -1.000, 941.910], [0.000, 0.000, 0.000, 1.000]] ] 3.
如果你检查时间,使用DO功能,机器人不会等待完成运动开始阅读下一行…
帖子:1777 线程:1 加入:2018年4月
声誉:
95
嗨,氮氧化物,
您可以关闭舍入来进行点对点的移动,并使移动阻塞。
例如,您可以在程序的开头调用setround(-1),以便为程序的其余部分应用点对点的移动。
艾伯特
职位:43 线程:19 加入时间:2018年6月
声誉:
2
我发现如果我在每个setDO之间放一个小的等待,机器人开始阻止每个动作,这是一个bug吗?
职位:3 线程:1 参加时间:2020年6月
声誉:
0
你好,
我对kuka iiwa也有同样的问题,机器人每移动一次就会停下来。我将四舍五入设置为-1,但我仍然有同样的问题。如何让机器人的动作更流畅? 谢谢你的帮助。
帖子:1832 线程:2 加盟时间:2018年10月
声誉:
70
嗨Haythem,
将舍入值设置为-1将与您正在寻找的结果相反。 -1会停在每一点。
四舍五入> 0就是你要找的。
杰里米
|