ABB GoFa 教程总结:软件工程师如何理解协作机器人系统
本文内容总结自 ABB 官方培训教程《Getting started with GoFa™ Tutorial》

1. 引言
如果从一般产品介绍的角度描述机械臂,常见写法通常会集中在负载、速度、臂展和应用行业上。但从软件工程师和系统集成工程师的视角来看,这样的介绍远远不够。因为在实际项目里,机械臂并不是一个孤立设备,而是一个需要接入控制系统、配置安全策略、定义工具模型、完成示教调试、接入上位系统并持续维护的工程对象。
机械臂的价值,不只在于它是一台协作机器人,更在于它围绕“机器人如何真正进入生产系统”提供了一整套较完整的工程链路。官方教程材料已经覆盖了这一链路的关键环节:从开箱、接线、控制器接口,到安全配置、手动引导、可视化编程,再到虚拟仿真和后续支持。把这些材料重新组织后,可以更清楚地看出机械臂在工程实施中的真实定位。

本文将不再沿用传统“产品亮点罗列”的方式,而是按照软件工程更熟悉的分析框架来介绍机械臂:先明确系统边界,再分析组成结构、接口与安全,再看开发方式、交互机制以及它在完整自动化系统中的职责分工。
| 产品 | GoFa | SWIFTI | YuMi(单臂) | Dual-arm YuMi(双臂) |
|---|---|---|---|---|
| 型号代表 | ABB GoFa CRB 15000 | ABB SWIFTI CRB 1300 | ABB YuMi IRB 14050 | ABB YuMi IRB 14000 |
| 定位 | 通用协作机器人 | 高速工业协作机器人 | 小型精密单臂协作机器人 | 双臂精密协作机器人 |
| 轴数 | 6 轴 | 6 轴 | 7 轴 | 14 轴(每臂 7 轴) |
| 最大负载 | 5–12 kg | 7–11 kg | 0.5 kg | 0.5 kg/臂 |
| 最大臂展 | 0.95–1.62 m | 0.9–1.4 m | 559 mm | 559 mm/臂 |
| 重复定位精度 | ±0.02 mm | ±0.01 mm | ±0.02 mm | ±0.02 mm |
| 最大 TCP 速度 | 2.2 m/s | 6.2 m/s | 1.5 m/s | 1.5 m/s |
| 协作方式 | 六关节扭矩传感器,碰撞即停 | 外部安全激光扫描器 + SafeMove,靠近减速/停止 | 柔性外壳 + 碰撞检测 | 柔性外壳 + 碰撞检测 |
| 是否可直接人与机器人接触工作 | 可以 | 一般不建议,更多是“人进入区域后减速” | 可以 | 可以 |
| 是否适合手动拖动示教 | 很适合,支持柔顺拖动、Linear/Reorient Mode | 不适合,更多依赖示教器与离线编程 | 可简单拖动 | 可简单拖动 |
| 最擅长场景 | 上下料、装配、搬运、锁螺丝、柔性制造 | 高速上下料、码垛、机床上下料、快速搬运 | 小零件装配、实验室、电子器件、医疗器械 | 双手协同装配、电子产品、插接、拧线、实验室自动化 |
| 典型行业 | 通用制造、3C、汽车零部件 | 汽车、物流、机床、包装 | 消费电子、医疗、实验室 | 消费电子、医疗、实验室 |
| 安全机制 | 内置六关节扭矩传感器,可检测碰撞 ([one.robotics.abb.com][1]) | SafeMove + 激光扫描器 + 状态灯,不依赖关节碰撞检测 ([ABB Group][2]) | 软包覆、无夹点、碰撞立即停止 ([purvisindustries.com][3]) | 同左,但双臂可同步避碰、协同工作 ([ABB Group][4]) |
| 控制器 | OmniCore C30 | OmniCore C30 / C90XT | 集成 IRC5 Compact | 集成 IRC5 Compact |
| 防护等级 | IP54 左右(部分型号) | IP40,部分型号可选 IP67 | IP30 | IP30 |
| 你会觉得它像什么 | “能和人一起干活的灵活工人” | “带安全功能的高速工业机器人” | “只会精细活的小巧单手工人” | “两个手一起装配的小工人” |
2. GoFa 的本质:一套机器人执行系统
GoFa 是一种协作型机械臂,主要设计用于与人类并肩工作,无需物理围栏保护。其核心特点包括智能安全特性、高重复定位精度和易于编程(如“拖拽教学”),适用于快速搬运、码垛、机器上下料及包装等应用
从工程视角看,GoFa 不应被理解为一根“会动的机械臂”,而应理解为一套以机械臂为执行端、以控制器为运行时核心、以示教器和仿真工具为开发入口的机器人执行系统。
这套系统至少包含四个基本组成部分:
- 机械臂本体(CRB 15000):负责六轴运动、轨迹执行和末端工具姿态调整。
- OmniCore 控制器:负责程序执行、运动控制、安全联锁、I/O 与网络集成。
- FlexPendant 示教器:负责配置、示教、点动、状态监控和现场编程。
- 线缆与末端工具:负责供电、通信和工艺能力接入。

