4. 工件与托盘建模

搬运码垛系统的节拍、抓取稳定性和垛型精度,首先取决于对“工件”和“托盘”的建模是否准确。在FANUC机器人码垛工程中,工件建模不是简单记录一个长宽高,而是要把物料特性、抓取方式、托盘尺寸、垛型参数以及垛型坐标系一起定义清楚。只有这些参数在离线仿真和现场程序中保持一致,机器人才能按预期完成整层排列、逐层堆叠和最终放垛。

一、三类典型物料的特性与建模重点

纸箱是码垛中最常见的物料。它的外形规则,通常以长×宽×高描述,例如示例中取纸箱尺寸为400mm×300mm×250mm,重量8kg。纸箱建模的关键是确认“有效抓取面”和“允许压缩量”。如果采用真空吸盘,需要知道箱体表面是否覆膜、是否有透气孔;如果采用夹爪,则要确认夹持方向是沿长边还是短边,夹持后是否会导致箱体鼓包。纸箱的垛型通常允许正反交错或旋转90°,以增加层间咬合。

袋装物料外形不稳定,例如25kg编织袋,装满后实际尺寸可能为800mm×500mm×180mm,但会随摆放时间、堆叠压力和温度发生变化。袋装建模不能只依赖标称尺寸,还要考虑“鼓包系数”和“塌陷量”。在码垛时,袋装物料常采用压缝排列,即上层袋体压在下层两袋之间的接缝上,以形成互锁。抓取方式多为夹板式或托底式,建模时要给出夹持厚度范围和允许变形量。

瓶罐类物料刚性较好,但重心高、易滚动。以示例中的圆柱瓶为例,直径60mm、高200mm、重量0.5kg,通常采用整层隔板或托盘+层板的方式码垛。瓶罐建模的重点是层内排列方式:矩形排列、错位排列还是蜂窝排列。蜂窝排列密度高,但对机器人放置精度要求更严,通常需要视觉或高精度定位补偿。瓶罐的抓取多采用夹瓶口或夹瓶身,建模时要明确夹持点高度和夹持力上限。

二、托盘尺寸与垛型参数

托盘是垛型的基础边界。国内常用托盘有1200mm×1000mm、1100mm×1100mm、1200mm×800mm等规格。以示例中的1200mm×1000mm托盘为例,托盘高度150mm,允许货物最大高度1350mm,则总垛高不超过1500mm。码垛时还要预留托盘边缘余量,通常每边留20~50mm,防止货物超出托盘导致输送线卡阻或缠绕膜包覆困难。

垛型参数包括:层数、每层件数、排列方向、层间旋转角度、层间偏移量、垛型总高和总重。以纸箱400mm×300mm为例,在1200mm×1000mm托盘上,每层可排3×3=9箱,剩余边距为0mm和100mm;若旋转90°交错排列,则每层仍为9箱,但层间咬合更好。示例中设定码垛层数为5层,则总件数45箱,总重约360kg,总高为5×250+150=1400mm,满足1350mm货物高度限制。

袋装物料在同样托盘上,若袋体800mm×500mm,每层可排2×2=4袋,剩余边距为400mm和0mm,通常需要交错压缝,实际每层可能为4袋或5袋,取决于袋体实际鼓包尺寸。瓶罐类若采用隔板,每层可排更多件,例如直径60mm瓶体在1200mm×1000mm托盘上,按矩形排列可排20×16=320瓶,但实际要考虑隔板厚度和抓取间隙,通常每层按300瓶左右估算。

三、垛型坐标系的定义与使用

垛型坐标系是码垛程序的核心参照。通常以托盘上表面中心为原点,X轴沿托盘长边方向,Y轴沿托盘短边方向,Z轴垂直向上。这样定义后,每一件货物的放置位置都可以用(X,Y,Z)和绕Z轴的旋转角度Rz表示。例如纸箱第一层第一件放在托盘左下角,若托盘长边为X方向,则其中心坐标为X=-400mm,Y=-300mm,Z=125mm,Rz=0°。第二件沿X方向偏移400mm,依此类推。

