你可以使用RoboDK的码垛插件完成自动化码垛。该插件通过直观的可视化界面,帮助你快速创建码垛程序。
本示例将引导你从零开始,逐步完成可导出为真实机器人程序的码垛仿真。最终生成的程序可直接加载到机器人控制器执行。
最新版码垛插件可在插件市场获取。关于插件安装激活的详细说明,请参阅Add-in Manager章节。
确认安装成功后,在实用程序菜单下应出现两个新选项:Create Palletizing Project和Import Palletizing Project…

创建码垛项目前,需先在RoboDK中完成工作站配置:
提前加载以下内容:
1.一个机器人、一个工具、一个箱、拾取参考坐标系(Frame_Pick)、托盘模型和托盘角点坐标系(Frame_Pallet)。加载传送带是可选项。
Note:本教程示例采用双托盘配置,所以我们设置了Frame_Left_Pallet和Frame_Right_Pallet两个参考坐标系。
Note:标准尺寸的箱体和托盘可从模型库直接下载。你还可以使用箱生成器插件创建自定义尺寸物料箱。
2.设置托盘坐标系:托盘坐标系的X+轴,需与托盘长度方向一致。
3.设置托盘坐标系:托盘坐标系的 Z+ 轴,需与托盘方向一致(朝上)。
4.关联坐标系:将托盘/箱体与对应坐标系关联,确保移动物体时机器人目标点能自动更新。
5.根据需要调整各物体/坐标系的位置。
6.在Frame_Pick坐标系下复制多个箱体模型用于多次拾取。
7.右键点击3D物体选择:锁定(箱体除外)。
Tip:有关在 RoboDK 中创建项目的资料,可以参考工作站章节。
Note:为简化示例,暂不包含传送带和外部轴配置(实际支持该功能)。



码垛向导要求提供两个子程序: 拾取程序(PickBox)和放置程序(PlaceBox)。PlaceBox程序仅用于将箱体从夹爪分离并关联至托盘坐标系,实际放置点由码垛插件自动生成。
创建步骤:
1.激活Frame_Pick坐标系和末端执行器(绿色圆圈标识)


2.在"程序"选项卡选择"示教表面上的目标点",点击箱体顶部后确认

3.现在你需要在"Frame_Pick"底部设置第一个目标。为了确保它与箱体顶部居中,请按住 SHIFT+M 打开测量工具,然后点击箱体顶部并复制数值。然后点击目标,按F3,编辑目标参数。选择测站原点作为参考,然后粘贴数值。目标现在应该位于箱的中心。



4.重命名目标点为Pick_Box,并复制两个副本:App_Pick_Box和App_Conveyor。然后,编辑目标参数并使用滚轮在 Z 值上添加一些距离,直到你对目标位置感到满意为止。



5.按住 CTRL 键,按照程序执行的顺序点击所有 3 个目标,右键打开菜单选择:创建程序。程序会自动添加目标、工具和参考坐标系。将程序重命名为 "PickBox"。


6.在工具栏中点击:事件指令的图标。在动作下拉选项中选择:Attach,测量距离选择:TCP与对象表面(任意)。当机器人执行到该事件指令时,会检测工具TCP与物体表面的接触,一旦满足条件就会将物体附加到工具上,实现虚拟环境中的拾取操作。这样就可以将箱附加到工具上。创建Attach事件后,复制粘贴"App_Pick_Box"和"App_Conveyor"目标点后,就完成了拾取程序的逻辑连接。
Tip:等待下一步(创建替换程序)后再进行测试。



7.创建一个空程序,添加事件指令:Replace objects,在动作选择:Set object position(absolute)",然后按住alt键选择所有Box。运行该程序后,所有盒子会回到原始位置,方便重新开始仿真或测试。将程序重命名为 :ReplaceObjects。


8.另外再创建一个程序,添加事件指令,动作选择:Detach object,然后连接上一级选择;Frame_Left_Pallet。将程序重命名为:PlaceBox。


9.最后,在托盘坐标系上方创建参考目标点,激活托盘的参考坐标系,将机器人移动到托盘上,确保机器人构型是合理的,然后创建新目标。将其重命名为 :Ref_Pallet。

现在,我们已经准备好了创建码垛项目的内容。你的工作站应该是这样:

