线程评级:
在运行时,从格子中挑出一个盒子
# 1
我在托盘上有一个8x8的格子。我想使用带有Robotiq夹具的UR3来捡起其中一个块并将其移动到其他地方。我可以简单地创建64个单独的程序来获取任意一个块,然后在运行时选择要执行哪个程序。但更明智的做法是制定一个单一的计划,目标可变。最好的办法是什么?

例如,我想要一个程序,我可以输入我想要的块的行和列,即。pickupBlock(3、7)。附加图片

(图片:AO3X2SE.png)
您的目标只是模拟还是想从RoboDK生成程序?

杰里米
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 3
@杰里米-我想生成程序,这将被集成到一个更大的自动化系统。一个单独的Python程序将控制要选择哪个块的逻辑,然后需要向机器人发送一个命令来抓取和移动该块。我不确定这是否更好地自动化与Python API或可能以某种方式与托盘化插件
# 4
如果你用Python来做,它会工作,但问题是,只有当RDK连接到机器人时,它才会真正工作。
这就是你的计划吗?

在现实环境中,应该用什么来向机器人发送命令呢?

杰里米
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 5
@杰里米我没想到RoboDK会在运行时连接UR3。是否有一种方法可以使用Python程序,以便在断开连接时调用move命令?

UR3连接到一个EPICS网络(EPICS .anl.gov),该网络可以告诉它执行脚本命令。

我试图理解如何通过这个过程给机器人提供一个变量。这个变量最终会告诉机器人捡哪块积木。
# 6
这看起来可能很简单,但实际上并非如此。

我们并不真正支持基于变量的代码的后处理(生成)。
这是一个我们还没有打开的漏洞,因为在我们支持的40多个品牌上实现它会很混乱(每个品牌都有1种或多种不同的编程语言和处理变量的方式)。

你可以做一些python变量基础程序,但只有当你连接到RDK时才能工作。
否则,RoboDK将生成一个位置列表。

因此,您可以使用RDK生成位置数组,但需要创建基于变量的条件,以调用控制器上的每个移动。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 7
这是否意味着我必须创建64个单独的程序?也就是说,每个区块有一个?然后调用对应于我想要的块的程序?难道没有更简单的办法吗杰里米?
# 8
这也是一个有效的选择。我知道这听起来很糟糕,我一直在鼓吹我们有一种基于变量的编程方式,但这不会在明天发生。

你可以做的一件事是使用Python自动创建64个程序。
就像这样:

代码:
从robodk导入robolink # robodk API
导入robomath #机器人工具箱

#链接到RoboDK
RDK = robolink.Robolink()

列= 8
Row = 8
Distance_x = 10
Distance_y = 10
App_height = 100

RDK。命令(“添加文件夹”,“文件夹选择程序”)

ref_target = RDK.Item("My_Reference_Target",robolink.ITEM_TYPE_TARGET)
ref_frame = RDK.Item("My_Reference_Frame",robolink.ITEM_TYPE_FRAME)
夹具= RDK.Item(" my_夹具",robolink.ITEM_TYPE_TOOL)
folder_prog = RDK。项目("文件夹选择程序",robolink.ITEM_TYPE_FOLDER)

对于range(column)中的I:
对于range(row)中的j:
new_target = RDK.AddTarget(“Pick_Target_”+ str (i) +“_”+ str (j), ref_frame)
new_target_pose = robomath.Offset(ref_target.Pose(),i*distance_x,j*distance_y,0)
new_target.setPose (new_target_pose)
new_target_app = RDK.AddTarget(“App_Target_”+ str (i) +“_”+ str (j), ref_frame)
new_target_app_pose = robomath.Offset(new_target.Pose(),0,0,app_height)
new_target_app.setPose (new_target_app_pose)

new_prog = RDK.AddProgram(“Pick_”+ str (i) +“_”+ str (j))
new_prog.setParent (folder_prog)
new_prog.setTool(夹)
new_prog.setFrame (ref_frame)
new_prog.MoveJ (new_target_app)
new_prog.MoveL (new_target)
new_prog.MoveL (new_target_app)


附加文件
. py 创建数组Prog.py(大小:1.6 KB /下载:62)
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道






浏览此线程的用户:
1客人(年代)