ABB GoFa 教程总结:软件工程师如何理解协作机器人系统

本文内容总结自 ABB 官方培训教程《Getting started with GoFa™ Tutorial》

机械臂本体

1. 引言

如果从一般产品介绍的角度描述机械臂,常见写法通常会集中在负载、速度、臂展和应用行业上。但从软件工程师和系统集成工程师的视角来看,这样的介绍远远不够。因为在实际项目里,机械臂并不是一个孤立设备,而是一个需要接入控制系统、配置安全策略、定义工具模型、完成示教调试、接入上位系统并持续维护的工程对象。

机械臂的价值,不只在于它是一台协作机器人,更在于它围绕“机器人如何真正进入生产系统”提供了一整套较完整的工程链路。官方教程材料已经覆盖了这一链路的关键环节:从开箱、接线、控制器接口,到安全配置、手动引导、可视化编程,再到虚拟仿真和后续支持。把这些材料重新组织后,可以更清楚地看出机械臂在工程实施中的真实定位。

GoFa 系统全景

本文将不再沿用传统“产品亮点罗列”的方式,而是按照软件工程更熟悉的分析框架来介绍机械臂:先明确系统边界,再分析组成结构、接口与安全,再看开发方式、交互机制以及它在完整自动化系统中的职责分工。

产品GoFaSWIFTIYuMi(单臂)Dual-arm YuMi(双臂)
型号代表ABB GoFa CRB 15000ABB SWIFTI CRB 1300ABB YuMi IRB 14050ABB YuMi IRB 14000
定位通用协作机器人高速工业协作机器人小型精密单臂协作机器人双臂精密协作机器人
轴数6 轴6 轴7 轴14 轴(每臂 7 轴)
最大负载5–12 kg7–11 kg0.5 kg0.5 kg/臂
最大臂展0.95–1.62 m0.9–1.4 m559 mm559 mm/臂
重复定位精度±0.02 mm±0.01 mm±0.02 mm±0.02 mm
最大 TCP 速度2.2 m/s6.2 m/s1.5 m/s1.5 m/s
协作方式六关节扭矩传感器,碰撞即停外部安全激光扫描器 + SafeMove,靠近减速/停止柔性外壳 + 碰撞检测柔性外壳 + 碰撞检测
是否可直接人与机器人接触工作可以一般不建议,更多是“人进入区域后减速”可以可以
是否适合手动拖动示教很适合,支持柔顺拖动、Linear/Reorient Mode不适合,更多依赖示教器与离线编程可简单拖动可简单拖动
最擅长场景上下料、装配、搬运、锁螺丝、柔性制造高速上下料、码垛、机床上下料、快速搬运小零件装配、实验室、电子器件、医疗器械双手协同装配、电子产品、插接、拧线、实验室自动化
典型行业通用制造、3C、汽车零部件汽车、物流、机床、包装消费电子、医疗、实验室消费电子、医疗、实验室
安全机制内置六关节扭矩传感器,可检测碰撞 ([one.robotics.abb.com][1])SafeMove + 激光扫描器 + 状态灯,不依赖关节碰撞检测 ([ABB Group][2])软包覆、无夹点、碰撞立即停止 ([purvisindustries.com][3])同左,但双臂可同步避碰、协同工作 ([ABB Group][4])
控制器OmniCore C30OmniCore C30 / C90XT集成 IRC5 Compact集成 IRC5 Compact
防护等级IP54 左右(部分型号)IP40,部分型号可选 IP67IP30IP30
你会觉得它像什么“能和人一起干活的灵活工人”“带安全功能的高速工业机器人”“只会精细活的小巧单手工人”“两个手一起装配的小工人”

2. GoFa 的本质:一套机器人执行系统

GoFa 是一种协作型机械臂,主要设计用于与人类并肩工作,无需物理围栏保护。其核心特点包括智能安全特性、高重复定位精度和易于编程(如“拖拽教学”),适用于快速搬运、码垛、机器上下料及包装等应用

从工程视角看,GoFa 不应被理解为一根“会动的机械臂”,而应理解为一套以机械臂为执行端、以控制器为运行时核心、以示教器和仿真工具为开发入口的机器人执行系统。

