2. 机器人系统基础
要做好机器人故障诊断与安全降级,第一步不是记住某个报警代码,而是建立“机器人是一套由感知、决策、执行、通信四条链路耦合而成的实时系统”这一整体认知。只有知道一个异常信号从哪来、经过谁、最终影响哪个动作,才能在故障发生时快速定位,并判断应该降级到何种安全状态。本节从典型机器人组成入手,逐层拆解传感器、执行器、控制器与通信架构,并给出可用于诊断的结构化视角。
一、典型机器人系统的五层组成
无论工业机械臂、移动机器人还是协作机器人,其硬件与软件大体可归入五个层次:
- 感知层:编码器、IMU、力/力矩传感器、视觉相机、激光雷达、接近开关等,负责把物理世界转换为电信号或数据帧。
- 执行层:伺服电机、减速器、驱动器、气动/液压执行器、夹爪等,把控制指令转换为机械运动或力输出。
- 控制层:运动控制器、PLC、工控机、实时内核,负责轨迹规划、闭环调节、逻辑联锁与安全监控。
- 通信层:EtherCAT、CANopen、Modbus、Ethernet/IP、ROS 2 DDS 等总线与协议,承担周期数据与控制命令的传输。
- 安全与供电层:安全继电器、安全 PLC、急停回路、抱闸电源、UPS,决定故障时系统能否进入安全状态。
这五层不是简单堆叠,而是存在明确的信号流向与依赖关系。下图给出典型机器人系统的信号链与通信拓扑,可作为后续故障定位的“地图”。
二、传感器:诊断的第一信息来源
传感器是故障诊断的“眼睛”。在机器人系统中,传感器可分为内部状态传感器与外部环境传感器两类。内部传感器包括关节编码器、电机霍尔、电流采样、温度传感器、母线电压检测,它们直接反映执行器与驱动器的健康状态;外部传感器包括视觉、激光雷达、力/力矩、触觉、接近开关,用于感知工件、障碍物与人机距离。
诊断时最值得关注的是传感器的有效性与一致性。例如编码器信号出现跳变、IMU 零偏漂移、力传感器零点偏移,都会导致控制层做出错误决策。常见做法是对关键传感器做多源交叉校验:编码器位置与视觉位姿比对、电流估算力矩与力矩传感器比对、双编码器冗余比对。一旦偏差超过阈值,就应触发降级而非继续闭环运行。
三、执行器与控制器:指令链上的关键节点
执行器把控制指令转化为物理动作,其故障通常表现为无力、抖动、过热、异响、定位偏差或抱闸失效。控制器则是整个系统的“大脑”,负责周期性的采样—计算—输出。控制器的健康度取决于 CPU 负载、周期抖动、内存占用、任务超时等指标。当控制周期从 1ms 抖动到 3ms,轨迹跟踪就会明显变差,严重时触发跟随误差报警。
下面是一段典型的控制器周期任务伪代码,用于说明诊断观察点应插入在哪些位置:
loop every 1ms:
feedback = read_encoders() # 观察点1:反馈有效性
cmd = trajectory_step() # 观察点2:规划输出
torque = pid(cmd, feedback) # 观察点3:调节量饱和
write_driver(torque) # 观察点4:总线写成功
check_safety() # 观察点5:安全条件
if cycle_overrun:
log_and_degrade() # 降级:降低速度或停止
四、通信架构:故障传播的高速通道
通信架构决定了故障是“局部”还是“扩散”。以 EtherCAT 为例,主站周期发送过程数据帧,从站依次读写;若某个从站掉线或帧校验错误,整条链路都可能进入错误状态。CANopen 则通过心跳与节点保护监控从站,节点丢失会触发总线报警。ROS 2 使用 DDS 做发布订阅,QoS 配置不当会导致消息丢失或延迟,表现为“控制指令时有时无”。
诊断通信问题时,应重点关注:总线错误计数、帧丢失率、周期抖动、从站状态字、心跳超时。下表给出常见通信故障与典型现象对照,便于快速排查。
| 通信故障 | 典型现象 | 优先检查点 | 建议降级动作 |
|---|---|---|---|
| EtherCAT 从站掉线 | 对应关节失控、报警 0x0A | 网线、端子、从站供电 | 停止运动,抱闸锁止 |
| CAN 心跳超时 | 节点离线、总线错误帧增加 | 终端电阻、波特率、线束 | 切换备用节点或停机 |
| DDS QoS 不匹配 | 指令断续、延迟抖动 | QoS 配置、网络拥塞 | 降低速度,切换可靠传输 |
| 周期抖动过大 | 轨迹跟踪误差增大 | CPU 负载、中断优先级 | 降速运行,关闭非实时任务 |
五、案例与复盘:一次典型的“假传感器故障”
某协作机器人在装配工位频繁触发“关节 3 位置偏差过大”报警。初步排查怀疑编码器故障,但更换编码器后问题依旧。进一步检查发现,EtherCAT 该从站的周期帧偶尔延迟 2 个周期,导致控制器使用的反馈值滞后,PID 输出震荡,最终触发跟随误差报警。真正根因是通信线束在拖链中长期弯折,屏蔽层破损引入干扰。
这个案例说明:故障现象在传感器,根因可能在通信或控制器。诊断时必须沿信号链逐段验证,而不是直接更换最显眼的部件。复盘时应记录:报警时间、总线错误计数、周期抖动曲线、更换部件前后的对比数据,形成可复用的诊断路径。