11.1 机器人系统功能与实时性分解
移动机器人控制系统是一个典型的复杂嵌入式实时系统,其设计起点并非直接编写代码,而是对系统功能进行彻底分解,并依据严格的实时性要求对任务进行分类与层级划分。这种“实时性分层”是后续基于FreeRTOS进行软件架构设计与任务优先级分配的基础。本节将以室内桶装水搬运机器人为具体案例,系统阐述如何将其“感知-决策-控制”闭环中的各项功能,按照时间确定性要求分解为硬实时、软实时及非实时三个层级,并为每个层级的任务确立量化的时间约束。
11.1.1 实时性分层的必要性:从功能需求到时间约束
嵌入式实时系统的核心特征是“确定性”而非纯粹的“快速”。对于机器人而言,一个在10毫秒内总是能完成的控制循环,远比一个平均耗时1毫秒但偶尔会延迟到50毫秒的循环更为可靠。因此,在设计初期,必须对每个功能单元提出明确的时序要求。
实时性通常根据错过截止期限(Deadline)所导致的后果严重性进行分级:
- 硬实时:错过截止期限将导致系统功能失效,甚至引发安全事故。其时间约束必须得到绝对保障。
- 软实时:偶尔错过截止期限会导致性能下降或服务质量降低,但系统整体功能依然维持。其时间约束需要尽可能满足。
- 非实时:没有严格的截止期限要求,其执行仅需在宏观上“及时”完成。
机器人系统的功能模块众多,若不进行分层,将所有任务置于同一调度策略下,将导致高关键性任务被低关键性任务阻塞的风险。例如,若负责紧急停止的安全任务与负责状态指示灯闪烁的任务具有相近的优先级,则可能在极端情况下因调度延迟而无法及时响应。研究表明,在未进行合理分层的多任务机器人系统中,由低优先级任务临时性资源占用所引发的高优先级任务响应时间抖动,可达其标称周期的300%以上[1]。基于此,对本案例机器人的功能分解如下表所示。
11.1.2 功能模块分解与实时性层级界定
基于室内搬运机器人的典型工作流程,其核心功能模块可被分解并归类至不同的实时性层级。
| 实时性层级 | 核心功能模块 | 具体任务/功能描述 | 典型截止期限要求 | 后果分析(若错过截止期) |
|---|---|---|---|---|
| 硬实时 | 运动控制 | 电机伺服控制(PID计算、PWM输出) | 1-10 ms(严格周期性) | 电机抖动、失步,可能导致机器人轨迹偏离、倾倒或机械损伤。 |
| 安全监控 | 紧急停止(E-stop)信号处理、碰撞检测(急停) | < 5 ms(事件触发) | 无法及时停止,造成设备或人员伤害。 | |
| 底层传感器同步 | 轮式编码器脉冲计数、惯性测量单元(IMU)原始数据采集 | 与数据更新率同步(如1kHz) | 丢失关键运动状态信息,导致控制精度下降。 | |
| 软实时 | 传感器数据融合 | 融合编码器与IMU数据,进行航位推算(Odometry) | 10-50 ms | 定位信息更新延迟,路径跟踪出现滞后,但可通过算法部分补偿。 |
| 环境感知 | 处理红外、超声或低分辨率激光雷达数据,进行避障 | 50-200 ms | 对动态障碍物反应变慢,可能发生轻微碰撞或路径绕行距离增加。 | |
| 局部路径重规划 | 基于当前位姿和即时感知信息,计算局部目标点 | 100-500 ms | 机器人可能短暂停顿或采取非最优路径,但不影响全局任务完成。 | |
| 非实时 | 全局任务规划 | 基于地图计算从A点到B点的全局路径。 | 数百毫秒至数秒 | 仅影响任务初 |