这套系统至少包含四个基本组成部分:

  • 机械臂本体(CRB 15000):负责六轴运动、轨迹执行和末端工具姿态调整。
  • OmniCore 控制器:负责程序执行、运动控制、安全联锁、I/O 与网络集成。
  • FlexPendant 示教器:负责配置、示教、点动、状态监控和现场编程。
  • 线缆与末端工具:负责供电、通信和工艺能力接入。

机械臂本体

普通设备接入通常关注“设备能否通信”,而机器人接入必须同时关注:

  • 它如何执行动作
  • 它如何被配置
  • 它如何被安全约束
  • 它如何被现场人员调试
  • 它如何接入工位和上位系统

因此,GoFa 更像一个专用的机电一体化运行平台,而不是传统意义上的单体设备。

3. 产品定位:它适合什么,不适合什么

GoFa 属于 ABB 协作机器人系列,覆盖 5 kg、10 kg、12 kg 负载版本。它面向“首次使用机器人”的用户和中小规模自动化场景,这一定位如果换成工程语言,可以理解为:它适合那些动作模式相对明确、工位边界相对清晰、但又要求部署成本和学习门槛不能太高的项目。

GoFa 家族扩展

典型应用包括:

  • 装配
  • 抓取与搬运
  • 上下料
  • 包装
  • 质量检测

这些任务有一个共同工程特征:动作逻辑通常是结构化的、可重复的、可示教的。真正复杂的部分往往不在机械臂本身,而在于业务调度、工件变化、节拍协调和异常处理。因此,GoFa 的合理角色通常是“高可靠动作执行节点”,而不是承担全部业务智能的中心系统。

4. 为什么软件工程师应该先关注系统边界

机器人项目最容易失控的地方,通常不是“机器人会不会动”,而是“职责划分是不是一开始就错了”。如果没有系统边界意识,团队很容易陷入以下问题:

  • 把过多业务逻辑写进机器人程序
  • 把现场示教当作长期维护手段
  • 把安全配置当成联调末期补丁
  • 让上位系统只保留一个“启动/停止”级别的粗粒度接口

为了避免这些问题,可以把 GoFa 在项目中的职责拆成三层:

4.1 执行层

这一层由机械臂本体和末端工具组成,负责空间运动、姿态调整和工艺动作执行。它关心的是位置、速度、路径、工具姿态和接触响应。

4.2 控制层

这一层由 OmniCore 控制器主导,负责运动控制、程序执行、安全配置生效、I/O 管理和本地状态机运行。对软件工程师来说,这一层最接近“运行时”。

4.3 交互层

这一层由 FlexPendant、ASI、Wizard、RobotStudio 组成,负责现场示教、参数配置、程序编辑、调试和虚拟验证。

如果这三层划分清楚,项目就更容易形成合理的职责结构:

  • 动作执行逻辑放在机器人侧
  • 可配置约束和安全逻辑放在控制器侧
  • 复杂业务编排和跨设备协同放在上位系统侧

这是理解 GoFa 的第一原则,也是后续所有介绍的基础。

5. 系统结构:控制器才是真正的运行时中心

很多人第一次看机器人,会天然地把注意力放在机械臂本体上。但从工程实现角度看,控制器往往比机械臂本体更值得优先理解。因为它不是一个简单配件,而是整套系统的控制中枢。

OmniCore 接口图很能说明这一点。

OmniCore 接口图

材料中列出的接口包括:

  • Management port:连接 PC 和 RobotStudio,用于调试、初始化和管理。
  • LAN port:接入私有网络和现场总线。
  • WAN port:接入工厂网络。
  • FlexPendant connector:连接示教器。
  • Discrete/Local I/O:接入离散信号和本地 I/O。
  • Customer interface connection:用于客户侧信号交换。

这组接口本身就说明了 GoFa 的工程属性:

  • 它支持本地开发接入
  • 它支持现场 I/O 集成
  • 它支持工厂网络连接
  • 它支持被上位系统纳入统一管理

从软件类比上说,OmniCore 不只是“控制柜”,更像是一个专用宿主环境。它承载程序、提供接口、执行安全策略,并连接外部系统。真正的软件系统接入、现场联调和生命周期维护,绝大多数都绕不开控制器。

6. 接线的意义:物理连接就是系统边界的外化

从工程实施的角度来看,这其实是在讲系统边界的物理落地方式。

