网淘吧Visual Components、Flexsim 仿真技术博客 | Python、C#、Delphi xe 机器人编程教程 - 网淘吧

从 5×10 托盘中高效抓取 50 个零件,无需示教 50 个目标点(机器人程序)- 机器人编程 - visual compents 疑难解答

2026-04-07 新闻来源:网淘吧 围观:874
电脑广告
手机广告

大家好, 我正在使用 visual Components Premium 4.10 构建一个分拣单元,并使用机器人程序编辑器(更倾向于不使用 Python)。 目前我的分拣机器人程序适用于托盘上的单个 TS 零件(机器人实际上并未抓取零件),但托盘上共有 50 个 TS 零件,以 5×10 的网格排列。我希望找到一种可扩展的方法,这样就不需要示教和维护 50 个独立的抓取目标或子程序。我在下方附上了我的项目文件以及一张图片。 提前感谢。 --- **KustiH** 2026年1月21日 上午6:57 你可以定义一个使用基础坐标系控制所有移动点的抓取程序,然后通过 While 语句创建一个循环,在每次抓取操作之间相对移动基础坐标系。在这个教程中,机器人以类似的方式编程,将箱子以网格形式放置到托盘上:通过仅移动基础坐标系,重复使用相同的放置箱子的序列。 **托盘堆垛机器人编程 | Visual Components 学院** 2 个点赞

Hi all,
“我正在 Visual Components Premium 4.10 中构建一个分拣单元,并使用机器人程序编辑器(首选不使用 Python)。
我当前的分拣机器人程序可以处理托盘上的一个 TS 零件(机器人实际并未夹持零件),但托盘上总共有 50 个 TS 零件,呈 5×10 的网格布局。我希望有一种可扩展的方法,这样就不必针对 50 个不同的抓取点/子程序分别进行示教和维护。
下面附上了我的项目以及一张图片。
先行感谢。”



Phase 1.vcmx(11.3 MB)

你可以定义一个抓取程序,该程序的所有运动点都基于一个基准坐标系(base frame),然后创建一个带有 While 语句的循环,在每次抓取操作之间相对地移动这个基准坐标系。在本教程中,机器人的编程方式与此类似,通过仅移动基准坐标,以相同的动作序列在托盘上按网格放置箱子。
Palletizing robot programming | Visual Components Academy

2 Likes

谢谢。然而我在实现这一点上遇到了困难,希望能得到一些帮助。我的想法如下:

Set up Base:

  • Set the pallet as the Base and set it so that:
    • Base_1 origin start at first component (either corner)
    • Base X-axis for columns (c = 5)
    • Base Y-axis for rows (r = 5)
    • Base Z-axis is up

Re-teach Positions for Base_1:

  • P1 = approach above component 1
  • P2 = pick/down at component 1
  • P3 = retract up from component
  • INPUTS/OUTPUTS stay the same

Pseudo Variables:

  • pitch_x = spacing in x between components
  • pitch_y = spacing in y between components
  • r = row counter
  • c = column counter

Pseudo:

  • SetBase to Base1
  • r = 0
  • while r < 5
    • c = 0
    • while c < 5
      • offset base
      • Call Pick_TS
      • 调用 Place_TS
      • c = c+1
    • r = r+1

请注意,你还需要在While循环内使用SetBase语句来移动基座。
以下是我之前编写的一个码垛程序的主要部分。它也包括了z维度,但原理是相同的:
- 在最内层循环中,将基座沿X方向移动
- 在上层循环中,将基座相对于Y方向移动并且沿负X方向移动5 * pitch_x,这样基座的x坐标就不会持续增加。


1个赞

是的,谢谢,我最终解决了。你知道为什么基座从位置2开始而不是位置1,以及为什么第一个循环迭代中没有包含组件1吗?

目前这个序列循环处理的是奇数行。我还想为偶数行实现相同的逻辑。在这种情况下,你会建议为偏移位置定义一个新的基座吗?

Phase 1 v1.2.zip(33.9 MB)

您也可以通过工艺建模来实现这一点。您需要创建一个装配体,然后就可以自动化抓取操作。以下视频将引导您完成设置:
How to complete an Assembly or Disassembly Task | Visual Components Academy

1 Like
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

上网淘巴领天猫淘宝优惠券,一年省好几千。

广告  ×

您是本站第938127名访客 今日有0篇新文章/评论