普通设备接入通常关注“设备能否通信”,而机器人接入必须同时关注:
- 它如何执行动作
- 它如何被配置
- 它如何被安全约束
- 它如何被现场人员调试
- 它如何接入工位和上位系统
因此,GoFa 更像一个专用的机电一体化运行平台,而不是传统意义上的单体设备。
3. 产品定位:它适合什么,不适合什么
GoFa 属于 ABB 协作机器人系列,覆盖 5 kg、10 kg、12 kg 负载版本。它面向“首次使用机器人”的用户和中小规模自动化场景,这一定位如果换成工程语言,可以理解为:它适合那些动作模式相对明确、工位边界相对清晰、但又要求部署成本和学习门槛不能太高的项目。

典型应用包括:
- 装配
- 抓取与搬运
- 上下料
- 包装
- 质量检测
这些任务有一个共同工程特征:动作逻辑通常是结构化的、可重复的、可示教的。真正复杂的部分往往不在机械臂本身,而在于业务调度、工件变化、节拍协调和异常处理。因此,GoFa 的合理角色通常是“高可靠动作执行节点”,而不是承担全部业务智能的中心系统。
4. 为什么软件工程师应该先关注系统边界
机器人项目最容易失控的地方,通常不是“机器人会不会动”,而是“职责划分是不是一开始就错了”。如果没有系统边界意识,团队很容易陷入以下问题:
- 把过多业务逻辑写进机器人程序
- 把现场示教当作长期维护手段
- 把安全配置当成联调末期补丁
- 让上位系统只保留一个“启动/停止”级别的粗粒度接口
为了避免这些问题,可以把 GoFa 在项目中的职责拆成三层:
4.1 执行层
这一层由机械臂本体和末端工具组成,负责空间运动、姿态调整和工艺动作执行。它关心的是位置、速度、路径、工具姿态和接触响应。
4.2 控制层
这一层由 OmniCore 控制器主导,负责运动控制、程序执行、安全配置生效、I/O 管理和本地状态机运行。对软件工程师来说,这一层最接近“运行时”。
4.3 交互层
这一层由 FlexPendant、ASI、Wizard、RobotStudio 组成,负责现场示教、参数配置、程序编辑、调试和虚拟验证。
如果这三层划分清楚,项目就更容易形成合理的职责结构:
- 动作执行逻辑放在机器人侧
- 可配置约束和安全逻辑放在控制器侧
- 复杂业务编排和跨设备协同放在上位系统侧
这是理解 GoFa 的第一原则,也是后续所有介绍的基础。
5. 系统结构:控制器才是真正的运行时中心
很多人第一次看机器人,会天然地把注意力放在机械臂本体上。但从工程实现角度看,控制器往往比机械臂本体更值得优先理解。因为它不是一个简单配件,而是整套系统的控制中枢。
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 板、信号连接和安全相关插槽。


尤其值得注意的是,材料明确提示:某些跳线操作会禁用模拟安全回路,因此必须在风险评估前提下进行,并确保其他安全安排已经到位。
这个信息非常关键。它说明机器人系统里的“接线”并不等于“插上电就结束”,而是直接关系到:
- 哪些安全回路仍然有效
- 控制器如何理解现场状态
- 哪些外设能参与联锁
- 整套系统是否满足实际工况约束
这也是为什么机器人项目里的电气、控制、安全和软件通常不能完全割裂。
7. 末端工具:动作价值的真正载体
机械臂本体只提供运动能力,真正完成业务动作的是末端工具。抓取、吸附、定位、检测等能力,通常都要通过夹爪或其他工具实现。
GoFa 自带 ISO 法兰,便于安装外部工具。

这一点的工程意义在于,GoFa 并不是封闭生态下的黑盒设备,而是具有一定标准化工具接入能力的平台。这直接降低了:
- 工具选型难度
- 第三方生态接入成本
- 后续替换和扩展的复杂度
ABB Robotics Ecosystem 提供了大量适配工具,并且部分支持通过 FlexPendant 直接安装软件附加组件。