6.1 机械臂连接器:执行端接入

GoFa 机械臂连接器负责把控制柜中的驱动电能传输给机器人电机,并且连接器可旋转 180 度。

机械臂连接器

这类信息虽然偏硬件,但在项目上很现实,因为它直接影响:

  • 设备布局
  • 线缆受力与弯折空间
  • 日后维护便利性
  • 工位边界内是否有足够安装余量

在软件工程语境中,这可以类比为“环境初始化约束”。环境接错,后续所有逻辑配置都失去意义。

6.2 控制器接线:控制、I/O 与安全一起进入现场

OmniCore 接线步骤,不只是电源和通信连接,还涉及 I/O 板、信号连接和安全相关插槽。

OmniCore 接线步骤

OmniCore 安全接线细节

尤其值得注意的是,材料明确提示:某些跳线操作会禁用模拟安全回路,因此必须在风险评估前提下进行,并确保其他安全安排已经到位。

这个信息非常关键。它说明机器人系统里的“接线”并不等于“插上电就结束”,而是直接关系到:

  • 哪些安全回路仍然有效
  • 控制器如何理解现场状态
  • 哪些外设能参与联锁
  • 整套系统是否满足实际工况约束

这也是为什么机器人项目里的电气、控制、安全和软件通常不能完全割裂。

7. 末端工具:动作价值的真正载体

机械臂本体只提供运动能力,真正完成业务动作的是末端工具。抓取、吸附、定位、检测等能力,通常都要通过夹爪或其他工具实现。

GoFa 自带 ISO 法兰,便于安装外部工具。

GoFa ISO 法兰

这一点的工程意义在于,GoFa 并不是封闭生态下的黑盒设备,而是具有一定标准化工具接入能力的平台。这直接降低了:

  • 工具选型难度
  • 第三方生态接入成本
  • 后续替换和扩展的复杂度

ABB Robotics Ecosystem 提供了大量适配工具,并且部分支持通过 FlexPendant 直接安装软件附加组件。

ABB Robotics Ecosystem

这对项目初期非常有帮助,因为它减少了大量底层适配工作。但更重要的是教程后半部分给出的信息:工具不仅要装上去,还必须在系统中被“定义”。

7.1 为什么工具定义很关键

材料中要求用户定义:

  • 工具名称
  • 工具质量
  • 负载参数
  • TCP

这意味着系统必须在控制器里拥有一个关于工具的明确模型。这个模型直接影响:

  • 运动控制的准确性
  • 负载补偿是否合理
  • 手动引导是否顺畅
  • 安全配置是否真实反映现场状态

如果只完成了机械安装而没有完成参数建模,系统看到的仍然是“未知工具”。这和软件系统里“资源已经存在但没有注册、没有元数据”是一个问题。

外部工具定义界面

7.2 TCP 是动作准确性的基础

你的工具真正起作用的位置,不是在法兰盘中心,而是在工具尖端的某个点。TCP 定义错误,会导致:

  • 抓取点不准
  • 路径偏移
  • 角度修正异常
  • 仿真和实物结果不一致

TCP 定义示意

所以,从工程角度看,工具装配只是第一步,工具建模才是真正让机械臂可用的关键步骤。

8. “协作”能力的核心,在于安全体系而不是概念标签

协作机器人很容易被宣传语言掩盖真实工程要求。GoFa 的协作能力不是一句口号,而是一整套安全体系。

安全能力包括:

  • Global Speed Control(全局速度控制):例如在调试阶段,将机器人整体速度从 100% 降到 10%,这样即使程序正常运行,机械臂也会慢动作移动,便于观察。
  • SafeMove Collaborative(SafeMove 协作安全功能):例如当操作员靠近协作机器人时,机器人自动从正常速度降到安全速度;如果人进入危险区域,则立即停止。
  • Interaction status light(交互状态指示灯):例如绿色表示机器人正常运行,黄色表示等待人工确认,红色表示故障或急停。
  • Integrated torque sensors in all six joints(六个关节集成扭矩传感器):例如机器人抓取零件时,如果手臂碰到人或障碍物,某个关节检测到异常扭矩,机器人会立即减速或停止。
  • Emergency Stop(紧急停止):例如现场人员发现机器人即将撞到夹具时,立即按下急停按钮,机器人所有运动立刻停止。
  • Brake-release function(抱闸释放功能):例如机器人断电后需要手动把机械臂移到安全位置,可以释放各关节抱闸,然后人工推动机械臂。

