布鲁克斯机器人

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[118045.6000]

b.布鲁克斯PreciseFlex 3400[118062.6000]

布鲁克斯 PreciseFlex 线性导轨 -90 度配置:

a.布鲁克斯PreciseFlex 400[101.6, 0, 45.6, 0, 0, 0]

b.布鲁克斯PreciseFlex 3400[101.6062.6000]

线性导轨必须同步,后处理器才能计算出轴的位置。更多信息请参阅 https://robodk.com/doc/en/General.html#SyncAxes 部分。

Robots Brooks - 图片 1

后处理器

本节将介绍一些与为布鲁克斯机器人生成程序有关的提示。

工具中心点 (TCP)

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 270027012702 2703

用户可以使用上述 DataID 的值作为参考,设置 RoboDK 速度/加速度指令的输入。然后,Precise 后处理器将按照 GPL 配置文件类的要求,使用这些值以每个机器人最大速度/加速度的百分比来计算速度/加速度。

要更改后处理器使用的限制,可以根据使用的具体机器人修改后处理器。默认情况下,后处理器使用 PF400 PF3400 机器人的限制。请参阅文档 https://robodk.com/doc/en/Post-Processors.html#PPEditor 部分修改后处理器。

如果线性加速度和角加速度指令使用的输入值小于 1,则这些输入值将用作以秒为单位的加速度/减速度升至峰值的持续时间(GPL 代码:prof1.AccelRamp/prof1.DecelRamp = inputvalue)。

下图提供了与上述概念相关的更多信息,以及控制器如何规划机器人必须遵循的轨迹。

Robots Brooks - 图片 2

暂停

设置大于 0 的输入值将生成 GPL 命令,在输入值所定义的时间内暂停程序。输入值为负数时,Web 界面操作员控制面板上将弹出一个对话框,程序将暂停,直到用户点击对话框上的 "继续 "按钮。要使对话框可视化,用户需要点击操作员控制面板上的 "对话框激活 "按钮。

Robots Brooks - 图片 3Robots Brooks - 图片 4

通过 FTP 传输程序

可以通过 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 地址

Robots Brooks - 图片 5

从网络界面启动程序

1.选择管理员 -> 控制面板 -> 操作员控制面板-> "加载"

2.选择使用 RoboDK 创建的 GPL 项目

3.点击 "选择

4.点击 "开始

此时,机器人将执行程序。下图显示了操作员控制面板界面,以及允许用户选择和加载所需 GPL 项目的窗口。

Robots Brooks - 图片 6