这对项目初期非常有帮助,因为它减少了大量底层适配工作。但更重要的是教程后半部分给出的信息:工具不仅要装上去,还必须在系统中被“定义”。
7.1 为什么工具定义很关键
材料中要求用户定义:
- 工具名称
- 工具质量
- 负载参数
- TCP
这意味着系统必须在控制器里拥有一个关于工具的明确模型。这个模型直接影响:
- 运动控制的准确性
- 负载补偿是否合理
- 手动引导是否顺畅
- 安全配置是否真实反映现场状态
如果只完成了机械安装而没有完成参数建模,系统看到的仍然是“未知工具”。这和软件系统里“资源已经存在但没有注册、没有元数据”是一个问题。

7.2 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 让机械臂本体本身成为了编程流程的一部分,而不只是被编程对象。
9.2 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:围绕固定点调整姿态

这三种模式基本覆盖了现场最常见的动作验证需求。它们的价值不在于“编程”,而在于为编程之前提供可控验证。
10.2 Wizard:低代码式机器人编程
Wizard Easy Programming 的核心价值,不是表达能力最强,而是进入门槛最低。当前教程给出的流程就是典型的可视化块式编程过程:添加 Move、创建位置、保存点位、调整速度、增加循环、执行程序。

如果从软件工具类比,Wizard 更像一个面向领域工程师的可视化工作流编辑器。它非常适合:
- 快速完成第一版流程
- 让非 RAPID 用户参与项目
- 在现场快速试出可运行原型
10.3 RobotStudio:离线开发与仿真的关键工具
真正体现工程成熟度的,是 RobotStudio 所提供的离线与在线编程模式。

团队既可以连接真实机器人在线编程,也可以在没有物理机器人的情况下进行离线仿真。这一能力非常接近现代软件工程中的开发环境、测试环境和预发布环境概念。
它带来的直接好处包括:
- 在上线前验证程序
- 在不停产的情况下修改和测试
- 复现问题并提前定位风险
- 评估路径与节拍
如果没有这类虚拟验证工具,真实机器人就会被迫充当唯一开发环境,这会显著提高试错成本和生产影响。
11. 项目里的合理分工:机器人负责动作,上位系统负责业务
对于软件工程师来说,最重要的问题之一不是“机械臂能不能做”,而是“应该让机械臂做到哪一步”。比较合理的职责分配通常是:
- 机器人本体:负责动作执行和空间运动控制。
- 控制器与机器人程序:负责本地动作流程、安全、工具参数和现场 I/O 协调。
- 上位系统:负责任务派发、工单驱动、状态采集、异常处理、追溯与跨设备协同。
这种分工的好处在于:
- 动作逻辑清晰稳定
- 业务逻辑更易版本化和维护
- 故障定位边界更清楚
- 项目更容易扩展到多设备协同
如果把复杂业务规则长期堆进机器人程序,通常会出现维护困难、改动不可追踪、联调效率低和知识依赖个别现场人员的问题。
因此,机械臂最合适的定位,不是“自成体系的全部智能”,而是自动化单元中的执行核心。
12. 一套 GoFa 项目的典型工程路径
结合当前目录下的教程材料,可以把一套机械臂项目的典型实施路径总结为:
- 明确应用场景、负载需求与工位边界。
- 选择合适型号并完成开箱、安装与接线。
- 接入 FlexPendant、必要 I/O 和网络。
- 安装夹爪或其他工具,并完成工具参数与 TCP 定义。
- 配置 SafeMove 与相关安全策略。
- 通过点动、ASI、Lead-through 完成基础示教。
- 使用 Wizard 快速搭建可运行流程。
- 通过 RobotStudio 做离线验证和风险前置检查。
- 部署到真实控制器,完成现场联调和节拍优化。
13. 结语
如果只从设备宣传页去看,GoFa 是一台协作机械臂;但从软件工程视角去看,它更接近一个围绕机器人执行而构建的工程平台。
它的核心价值不只是负载和速度,而是以下四点:
- 它把控制、交互、执行和安全组织成了一套清晰系统。
- 它支持从低门槛示教到高级仿真的渐进式开发。
- 它通过控制器接口和工具生态具备较强的系统集成能力。
- 它把安全配置前置为系统设计的一部分。
因此,理解 ABB 机械臂的正确方式,不是把它视为一台孤立的机械臂,而是把它视为一个能够接入工位、纳入控制系统、接受安全约束、支持开发调试并持续迭代优化的机器人执行平台。
