2. UR机器人硬件与控制系统认知

要真正把 UR 机器人接入 ROS2,第一步不是写代码,而是先弄清楚“谁在控制谁”。UR 机器人本体只是执行机构,真正决定运动、安全与通信的是控制柜、示教器和运行在控制器上的软件系统。本节围绕控制柜接口、安全配置、示教器操作、URCap 机制与外部控制模式五个方面展开,帮助建立对 UR 控制系统的整体认知。

控制柜:机器人的“大脑与配电中心”

UR 控制柜(Control Box)内部集成了控制器主板、安全板、电源模块、伺服驱动接口以及通信接口。以 e 系列为例,控制柜前面板提供若干关键接口:

  • 电源输入:通常为 100–240 V AC,经内部开关电源转换为 48 V DC 供关节与逻辑电路使用。
  • 数字/模拟 I/O:通用数字输入输出、模拟输入输出,用于连接夹爪、传感器、PLC 等外围设备。
  • 安全 I/O:包括紧急停止、保护性停止、安全门、缩减模式等专用安全信号端子。
  • 通信接口:以太网口(用于示教器、上位机、ROS2 通信)、USB 口(程序与日志导入导出)。
  • 工具/关节接口:工具端供电与信号,以及各关节编码器与驱动线缆接口。

理解接口分布的意义在于:ROS2 驱动并不直接“驱动电机”,而是通过控制器提供的通信接口发送运动指令、读取状态。因此,接口类型决定了可用的控制模式与实时性上限。

安全配置:先安全,后运动

UR 的安全体系分为“安全信号”和“安全限制”两层。安全信号包括紧急停止、保护性停止、安全门、缩减模式输入等,它们通过安全 I/O 或安全现场总线接入。安全限制则在软件中配置,主要包括:

  • 关节限位:每个关节的角度上下限。
  • 安全平面:限制工具在空间中的可达区域。
  • 工具与 TCP 限制:限制工具中心点的位置、速度、力。
  • 速度与力限制:在缩减模式下自动降低速度与力。

这些限制在示教器的“安装 → 安全”中配置,并由安全板独立校验。ROS2 驱动发送的指令若超出限制,控制器会拒绝执行或触发保护性停止。因此,在集成前必须确认安全配置与 ROS2 运动规划的空间、速度约束一致,否则会出现“规划成功但机器人不动”的现象。

示教器:配置与调试的入口

示教器(Teach Pendant)是 UR 的本地操作终端,运行 PolyScope 系统。它承担四类工作:

  1. 安装配置:设置 TCP、负载、安装角度、安全限制、I/O 映射。
  2. 程序编写:用图形化方式编写 URScript 程序,或直接编辑脚本。
  3. 手动示教:通过“自由驱动”模式拖动机械臂记录点位。
  4. 状态监控:查看关节角度、TCP 位姿、I/O 状态、日志与报警。

对 ROS2 集成而言,示教器最重要的作用是完成“一次性配置”:TCP、负载、安全限制、网络地址、外部控制模式开关。这些配置保存在控制器中,ROS2 驱动启动后直接继承,无需重复设置。

URCap:控制器的功能扩展机制

URCap 是运行在 UR 控制器上的插件机制,用于扩展 PolyScope 的功能。它分为两类:

  • PolyScope 插件:在示教器界面中增加新页面、新程序节点。
  • 后台服务:在控制器 Linux 系统中运行守护进程,提供通信、计算或设备接入能力。

UR 官方提供的 External Control URCap 和 ROS2 驱动正是通过这一机制工作:URCap 在控制器上开放一个外部控制端口,ROS2 驱动通过该端口以固定周期发送关节位置或速度指令。理解 URCap 的意义在于:ROS2 与 UR 的对接不是“绕过控制器”,而是“在控制器允许的框架内”进行外部控制。

外部控制模式:ROS2 如何接管运动

UR 的外部控制模式主要有两种:

  • RTDE(Real-Time Data Exchange):用于高速读写控制器数据,典型周期 2–10 ms,可读取关节角度、TCP 位姿、I/O,写入关节位置、速度、数字输出等。
  • External Control URCap:在示教器中加载一个程序节点,使控制器进入“等待外部指令”状态,ROS2 驱动通过该节点发送轨迹。

典型工作流程是:在示教器中加载 External Control 程序并运行,控制器进入外部控制等待状态;ROS2 启动 ur_robot_driver,连接控制器 IP 与端口;驱动通过 RTDE 读取状态,通过外部控制端口发送关节轨迹。此时机器人运动由 ROS2 规划结果决定,但安全限制仍由控制器独立把关。

UR 控制系统与 ROS2 外部控制关系 UR 控制柜 控制器主板 / 安全板 安全限制独立校验 RTDE 服务 2–10 ms 周期读写 External Control URCap 等待外部轨迹指令 安全 I/O / 通信接口 急停 / 安全门 / 以太网 示教器 PolyScope 配置 UR 机器人本体 关节伺服驱动 编码器反馈 工具端 I/O ROS2 上位机 ur_robot_driver RTDE 客户端 MoveIt2 规划 关节轨迹生成 控制器状态订阅 关节角 / TCP / I/O 轨迹下发 固定周期指令流 安全约束需与控制器一致 状态 等待 轨迹 驱动指令 编码器反馈 安全信号独立于 ROS2 指令,直接作用于驱动

集成前的检查要点

在把 UR 接入 ROS2 之前,建议按以下顺序确认:

检查项位置典型值/示例
控制器 IP示教器 → 设置 → 网络192.168.1.10(示例)
RTDE 端口控制器默认30004
External Control 端口URCap 配置50002(示例)
TCP 与负载示教器 → 安装 → TCP根据实际工具设置
安全限制示教器 → 安装 → 安全关节限位、安全平面
外部控制程序示教器 → 程序加载并运行 External Control
RTDE 端口 30004 与 External Control 端口 50002 是常见默认值,实际项目中以控制器与 URCap 配置为准。ROS2 驱动启动参数中的 IP 与端口必须与示教器显示一致。
安全限制由控制器独立执行,ROS2 无法绕过。若规划轨迹超出安全平面或关节限位,控制器会拒绝执行并可能触发保护性停止。集成时应先在小范围、低速下验证,再逐步放开。

掌握控制柜接口、安全配置、示教器操作、URCap 机制与外部控制模式之后,就能理解 ROS2 驱动在系统中的真实位置:它不替代控制器,而是通过 RTDE 与 External Control 与控制器协作,在安全框架内完成运动控制。这是后续驱动安装、参数配置与轨迹调试的基础。