线程评级:
RoboDK中的自动工具更换器
# 1
嗨。

我有一个自动工具更换器,我试图从RoboDK中使用。它由一个永久连接到UR5工具法兰上的主板和一些从工具组成,这些从工具可以通过气动与主板连接或分离。


我写了几个函数来从存放从工具的刀架上取工具,然后再把工具放回去。我面临的问题是,我不知道如何取附在机器人上的从工具,将其从主工具分离,并将其留在刀架上(即将其连接回适当的刀架参考)。我认为答案涉及从工具转换为对象时分离,然后转换回工具时附加,但我不确定这是否正确,或如何做到这一点。

有什么建议吗?


附加文件
.rdk UR5工具测试。rdk(大小:1.39 MB /下载:18,836)
嗨RBE,

你对这个问题的看法是正确的,这是由于一个工具无法从它的机器人上分离出来的事实。我们将在不久的将来创建一个宏来解决特定的工具更换情况。

与此同时,我为你找到了一个简单快捷的解决办法。请参阅所附的项目。我所做的是在工具架上创建一个工具的副本,我隐藏了附加到机器人的工具(取消可视性)。在你的程序中,我用“显示”和“隐藏”命令替换了“附加”命令。当机器人到达工具架时,我“显示”机器人上的工具,并“隐藏”工具架上的工具。
我用“detach”命令做了相反的事情。

现在可以对最后三个工具执行完全相同的操作。
希望能有所帮助。就像我说的,我们将在未来使用宏来研究一个更好的解决方案。

杰里米


附加文件 缩略图(s)


.rdk UR5工具测试-隐藏Tool .rdk(大小:1.58 MB /下载:3,265)
# 3
嗨,杰里米。

我已经看了你的例子,但我很难复制它。你究竟是如何设法让你创建的力士工具总成的副本(即“力士工具总成更换器”)表现为一个工具,而不是一个简单的对象?

我已经保存了位于UR5树的Lux Tool Assy作为一个具有适当TCP和几何偏移信息的工具文件,但当我尝试将工具的副本附加到Lux Tool Assy Top框架时(通过右键单击并选择添加项目),它转换回一个简单的对象…
# 4
嗨RBE,

我只是把它从UR树复制过去到“Lux Tool Assy”参考框架(都直接在RoboDK中)。这样做保持了工具的格式。但说实话,我看不出它有对象有什么问题。最后,坐在支架上的工具只是为了视觉表现,你并没有真正使用它。你只需要在工具没有连接到机器人法兰的时候显示出来。

就像我在第一个回答中说的,这是对你的问题的一个简单的解决方案。我们将在未来提出一个宏来管理工具更换者。

让我们知道进展如何。
杰里米
# 5
嗨,杰里米。

也许你能解释一下我现在的问题。本质上,我试图使用Python创建一个站点程序来做类似于前面讨论的事情:


代码:
def add_grinder_attach_program ():
grinder_tool_attach = RDK。添加程序('磨床工具连接')

grinder_tool_attach.setPoseFrame (RDK。我tem('Grinder Tool Top', ITEM_TYPE_FRAME))
grinder_tool_attach.setPoseTool (RDK。Item('Master Tool', ITEM_TYPE_TOOL))

grinder_tool_attach.MoveJ (RDK。我tem('Grinder Tool Approach', ITEM_TYPE_TARGET))
grinder_tool_attach.MoveL (RDK。我tem('Grinder Tool Aligned', ITEM_TYPE_TARGET))
grinder_tool_attach.MoveL (RDK。我tem('Grinder Tool Inserted', ITEM_TYPE_TARGET))

grinder_tool_attach。setDO (ATTACH_TOOL, 1)
grinder_tool_attach.Pause (500)

grinder_tool_attach.MoveL (RDK。我tem('Grinder Tool Mated', ITEM_TYPE_TARGET))

grinder_tool = RDK。我tem('Grinder Tool', ITEM_TYPE_TOOL)
grinder_tool。setVisible(没错,是真的)
grinder_tool = RDK。我tem('Grinder Tool', ITEM_TYPE_OBJECT)
grinder_tool.setVisible(假)

grinder_tool_attach.MoveL (RDK。我tem('Grinder Tool Aligned', ITEM_TYPE_TARGET))
grinder_tool_attach.MoveJ (RDK。我tem('Grinder Tool Approach', ITEM_TYPE_TARGET))

grinder_tool_attach.setPoseTool (RDK。我tem('Grinder Tool', ITEM_TYPE_TOOL))
grinder_tool_attach.setPoseFrame (RDK。我tem('UR5 2014350238 Base', ITEM_TYPE_FRAME))

返回


目前,该程序运行良好,除了没有显示磨床工具(连接到机器人的工具),也没有隐藏磨床工具(连接到刀架的物体)。如何将项。setvisible指令与程序关联?当通过RoboDK GUI做到这一点时,我会使用一个模拟事件-不太确定如何在这里做同样的事情…
# 6
嗨RBE,

你能给我发一份电台的资料吗?(有所有的工具几何和其他需要的对象。)

杰里米
# 7
嗨,杰里米。

我已将目前的电台附在这封邮件上-请注意,这是一项正在进行的工作。为了运行站点中包含的Python脚本,您需要首先创建一个'C:/RoboDK/User'目录,然后将.zip归档文件的全部内容复制到其中。然后,您应该能够成功地运行脚本。


附加文件
. zip Work in Progress.zip(大小:8.67 MB /下载:505)
# 8
@杰里米你能否说明是否有一种方法可以在用于生成RoboDK程序的Python脚本中包含模拟事件指令?我还没有找到这个问题的解决方案,因为似乎Robolink模块没有必要的能力…
# 9
这可能使用:
MakeProgram (path-to-file)

更多信息请点击这里:
//www.w5838.com/doc/en/PythonAPI/robo...akeProgram

例子:
prog = RDK。我temUserPick("Select a program to generate", ITEM_TYPE_PROGRAM)
prog.MakeProgram(“path-to-file”)
你好@艾伯特

谢谢你的回复,但那不是我的意思。我说的是使用Python创建一个在RoboDK环境中使用的程序。例如:



从这张工作站树的图像中可以看到,在'Grinder Tool Attach'程序中有一个模拟事件来隐藏位于刀架中的研磨工具,而另一个模拟事件则显示连接到机器人的研磨工具。在这种情况下,“Grinder Tool Attach”程序是在RoboDK中使用GUI编写的。然而,现在我需要能够做的是将模拟事件插入到程序的一个版本,我已经由Python脚本生成。与之前一样,“磨床工具连接”程序将在RoboDK内部模拟运行。




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