2. 装配工作站对象建模

任务编排要能落地,前提是工作站里的每个对象都能被计算机“认识”。对象建模的本质,是把物理工位翻译成一组带类型、带参数、带约束、带坐标的数字实体,让编排系统知道“谁在哪里、能做什么、和谁有连接、什么时候会变”。本节围绕工件、夹具、工具、机器人、传感器与工位布局六类对象,说明数字化表达的关键字段与建模方法。

一、六类对象的建模定位

六类对象在编排中承担不同角色,建模时关注点也不同:

  • 工件(Workpiece):被操作对象,核心是几何外形、质量、抓取特征、装配基准与工艺要求。
  • 夹具(Fixture):定位与夹紧对象,核心是定位面、夹紧点、开合状态与占用关系。
  • 工具(Tool):执行工艺的末端执行器,核心是类型、TCP、可达姿态与工艺参数。
  • 机器人(Robot):运动主体,核心是基座位姿、关节限位、负载与工作空间。
  • 传感器(Sensor):状态感知对象,核心是测量类型、安装位姿、触发条件与输出信号。
  • 工位布局(Layout):承载以上对象的空间框架,核心是坐标系、工位分区与对象间相对位置。

这六类对象不是孤立清单,而是通过坐标、接口和状态相互约束。建模的目标,是让编排系统在生成任务序列时,能自动判断“机器人能否到达夹具上的工件”“工具是否与工件匹配”“传感器是否在正确位置触发”。

二、统一坐标与位姿表达

所有对象都必须挂接在统一的世界坐标系下。工程上常用右手坐标系:X 轴向前,Y 轴向左,Z 轴向上,姿态用绕 Z-Y-X 的欧拉角(偏航 yaw、俯仰 pitch、横滚 roll)或四元数表示。每个对象记录一个 6 维位姿:

pose = {x, y, z, rx, ry, rz}   // 位置单位 mm,姿态单位 °

例如某工位世界坐标系原点设在工位底板中心,机器人基座位姿为 {x:0, y:0, z:800, rx:0, ry:0, rz:0},表示机器人安装在底板中心上方 800 mm 处,朝向与 X 轴一致。夹具安装面位姿为 {x:600, y:-300, z:750, rx:0, ry:0, rz:90},表示夹具位于机器人右前方,绕 Z 轴旋转 90°。工件在夹具上的装配位姿为 {x:600, y:-300, z:780, rx:0, ry:0, rz:90},比夹具安装面高 30 mm,即工件厚度方向。这些数值均为示例,实际应以现场标定为准。

建模时先定义世界坐标系,再定义各对象相对世界坐标系的位姿;对象之间的相对关系由系统自动换算,避免手工叠加误差。

三、对象属性与约束字段

仅有位姿不足以支撑编排,还需要属性与约束。以机器人、夹具、工具为例,建议字段如下:

对象关键字段示例值
机器人型号、负载、臂展、关节限位、TCP 列表负载 6 kg,臂展 900 mm,J1 限位 ±170°
夹具定位面、夹紧点、开合状态、占用工件 ID两指平行夹爪,开度 0~60 mm,状态 closed
工具类型、TCP、工艺参数、适配工件特征拧紧枪,TCP 偏置 z=120 mm,扭矩 2.5 N·m
传感器类型、安装位姿、触发阈值、输出信号接近开关,检测距离 5 mm,输出 DI0

约束字段是编排的“规则来源”。例如夹具的“占用工件 ID”为空时表示可放置,非空时表示已被占用;机器人的关节限位决定某些姿态不可达;工具的适配工件特征决定它只能抓取特定工件。把这些约束显式建模,编排算法才能在生成任务时自动排除非法组合。

四、工位布局与对象关系

工位布局不是简单的位置列表,而是对象之间的空间与逻辑关系。建议按“分区—对象—连接”三层表达:分区划分上料区、装配区、下料区;对象挂接到分区;连接描述对象间的可达、供料、检测关系。下图给出一个典型装配工作站的数字化对象关系:

装配工作站对象建模关系图(示例) 世界坐标系 W:X 向前,Y 向左,Z 向上 机器人 R1 基座位姿 (0,0,800) 负载 6kg / 臂展 900mm TCP: 抓取 / 拧紧 工具 T1 类型:平行夹爪 TCP 偏置 z=120mm 适配:法兰类工件 工件 P1 外形:圆柱法兰 质量 1.2kg / 高 30mm 抓取特征:外圆 φ50 夹具 F1 安装位姿 (600,-300,750) 开度 0~60mm 状态:closed / 占用 P1 传感器 S1 类型:接近开关 安装位姿 (600,-300,720) 触发距离 5mm / 输出 DI0 工位布局 L1 上料区 / 装配区 / 下料区 底板 1200×800mm 对象挂接分区 安装 抓取 放置 检测 归属 约束:R1 可达 F1 上方装配点;T1 适配 P1 外圆;S1 检测 P1 是否到位;F1 占用状态随 P1 放置更新

五、状态与动态属性

对象建模不仅要描述静态几何,还要描述动态状态。编排系统在运行时需要知道:夹具是开还是合、是否已占用;工件是在上料区、被夹持还是已装配;传感器是触发还是未触发;机器人当前是否空闲。建议为每个对象定义状态机字段,例如夹具状态可简化为 idle → closing → closed → opening → idle,工件状态可简化为 at_feed → grasped → placed → assembled。状态迁移由传感器信号和机器人动作共同驱动,编排逻辑据此判断下一步是否可执行。

六、建模落地建议

实际建模时,建议按以下顺序推进:先建立世界坐标系与工位底板尺寸,再录入机器人与工具,随后录入夹具与传感器,最后录入工件并绑定工艺要求。每录入一个对象,立即检查其位姿是否与相邻对象存在干涉、其约束是否与已有对象冲突。对于示例中的参数,务必以现场标定和实际设备手册为准,不可直接照搬。建模完成后,可用一个简单任务验证:让机器人从夹具上抓取工件 P1,若系统能自动判断可达性、工具适配性和夹具占用状态,说明对象模型已具备支撑编排的基本能力。

对象建模的常见错误是只录几何、不录约束和状态。缺少约束会导致编排生成不可达或非法动作;缺少状态会导致系统无法判断夹具是否可用、工件是否已放置。建模时应把“能做什么、不能做什么、当前处于什么状态”与几何信息一并录入。