RoboDK 支持使用 GPL(指导编程语言)的 Brooks PreciseFlex 机器人。用户可以使用其精选的机器人手臂、夹爪和线性导轨生成高级实验室自动化程序。
要通过模拟控制 Brooks PreciseFlex 夹爪,包括双夹爪,请按照本节所述步骤操作。
1.右键单击程序,添加程序调用指令。
2.输入 "Gripper(夹爪 ID,夹爪值)"。例如,输入 "Gripper(2, 50) "可将双夹爪中的 2 号夹爪移动到 50 毫米处。
a.您可以通过单个夹爪缩短对 "Gripper(夹爪值) "的调用。
b.如果存在多个机器人,请使用 "Gripper(夹爪 ID, 夹爪值, item.ptr)"。例如,"Gripper(2, 50, item.ptr) "将把双夹爪中的 2 号夹爪移动到 50 毫米处,确保父机器人与程序相连。
3.在所有子程序的第一条指令和所有子程序调用之后添加夹爪()指令。这是为了确保与后处理器兼容。预计会出现重复的 Gripper() 指令。
4.添加一个 Python 脚本,将其重命名为 "夹爪"。
5.编辑"夹爪 "Python 脚本并粘贴以下内容:
从 RoboDK 导入 robolink
导入系统
如果 len(sys.argv) < 2:
退出()
def get_item(ptr_item, RDK):
item = robolink.Item(RDK, str(ptr_item), robolink.ITEM_TYPE_PROGRAM)
if not item.Valid(True):
返回 None
退货
RDK = robolink.Robolink()
gripper_id = -1
gripper_value = 0
prog_item = 无
# 获取夹爪 ID、值和调用者
如果 len(sys.argv) == 2:
gripper_value = float(sys.argv[1])
elif len(sys.argv) >= 4:
gripper_id = int(sys.argv[1])
gripper_value = float(sys.argv[2])
prog_item = get_item(int(sys.argv[3]), RDK)
elif len(sys.argv) == 3:
prog_item = get_item(int(sys.argv[2]), RDK)
if prog_item:
gripper_value = float(sys.argv[1])
否则
gripper_id = int(sys.argv[1])
gripper_value = float(sys.argv[2])
# 获取候选人
grippers = [x for x in RDK.ItemList(robolink.ITEM_TYPE_ROBOT_AXES) if 'gripper' in x.Name().lower() and len(x.Joints().tolist()) == 1] (夹爪 = 1)
如果 len(grippers) > 1 且 prog_item:
robot_item = prog_item.getLink(robolink.ITEM_TYPE_ROBOT)
if not robot_item.Valid():
robot_item = RDK.ItemUserPick("Select the linked robot", robolink.ITEM_TYPE_ROBOT)
prog_item.setRobot(robot_item)
def get_flat_childs(item):
childs = item.Childs()
for child in item.Childs():
childs.extend(get_flat_childs(child))
return childs
childs = get_flat_childs(robot_item)
grippers = [x for x in childs if x.Type() == robolink.ITEM_TYPE_ROBOT and len(x.Joints().tolist()) == 1] (夹爪 = [x for x in childs if x.Type() == robolink.ITEM_TYPE_ROBOT and len(x.Joints().tolist()) == 1
如果不是夹爪:
RDK.ShowMessage('Unable to find a gripper!', False)
# 尝试找到正确的夹爪 ID(即双夹爪 1)
夹爪 = grippers[0]
如果 gripper_id > 0:
gripper_ids = [g for g in grippers if g.Name().endswith(str(gripper_id))] (夹爪中的 g
如果 gripper_ids:
gripper = gripper_ids[0]
gripper.MoveJ([gripper_value])
请注意,这种方法也与布鲁克斯后处理器兼容。
由于 PreciseFlex 机械手的坐标系不是放置在机械手的物理基座上,因此 PreciseFlex 机械手和 PreciseFlex 线性导轨之间需要特定的偏移量。
布鲁克斯 PreciseFlex 线性导轨配置:
a.布鲁克斯PreciseFlex 400:[118,0,45.6,0,0,0]
b.布鲁克斯PreciseFlex 3400:[118,0,62.6,0,0,0]
布鲁克斯 PreciseFlex 线性导轨 -90 度配置:
a.布鲁克斯PreciseFlex 400:[101.6, 0, 45.6, 0, 0, 0]
b.布鲁克斯PreciseFlex 3400:[101.6,0,62.6,0,0,0]
线性导轨必须同步,后处理器才能计算出轴的位置。更多信息请参阅 https://robodk.com/doc/en/General.html#SyncAxes 部分。
本节将介绍一些与为布鲁克斯机器人生成程序有关的提示。
RoboDK 中和控制器中的工具中心点 (TCP) 必须一致。如果使用的是夹爪机械结构,则需要使用 "添加工具 (TCP) "来添加处于预期位置的 TCP。新工具 TCP 应与夹爪机械结构 TCP 匹配。与 Brooks PreciseFlex 机器人的工具中心点 (TCP) 相关的信息可通过进入 Web 界面并按照以下步骤查找:
1.管理员
2.设置 - 参数数据库
3.机器人
4.关节/笛卡尔控制
5.动态参数
6.数据 ID 16051
关于如何正确定义与后处理器兼容的夹爪指令,请参见前一节 "夹爪模拟"。这种方法可正确定义 GPL 项目中的位置,避免夹爪的轴/轴发生意外移动。
输入值为 -1 时,机器人将在运动结束时停止,并应用严格的位置误差约束(GPL 代码:prof1.InRange = 100)。
输入值为 0 时,机器人会在运动结束时停止,但会应用较小的位置误差约束(GPL 代码:prof1.InRange = 10)。
输入值大于 0 时,机器人不会在运动结束时停止,而是执行混合运动(GPL 代码:prof1.InRange =-1)。
有关布鲁克斯 PreciseFlex 机器人的最大线速度、角速度和关节速度/加速度的信息,可进入 Web 界面并按照以下步骤查找:
1.管理员
2.设置 - 参数数据库
3.机器人
4.关节/笛卡尔控制
5.动态参数
6.数据 ID 2700、2701、2702 和 2703
用户可以使用上述 DataID 的值作为参考,设置 RoboDK 速度/加速度指令的输入。然后,Precise 后处理器将按照 GPL 配置文件类的要求,使用这些值以每个机器人最大速度/加速度的百分比来计算速度/加速度。
要更改后处理器使用的限制,可以根据使用的具体机器人修改后处理器。默认情况下,后处理器使用 PF400 和 PF3400 机器人的限制。请参阅文档 https://robodk.com/doc/en/Post-Processors.html#PPEditor 部分修改后处理器。
如果线性加速度和角加速度指令使用的输入值小于 1,则这些输入值将用作以秒为单位的加速度/减速度升至峰值的持续时间(GPL 代码:prof1.AccelRamp/prof1.DecelRamp = inputvalue)。
下图提供了与上述概念相关的更多信息,以及控制器如何规划机器人必须遵循的轨迹。
设置大于 0 的输入值将生成 GPL 命令,在输入值所定义的时间内暂停程序。输入值为负数时,Web 界面操作员控制面板上将弹出一个对话框,程序将暂停,直到用户点击对话框上的 "继续 "按钮。要使对话框可视化,用户需要点击操作员控制面板上的 "对话框激活 "按钮。
可以通过 FTP 轻松地从 RoboDK 为布鲁克斯机器人传输程序:
1.在 RoboDK 中右击机器人
2.选择连接至机器人...
3.输入机器人的 IP 和端口(默认为 192.168.0.1,端口 21)
4.输入远程 FTP 路径(通常为 /flash/projects)
一旦 RoboDK 程序准备就绪,就可以发送给机器人:
1.右击RoboDK 中的程序
2.选择发送程序到机器人(Ctrl+F6)
这将生成程序,并尝试将其传输到机器人控制器。此时会弹出一个窗口,显示 FTP 传输是否成功。
必须使用机器人的 Web 界面来加载和启动 GPL 项目(使用任何浏览器搜索机器人的 IP 地址,即可访问机器人的 Web 界面)。下面是网络界面起始页的图片。
1.打开网络浏览器
2.输入机器人 IP 地址
从网络界面启动程序
1.选择管理员 -> 控制面板 -> 操作员控制面板-> "加载"。
2.选择使用 RoboDK 创建的 GPL 项目
3.点击 "选择
4.点击 "开始
此时,机器人将执行程序。下图显示了操作员控制面板界面,以及允许用户选择和加载所需 GPL 项目的窗口。