4. 柔性上下料对象建模

在UR多机床柔性上下料单元中,机器人要完成的不只是“把东西从A搬到B”,而是要在多台机床、多个料位、多种工件状态之间建立可复现的抓取与放置逻辑。要让UR程序、视觉系统、力控策略和PLC调度能够协同工作,前提是把上下料对象“讲清楚”——也就是对工件、托盘、夹具、料框、毛坯与成品建立统一的对象模型。对象模型不是三维模型的美观展示,而是把几何、重量、姿态和抓取特征转化为机器人可计算、可判断、可验证的数据结构。

一、对象建模的四个核心维度

柔性上下料对象建模可以归纳为四个维度:几何、重量、姿态、抓取特征。几何决定“能不能进、会不会碰”;重量决定“抓得稳不稳、惯量是否超限”;姿态决定“从哪个方向接近、以什么角度放入”;抓取特征决定“用什么工具、抓哪里、抓多深、以什么力抓”。这四个维度共同构成一个对象的完整描述,缺一不可。

以本单元常见的法兰盘类工件为例,其几何可描述为外径Φ120 mm、内孔Φ40 mm、厚度25 mm、外缘倒角2×45°;重量约2.8 kg;姿态需定义工件坐标系原点位于底面中心,Z轴垂直于底面向上;抓取特征则包括外圆夹持面宽度、允许夹持力范围、重心偏移量等。这些参数不是孤立的,而是相互约束的:外径决定夹爪开度,重量决定夹持力下限,重心偏移决定是否需要在抓取时增加辅助支撑。

二、工件与毛坯/成品的状态区分

同一工件在毛坯态和成品态下,几何、重量和抓取特征都可能发生变化。毛坯通常留有加工余量,外径可能比成品大1~3 mm,重量多出5%~15%;成品则可能因去除了内孔和端面材料而减重。更重要的是,毛坯表面粗糙、可能有氧化皮或毛刺,抓取时需考虑防滑和防划伤;成品表面已精加工,抓取时需避免夹伤或压痕。

因此,对象模型中必须为同一工件的不同状态分别建立记录,而不是只建一个“工件”条目。建议用状态字段区分:BLANK(毛坯)、SEMI(半成品)、FINISHED(成品)。每个状态对应独立的几何参数、重量参数和抓取特征。例如,毛坯态允许夹持力上限可设为800 N,成品态则降至300 N,并优先使用软爪或真空吸盘。

三、托盘、夹具与料框的定位与约束表达

托盘和料框是工件的“容器”,夹具是工件的“保持器”。它们共同决定了工件在空间中的位置和姿态。托盘通常有多个工位,每个工位有定位销、定位孔或V形槽;料框则用于批量存放毛坯或成品,层数、列数、行数决定料位数量。夹具则分为机床上夹具和机器人末端夹具,前者用于加工时固定工件,后者用于抓取和搬运。

对象建模时,托盘和料框需要表达:工位数量、工位间距、定位方式、允许的工件姿态范围、层高和避让空间。夹具需要表达:夹持类型(外夹/内撑/真空/磁吸)、夹爪行程、夹持力范围、重复定位精度、与工件的接触面形状。这些信息最终要转化为机器人程序中的robtarget和grip参数,以及视觉系统的模板匹配和位姿估计输入。

