3. 机器人系统架构
机器人系统通常被划分为四个逻辑层:感知层负责获取环境与自身状态,决策层负责理解任务并生成行为意图,控制层负责把意图转化为可执行的指令序列,执行层负责驱动电机、关节、末端执行器等物理对象。HIL(Hardware-in-the-Loop)测试的核心价值,在于把真实硬件接入仿真回路,让不同层级的软硬件在接近真实的时序与信号条件下被验证。理解这四层与HIL测试的对应关系,是设计测试方案、划分测试边界、定位缺陷来源的基础。
一、四层架构与HIL测试的映射关系
从测试视角看,四层并不是简单的“从上到下依次测试”,而是每一层都有不同的HIL接入点和验证目标。感知层关注传感器数据是否真实、时间戳是否一致、标定是否正确;决策层关注算法在闭环场景中的行为是否合理;控制层关注控制周期、指令限幅、状态机切换是否安全;执行层关注驱动器、电机、编码器、制动器等真实硬件的响应与保护逻辑。
下图展示了机器人四层架构与HIL测试的对应关系。左侧为真实系统层级,右侧为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的核心是“硬件在环”,如果真实控制器、驱动器、传感器一个都不接入,那就只是SIL(软件在环)或MIL(模型在环)。HIL的价值在于暴露真实硬件的时序、电气特性和保护逻辑问题。
误区二:所有层都用同一套实时仿真机。感知层数据量大、决策层场景复杂、控制层周期要求高、执行层电气接口多,对仿真机的算力、IO、实时性要求差异很大。合理做法是按层配置资源,或采用分布式实时仿真架构。
误区三:忽视故障注入的系统性。很多团队只测正常工况,不测传感器丢帧、通信超时、编码器断线、过流等异常。HIL的最大优势之一就是可以安全、可重复地注入故障。建议为每一层建立故障清单,并明确预期响应和通过准则。
总结来看,感知、决策、控制、执行四层与HIL测试的对应关系,可以概括为:感知层测数据、决策层测行为、控制层测时序、执行层测保护。每一层都有独立的接入点、仿真对象和验证指标,同时又通过信号流和接口形成整体闭环。只有把分层测试与系统级联调结合起来,才能让HIL真正覆盖机器人系统的关键风险。