码垛项目将帮助你实现机器人码垛过程的自动化。本节将介绍你可以自定义的码垛设置的主要功能。
按照以下步骤创建一个码垛项目:
1.在菜单栏选择:实用程序,点击:Create Palletizing Project。

2.然后双击工作站树中的码垛项目:Palletizing 1。
Note:确保你使用的是 RoboDK 5.9.0 或更高版本。


当打开码垛主界面时,可选择三种模式:
请按照以下步骤设置你的码垛项目:
1.在码垛项目界面选找到码垛选项:Palletize,点击Reference的"+"按钮,选择托盘参考坐标系。然后,点击Robot Configuration的"+"按钮,选择我们之前创建的目标:Ref_Pallet。

Tip: 若机器人单轴旋转超过350°,我们建议你限制旋转角度,以简化码垛算法的工作。为此,请打开机器人面板,双击关节点动部分的下限或上限。
2.选择Object选项卡,输入托盘和箱的尺寸。
3.选择托盘尺寸的预设值,或者手动输入尺寸。然后点击左下角左数第3个图标:Zoom to fit,这样就可以显示出来二维托盘全貌。

4.选择箱体预设或输入自定义尺寸后点击:Create object。
Note:可指定标签面或夹爪接触面,确保2D布局中的箱体方向正确。

5.创建物体后,界面左侧会显示4个90°旋转方向的箱体模型,一条红线和一条绿线将显示 TCP 绕 Z 轴的旋转。

通过层叠设计功能可自定义每层物料的排列方式:
按照以下步骤创建图层布局:
1.移动到Layer选项卡,创建图层设计。
2.确保根据需要设置Grid。在本例中,我们将使用12mm。你也可以更改 "Object Spacing"中的值,使箱与箱之间的间距保持不变;我们将使用 15 mm。

3.从左侧选择一个箱,然后拖放到托盘上。
4.在 2D 界面上移动箱体时,它将出现在 3D 环境中。如果 3D 环境中的箱变为红色,则表示机器人无法触及。

5.创建第一个图层布局。每个箱体左上角的数字表示其放置顺序编号. 每个箱体左上角的数字表示其放置顺序编号。通过添加辅助线定义:接近路径(Approach)、回退路径(Retract)。示例数值仅供参考,建议通过以下方式测试效果:推荐初始参数:接近距离:+50mm(Z轴方向),回退距离:-30mm(Z轴方向),修改后实时观察3D视图中机器人轨迹变化。

6.通过右上方的不同对齐按钮,你可以轻松调整箱体的位置。选择所有箱,点击不同的选项,直到满意为止。你还可以旋转你的箱,而不是按照正确的方向生成新的箱。

7.按下Layer旁"+ "按钮,在Layer堆栈中添加一个新图层。添加新图层将复制与其下图层相同的图案。

8.你可以按下 "Layout "旁边的 "+ "按钮来创建新的布局(图案)。你仍会看到之前的图层布局呈灰色,这样你就可以在其上正确定位新箱。

9.创建替代布局。按住 CTRL 键并使用键盘箭头可以微调箱的位置。你可以在窗口顶部的 "Move Step "中更改增量的大小。

10.然后,你可以添加想要的层数,并可以选择交替使用。只需在 3D 视图中查看箱体的颜色,确保箱体仍都在机器人的触及范围内即可。

Note:如果进近/缩回位置超出范围,3D 界面会通过将箱变为橙色反馈。

11.在Program Call选项卡中,你可以通过点击 "+"按钮为不同事件选择程序,然后在相应的箱中旁勾选。例如,你至少需要选择一个"Pick Box"和一个"Place Box"程序,否则,你将没有一个可以运行的项目。在本例中,我们还将使用 "Program Start"程序,但你也可以创建一个 "Go Home"程序,并在"Program Finishi"中选择该程序,这样托盘码垛完成后,机器人就可以回到Home位置。

完成准备步骤后,你就可以生成机器人程序了。然后你需要使用适合你机器人品牌的后处理器生成程序。
Tip:有关程序生成和后处理器的更多信息,请参阅后处理器章节。
1.在Generate选项卡中选择:Generate Project。现在可以关闭窗口返回项目。现在你应该有了一个主程序和每个图层的单独程序。


2.双击Palletizing_1_Main,运行主程序。如果运行正确,右击主程序,选择:生成机器人程序,创建机器人控制器可以执行的程序。