柔性上下料对象模型:几何 · 重量 · 姿态 · 抓取特征 工件 / 毛坯 / 成品 内孔 Φ120 × 25 mm 2.8 kg(成品) 3.1 kg(毛坯) 状态:BLANK / SEMI / FINISHED 抓取:外圆夹持 / 内孔撑紧 托盘 / 料框 3×2 工位 · 定位销Φ12 工位间距 45 mm 层高 120 mm · 2层 姿态:Z轴垂直向上 夹具(末端/机床) 夹持区 行程 0~80 mm 夹持力 100~800 N 重复精度 ±0.02 mm 类型:外夹 / 内撑 / 真空 接触面:软爪 / 硬爪 抓取特征表达 • 抓取面:外圆 Φ120 • 夹持宽度:≥15 mm • 重心偏移:≤2 mm • 允许夹持力:300~800 N • 接近方向:+Z 轴向 • 抓取深度:≥8 mm • 防滑要求:中等 • 表面保护:成品需软爪 → 映射为 grip 参数与 robtarget 对象模型 → 机器人程序映射关系 几何参数 尺寸 / 公差 / 倒角 重量参数 质量 / 重心 / 惯量 姿态参数 坐标系 / 方向 / 角度 抓取特征 夹持 / 力控 / 防滑 UR程序 robtarget / grip 建模要点 1. 同一工件按毛坯/半成品/成品分别建模,重量与抓取力上限随状态变化。 2. 托盘/料框需表达工位数量、间距、定位方式与层高,确保机器人可达且无碰撞。 3. 夹具参数(行程、夹持力、精度)必须与工件几何和重量匹配,成品优先软爪或真空。 4. 抓取特征最终映射为 UR 的 grip 参数与 robtarget,需在仿真中验证可达性与干涉。

四、从对象模型到UR程序的映射

对象模型建立后,需要映射为UR可执行的参数。以法兰盘毛坯上料为例,假设托盘工位1的工件中心在机器人基坐标系下的位置为p[300, -150, 120],姿态为R[0, 3.1416, 0](即工件Z轴朝下,等待抓取)。抓取特征要求外圆夹持,夹持宽度不小于15 mm,夹持力设为500 N。则UR程序中的抓取目标可写为:

; 示例:法兰盘毛坯抓取目标(单位:mm / rad)
robtarget pPick := [[300, -150, 120], [0, 3.1416, 0], [0, 0, 0, 0], [0, 0, 0, 0]];
gripSet(force := 500, width := 120, speed := 50);
MoveJ pPick, v300, fine, tool0;
WaitTime 0.3;
GripClose();

这里的width := 120对应工件外径Φ120 mm,force := 500对应毛坯态允许夹持力范围的中值。如果是成品态,则force应降至300 N以下,并切换为软爪。这些参数不是凭空设定的,而是从对象模型的几何、重量和抓取特征中推导出来的。

五、姿态表达与坐标系约定

姿态表达必须统一坐标系约定。本单元约定:工件坐标系原点位于工件底面中心,Z轴垂直于底面向上,X轴指向工件的一个基准特征(如键槽或定位孔)。托盘坐标系原点位于托盘左下角定位销中心,Z轴向上。机器人基坐标系为UR默认基座坐标系。所有对象模型中的姿态均以“工件坐标系相对于机器人基坐标系”的旋转矩阵或四元数表示。

当工件从托盘被抓取并放入机床夹具时,姿态会发生变化。例如,托盘上工件Z轴朝上,机床夹具要求工件Z轴朝前(水平放置)。此时需要在程序中插入中间过渡点,并调整抓取后的旋转角度。对象模型中应记录“抓取姿态”和“放置姿态”两个独立字段,避免在程序中硬编码角度。

六、建模检查清单

为了确保对象模型完整可用,建议在建模完成后逐项检查:几何尺寸是否与图纸一致;重量是否包含毛坯余量;姿态坐标系是否与现场标定一致;抓取特征是否覆盖所有状态;托盘/料框工位是否与视觉模板匹配;夹具参数是否与工件重量和表面要求匹配。任何一项缺失,都可能导致机器人抓空、碰撞或工件损伤。

对象建模不是一次性的工作。当工件换型、托盘改造或夹具更换时,必须同步更新对象模型,并在UR仿真环境中重新验证可达性和干涉情况。建议将对象模型保存为结构化文件(如JSON或CSV),便于版本管理和批量导入。

总结来说,柔性上下料对象建模的核心是把物理对象转化为机器人可理解的数据。几何、重量、姿态、抓取特征四个维度缺一不可,毛坯与成品必须分开建模,托盘、夹具、料框的定位与约束必须明确表达。只有这样,UR程序才能在不同工件、不同状态、不同工位之间稳定切换,实现真正的柔性上下料。