协作安全演示

这些能力联合起来,才构成协作场景下可接受的安全行为。也就是说,GoFa 的协作不是“无条件与人共处”,而是在受控前提下,通过感知、限制、停机和可视反馈共同实现的人机共作。

9. GoFa 的人机交互设计:示教不只发生在屏幕里

GoFa 在交互设计上一个很值得强调的特点,是它没有把机器人编程完全限制在示教器菜单和键盘输入中。ASI 与 Lead-through,展示了它更偏现场操作的交互路线。

9.1 ASI:把交互能力做进机械臂本体

ASI 位于第 5 轴位置,具有两个可自定义按钮和一个光环。根据教程,它可以用于:

  • 启用或禁用 Lead-through
  • 在手动引导时把运动块直接写入 Wizard 程序

ASI 位置图

ASI 按钮细节

这种设计的价值非常直接:

  • 降低“扶着机器人”和“操作示教器”之间的切换成本
  • 提高现场示教效率
  • 让调试更贴近工位操作本身

从交互设计上说,ASI 让机械臂本体本身成为了编程流程的一部分,而不只是被编程对象。

9.2 Lead-through:用手引导代替输入坐标

Lead-through 的本质,是允许操作者直接扶着机械臂进行引导,让机器人随人移动并记录关键点位。

Lead-through 演示

教程还提到了一系列增强能力:

  • Payload Compensation(负载补偿) 用于告诉机器人当前工具和工件有多重、重心在哪里,使机器人自动补偿重力和惯性。否则机器人可能会“下坠”、抖动或感觉很重。 例如你给 ABB GoFa 装了一个 2 kg 的夹爪,又抓了一个 1 kg 的零件,那么需要设置总负载 3 kg 以及重心位置,这样机器人在手动拖动或协作模式下会感觉更轻、更自然。

  • Linear Mode(线性模式) 一种手动引导模式:当你推着机械臂运动时,机器人会尽量沿一条直线移动 TCP,而不是自由乱晃。 适合插入、对准、上下料等场景。 例如你在教机器人把插头插入插座时,推一下末端,机器人会只沿插头轴线前后移动,而不会左右偏。

  • Reorient Mode(重新定向模式) 一种手动引导模式:机器人允许你改变工具姿态,但尽量保持 TCP 位置不变。 适合调整角度、找最佳姿态。 例如你已经把螺丝刀尖端对准了螺丝孔,但角度不对,这时开启 Reorient Mode,你可以旋转机械臂,让螺丝刀转到合适角度,而刀尖仍停留在孔口。

  • Stiffness(刚度) 表示机器人在被推时“有多硬”或“有多软”。刚度越高,越不容易被推动;刚度越低,越容易被拖动。 例如在手动示教时,可以把刚度调低,轻轻一推机械臂就动;而在精密装配时,可以把刚度调高,让末端保持稳定,不容易被外力带偏。

  • Deadband Compensation(死区补偿) 用于补偿电机、减速器或传感器在很小力矩下“不响应”的区域。没有补偿时,你轻轻推机器人,它可能一开始不动,突然又一下动很多。 启用后,机器人会对很小的外力更敏感、更平滑。 例如你在拖动机器人时,原来要用比较大力它才开始动,而且一动就“窜”一下;开启 Deadband Compensation 后,轻推就会缓慢开始移动。

  • Stability Margin(稳定裕度) 用来控制机器人在协作/手动模式下距离“不稳定或振荡”还有多大余量。稳定裕度越高,机器人越保守、更稳定,但动作可能更慢、更钝;稳定裕度越低,机器人更灵敏,但更容易抖动。 例如你把刚度调得很低、负载又比较重时,机械臂可能会轻微震荡;提高 Stability Margin 后,机器人会自动变得更稳,不容易来回摆动。

这组能力说明,Lead-through 不是简单的“拖着走”,而是一个可调、可补偿、可约束的示教机制。它让示教更接近真实工艺动作,而不是让工程师在坐标和参数里硬算路径。

这类交互尤其适合:

  • 路径需要现场体感微调的任务
  • 初次示教阶段
  • 工位约束复杂、屏幕上不易理解的空间动作