层与层之间通过Z值递增实现堆叠。若纸箱高250mm,则第二层Z=375mm,第三层Z=625mm,以此类推。层间旋转时,Rz在0°和90°之间切换,同时X、Y坐标要按旋转后的排列重新计算。对于袋装物料,Z值还要考虑袋体压缩量,例如每层实际压缩20mm,则第二层Z=180-20+180=340mm,而不是简单的360mm。瓶罐类若加隔板,隔板厚度也要计入Z值。

在实际编程中,垛型坐标系通常与托盘输送线定位点关联。机器人先移动到托盘上方安全高度,再按垛型坐标逐件放置。若托盘位置有偏差,可通过视觉或机械定位修正原点。所有坐标和角度必须在离线仿真和现场程序中保持一致,否则会出现错放、碰撞或垛型歪斜。

工件与托盘建模核心参数关系 物料特性建模 纸箱 纸箱 400×300×250mm 8kg / 刚性规则 抓取:吸盘/夹爪 允许旋转90°交错 袋装 袋装物料 800×500×180mm 25kg / 易变形 抓取:夹板/托底 压缝排列互锁 瓶 瓶罐类 Φ60×200mm 0.5kg / 高重心 抓取:夹瓶口/瓶身 需隔板/蜂窝排列 托盘与垛型参数 托盘 1200×1000×150mm 纸箱示例:3×3=9箱/层 垛型参数 层数:5层 每层件数:9箱 总件数:45箱 总重:约360kg 货物高:5×250=1250mm 总高:1250+150=1400mm 层间旋转:0°/90°交错 边缘余量:≥20mm 最大允许高度:1350mm 判断:1400≤1500 ✓ 垛型坐标系定义 O(0,0,0) X Y Z 1 2 3 坐标与角度表示 原点:托盘上表面中心 X:沿托盘长边方向 Y:沿托盘短边方向 Z:垂直向上,逐层递增 Rz:绕Z轴旋转角度 示例:第1层第1件 X=-400, Y=-300, Z=125 Rz=0° 参数 映射

四、建模参数在程序中的落地方式

在FANUC机器人程序中,垛型参数通常以位置寄存器和用户坐标系的方式落地。例如将托盘原点设为用户坐标系UF1,X、Y、Z方向与上述定义一致。每一件货物的放置点用PR[i]表示,其中i为件序号。程序循环时,先计算当前层、当前件的X、Y偏移,再根据层号计算Z高度,最后根据层间旋转标志决定Rz是0°还是90°。

对于纸箱示例,第一层9件的X偏移依次为-400、0、400、-400、0、400、-400、0、400,Y偏移依次为-300、-300、-300、0、0、0、300、300、300,Z=125。第二层若旋转90°,则X偏移变为-300、0、300、-300、0、300、-300、0、300,Y偏移变为-400、-400、-400、0、0、0、400、400、400,Z=375。这样计算后,机器人可以逐件完成放置。

袋装物料由于尺寸不稳定,建议在程序中加入“实际尺寸补偿”变量。例如每层Z高度按实测压缩量修正,X、Y方向按袋体鼓包后的实际外廓修正。瓶罐类则建议在垛型坐标系中增加隔板层,隔板放置点单独定义,避免与瓶体放置点混淆。

建模检查要点:工件尺寸是否包含抓取余量;托盘边缘是否留够安全距离;垛型总高是否超过输送线或缠绕膜限制;层间旋转后坐标是否重新计算;袋装压缩量是否计入Z值;瓶罐隔板厚度是否单独建模。

工件与托盘建模的最终目标,是让机器人知道“抓什么、放哪里、怎么放”。纸箱、袋装、瓶罐三类物料的差异,决定了抓取方式、排列方式和层间策略的不同;托盘尺寸和垛型参数决定了每层能放多少、能堆多高;垛型坐标系则把这些信息统一到同一个空间参照下。三者一致,码垛程序才能稳定运行。