3. 机器人系统架构

机器人系统通常被划分为四个逻辑层:感知层负责获取环境与自身状态,决策层负责理解任务并生成行为意图,控制层负责把意图转化为可执行的指令序列,执行层负责驱动电机、关节、末端执行器等物理对象。HIL(Hardware-in-the-Loop)测试的核心价值,在于把真实硬件接入仿真回路,让不同层级的软硬件在接近真实的时序与信号条件下被验证。理解这四层与HIL测试的对应关系,是设计测试方案、划分测试边界、定位缺陷来源的基础。

一、四层架构与HIL测试的映射关系

从测试视角看,四层并不是简单的“从上到下依次测试”,而是每一层都有不同的HIL接入点和验证目标。感知层关注传感器数据是否真实、时间戳是否一致、标定是否正确;决策层关注算法在闭环场景中的行为是否合理;控制层关注控制周期、指令限幅、状态机切换是否安全;执行层关注驱动器、电机、编码器、制动器等真实硬件的响应与保护逻辑。

下图展示了机器人四层架构与HIL测试的对应关系。左侧为真实系统层级,右侧为HIL测试中常见的接入方式与验证重点。可以看到,HIL并不是只测某一层,而是通过信号注入、硬件替换、实时仿真三种手段,在不同层级之间建立可观测、可控制的测试回路。

机器人四层架构 ↔ HIL测试对应关系 真实系统层级 感知层 激光雷达 / 相机 / IMU / 编码器 时间同步 · 标定 · 数据预处理 决策层 定位 / 建图 / 路径规划 / 任务调度 行为树 · 状态机 · 语义理解 控制层 轨迹插补 / 力控 / 阻抗控制 周期任务 · 限幅 · 安全逻辑 执行层 伺服驱动器 / 电机 / 关节 / 夹爪 电流环 · 位置环 · 制动器 HIL测试接入与验证重点 传感器仿真注入 回放真实点云/图像,注入故障帧、丢包、时间戳跳变 验证:感知算法鲁棒性、同步机制、标定误差影响 场景闭环仿真 虚拟场景 + 真实决策算法,验证路径规划与行为树 验证:避障成功率、任务完成率、异常恢复策略 实时控制回路测试 真实控制器 + 虚拟被控对象,验证周期抖动与限幅 验证:控制周期、超调量、状态机切换安全性 真实硬件在环 真实驱动器/电机接入,仿真负载与故障注入 验证:过流保护、堵转响应、制动器时序、温升 HIL核心:真实硬件 + 实时仿真 + 信号注入,形成可观测、可控制、可复现的闭环测试回路

二、各层HIL测试的方法与接入点

感知层的HIL测试通常采用传感器数据回放或传感器仿真注入。例如,将真实采集的激光雷达点云按原始时间戳回放给感知算法,同时注入丢帧、噪声、遮挡等异常,观察算法输出是否稳定。这一层的测试重点是数据完整性与时间一致性,而不是控制性能。

决策层的HIL测试更接近场景闭环仿真。虚拟场景中运行真实决策算法,算法输出的速度、路径、行为指令被送入仿真环境,仿真环境再生成新的感知数据反馈给算法。这种闭环可以验证路径规划、避障策略、任务调度在复杂场景下的表现。需要注意的是,决策层HIL往往不接入真实执行器,而是用仿真模型代替,以便快速迭代场景。

控制层的HIL测试是工程中最常见的形态:真实控制器 + 虚拟被控对象。控制器运行在真实ECU或工控机上,被控对象(如机械臂动力学、电机模型)运行在实时仿真机中。控制器输出的PWM或力矩指令送入仿真模型,仿真模型计算关节位置、速度、电流并反馈给控制器。这一层重点验证控制周期、指令限幅、状态机切换、安全逻辑是否满足设计要求。

执行层的HIL测试则把真实驱动器、电机、制动器接入回路,仿真部分只保留负载模型和故障注入。例如,在电机堵转、过流、编码器断线等故障条件下,验证驱动器的保护逻辑和制动器时序是否正确。这一层测试风险较高,必须配置急停、限流、机械防护等安全措施。

三、典型HIL测试配置清单

层级 真实硬件 仿真对象 关键接口 验证重点
感知层 感知计算单元 传感器数据流 以太网 / CAN / 时间同步 数据完整性、时间戳、标定
决策层 决策计算机 虚拟场景与机器人模型 ROS 2 / DDS / 共享内存 路径规划、行为树、异常恢复
控制层 控制器 / ECU 被控对象动力学模型 PWM / 模拟量 / EtherCAT 控制周期、限幅、状态机
执行层 驱动器 / 电机 / 制动器 负载模型与故障注入 动力线 / 编码器 / 数字IO 过流保护、堵转、制动时序

四、案例:机械臂抓取任务的HIL分层验证

以六轴机械臂抓取任务为例,HIL测试可以按层展开。感知层回放真实相机图像与点云,验证目标检测与位姿估计在光照变化、遮挡条件下的稳定性;决策层在虚拟场景中运行抓取规划算法,验证不同物体位姿下的抓取成功率;控制层将真实控制器接入仿真机械臂模型,验证轨迹跟踪误差与力控切换逻辑;执行层接入真实关节驱动器与电机,注入负载突变和编码器故障,验证保护逻辑是否及时触发。

# 典型HIL测试配置片段(YAML示意)
hil_test:
  layer: control
  real_hardware:
    - controller: "ARM-CU-01"
    - interface: "EtherCAT"
  simulated_plant:
    - model: "6dof_arm_dynamics"
    - step_size: "1ms"
  fault_injection:
    - type: "encoder_loss"
      channel: "joint3"
      trigger_time: "5.0s"
  pass_criteria:
    - tracking_error_max: "0.5deg"
    - safe_stop_time: "<100ms"
提示:HIL测试的分层不是绝对的。实际项目中,感知层与决策层常合并为“感知决策闭环”,控制层与执行层常合并为“运动控制闭环”。划分测试边界时,应以接口清晰、故障可注入、观测可量化为原则,而不是机械地按四层切分。

五、常见误区与复盘

误区一:把HIL当成纯软件仿真。HIL的核心是“硬件在环”,如果真实控制器、驱动器、传感器一个都不接入,那就只是SIL(软件在环)或MIL(模型在环)。HIL的价值在于暴露真实硬件的时序、电气特性和保护逻辑问题。

误区二:所有层都用同一套实时仿真机。感知层数据量大、决策层场景复杂、控制层周期要求高、执行层电气接口多,对仿真机的算力、IO、实时性要求差异很大。合理做法是按层配置资源,或采用分布式实时仿真架构。

误区三:忽视故障注入的系统性。很多团队只测正常工况,不测传感器丢帧、通信超时、编码器断线、过流等异常。HIL的最大优势之一就是可以安全、可重复地注入故障。建议为每一层建立故障清单,并明确预期响应和通过准则。

注意:执行层HIL测试涉及真实电机和驱动器,必须配置硬件急停、限流保护、机械限位和隔离措施。任何故障注入都应在安全边界内进行,避免损坏设备或造成人身伤害。

总结来看,感知、决策、控制、执行四层与HIL测试的对应关系,可以概括为:感知层测数据、决策层测行为、控制层测时序、执行层测保护。每一层都有独立的接入点、仿真对象和验证指标,同时又通过信号流和接口形成整体闭环。只有把分层测试与系统级联调结合起来,才能让HIL真正覆盖机器人系统的关键风险。