10. 点动、Wizard 与 RobotStudio:完整开发链路的三个层次

GoFa 的开发体验不是单一模式,而是分层的,一条从低门槛示教到更专业开发的连续路径。

10.1 点动:最低层的动作调试接口

FlexPendant 支持多种 Jogging 模式:

  • Axis 1-6:逐轴微调
  • Linear:沿直线移动
  • Reorient:围绕固定点调整姿态

FlexPendant 点动界面

这三种模式基本覆盖了现场最常见的动作验证需求。它们的价值不在于“编程”,而在于为编程之前提供可控验证。

10.2 Wizard:低代码式机器人编程

Wizard Easy Programming 的核心价值,不是表达能力最强,而是进入门槛最低。当前教程给出的流程就是典型的可视化块式编程过程:添加 Move、创建位置、保存点位、调整速度、增加循环、执行程序。

Wizard 可视化编程界面

如果从软件工具类比,Wizard 更像一个面向领域工程师的可视化工作流编辑器。它非常适合:

  • 快速完成第一版流程
  • 让非 RAPID 用户参与项目
  • 在现场快速试出可运行原型

10.3 RobotStudio:离线开发与仿真的关键工具

真正体现工程成熟度的,是 RobotStudio 所提供的离线与在线编程模式。

RobotStudio 虚拟机器人

团队既可以连接真实机器人在线编程,也可以在没有物理机器人的情况下进行离线仿真。这一能力非常接近现代软件工程中的开发环境、测试环境和预发布环境概念。

它带来的直接好处包括:

  • 在上线前验证程序
  • 在不停产的情况下修改和测试
  • 复现问题并提前定位风险
  • 评估路径与节拍

如果没有这类虚拟验证工具,真实机器人就会被迫充当唯一开发环境,这会显著提高试错成本和生产影响。

11. 项目里的合理分工:机器人负责动作,上位系统负责业务

对于软件工程师来说,最重要的问题之一不是“机械臂能不能做”,而是“应该让机械臂做到哪一步”。比较合理的职责分配通常是:

  • 机器人本体:负责动作执行和空间运动控制。
  • 控制器与机器人程序:负责本地动作流程、安全、工具参数和现场 I/O 协调。
  • 上位系统:负责任务派发、工单驱动、状态采集、异常处理、追溯与跨设备协同。

这种分工的好处在于:

  • 动作逻辑清晰稳定
  • 业务逻辑更易版本化和维护
  • 故障定位边界更清楚
  • 项目更容易扩展到多设备协同

如果把复杂业务规则长期堆进机器人程序,通常会出现维护困难、改动不可追踪、联调效率低和知识依赖个别现场人员的问题。

因此,机械臂最合适的定位,不是“自成体系的全部智能”,而是自动化单元中的执行核心。

12. 一套 GoFa 项目的典型工程路径

结合当前目录下的教程材料,可以把一套机械臂项目的典型实施路径总结为:

  1. 明确应用场景、负载需求与工位边界。
  2. 选择合适型号并完成开箱、安装与接线。
  3. 接入 FlexPendant、必要 I/O 和网络。
  4. 安装夹爪或其他工具,并完成工具参数与 TCP 定义。
  5. 配置 SafeMove 与相关安全策略。
  6. 通过点动、ASI、Lead-through 完成基础示教。
  7. 使用 Wizard 快速搭建可运行流程。
  8. 通过 RobotStudio 做离线验证和风险前置检查。
  9. 部署到真实控制器,完成现场联调和节拍优化。

13. 结语

如果只从设备宣传页去看,GoFa 是一台协作机械臂;但从软件工程视角去看,它更接近一个围绕机器人执行而构建的工程平台。

它的核心价值不只是负载和速度,而是以下四点:

  • 它把控制、交互、执行和安全组织成了一套清晰系统。
  • 它支持从低门槛示教到高级仿真的渐进式开发。
  • 它通过控制器接口和工具生态具备较强的系统集成能力。
  • 它把安全配置前置为系统设计的一部分。

因此,理解 ABB 机械臂的正确方式,不是把它视为一台孤立的机械臂,而是把它视为一个能够接入工位、纳入控制系统、接受安全约束、支持开发调试并持续迭代优化的机器人执行平台。