大家好,
我正在 visual Components Premium 4.10 中构建一个分拣单元,并使用机器人程序编辑器(希望不涉及 Python)。
我的分拣机器人程序目前可以处理托盘上的一个 TS 零件(机器人实际上并没有抓取零件),但托盘总共有 50 个 TS 零件,呈 5×10 的网格分布。我希望有一种可扩展的方法,这样我就不必教导和维护 50 个独立的拾取目标/子程序了。我在下面附上了我的项目以及一张图片。
提前感谢。
robot_project_Pallet1040×752 162 KB
Phase 1.vcmx(11.3 MB)
KustiH 2026年1月21日 上午6:572
你可以定义一个使用基坐标系作为所有运动点的拾取程序,然后创建一个带 While 语句的循环,在每次拾取操作之间相对移动基坐标系。在本教程中,机器人以类似的方式编程,将箱子以网格形式放置在托盘上:通过移动基坐标系,重复使用相同的放置箱子的序列。
码垛机器人编程 | Visual Components Academy
2 个赞
Benji 2026年1月21日 下午2:033
谢谢。然而,我在实现这一点上遇到了困难,希望能得到一些帮助。我的想法如下:
设置基座:
-
将托盘设置为基座,并设置:
-
Base_1 原点起始于第一个组件(某个角)
-
Base X 轴用于列(c = 5)
-
Base Y 轴用于行(r = 5)
-
Base Z 轴向上
为 Base_1 重新示教位置:
-
P1 = 组件1上方的接近点
-
P2 = 组件1处的拾取/下降点
-
P3 = 从组件向上收回点
-
输入/输出保持不变
伪变量:
-
pitch_x = 组件之间的 x 方向间距
-
pitch_y = 组件之间的 y 方向间距
-
r = 行计数器
-
c = 列计数器
伪代码:
-
SetBase 到 Base1
-
r = 0
-
while r < 5
-
c = 0
-
while c < 5
-
偏移基座
-
调用 Pick_TS
-
调用 Place_TS
-
c = c+1
-
r = r+1
KustiH 2026年1月21日 下午2:104
请注意,你还需要在 While 循环内部使用 SetBase 语句来偏移基座。
这是我之前做的一个码垛程序的主程序。它也有 Z 维度,但原理是相同的:
- 在最内层循环中,将基座向 X 方向偏移
- 在上一级循环中,将基座相对地向 Y 方向偏移并且向负 X 方向偏移 5 * pitch_x,这样基座的 x 坐标就不会不断增加。
image247×391 7.25 KB
1 个赞
Benji 2026年1月21日 下午6:365
是的,谢谢,我最后确实成功了。你知道为什么基座从位置2开始而不是位置1,以及为什么组件1没有被包含在循环的第一次迭代中吗?
这个序列目前只遍历奇数行。我也想对偶数行实现同样的逻辑。在这种情况下,你会建议为偏移位置定义一个新的基座吗?
Phase 1 v1.2.zip(33.9 MB)
mkittell 2026年1月21日 下午8:176
你也可以使用流程建模来实现这一点。你需要创建一个装配体,然后就可以自动化拾取操作了。这个视频会带你完成设置:
如何完成装配或拆卸任务 | Visual Components Academy
1 个赞