2. 无人系统任务执行模型

无人系统的任务执行模型不是一套抽象概念,而是中断恢复能力的“地基”。当链路中断、定位丢失、电池告警或载荷异常发生时,系统能否知道“我原本在做什么、做到哪一步、接下来该回到哪里”,取决于任务规划、任务分解、状态机、行为树与执行监控这五个环节如何组织与协作。它们分别回答不同问题:规划回答“去哪、做什么”,分解回答“拆成哪些可执行单元”,状态机回答“当前处于什么阶段、允许怎么切换”,行为树回答“每个单元内部如何按条件选择动作”,执行监控回答“实际执行是否偏离预期、是否需要触发恢复”。

任务规划与任务分解:恢复的“锚点”

任务规划通常输出一条带约束的航路或作业序列,例如巡检任务中“起飞→爬升至30m→沿A-B-C-D航点飞行→在C点悬停拍照→返航”。规划结果必须显式携带可恢复信息:任务ID、航点序号、每个航点的期望动作、时间窗、地理围栏、返航点、最低电量阈值。若规划只给出一条坐标串,中断后系统就缺少“回到哪一步”的依据。

任务分解把高层任务拆成可独立执行、可独立判断完成状态的原子单元。以电力巡检为例,可拆为:TAKEOFF、CRUISE_TO(WP_i)、HOVER_AND_CAPTURE(WP_i)、RETURN_HOME、LAND。每个单元应带前置条件、完成判据、超时阈值和恢复策略。例如 HOVER_AND_CAPTURE 的完成判据是“相机返回图像且写入存储成功”,超时8s,恢复策略为“重试2次,仍失败则标记该点异常并继续下一航点”。分解粒度直接影响恢复精度:粒度过粗,中断后只能整段重做;粒度过细,状态切换频繁、开销大。工程上常以“一次可观测动作”为粒度,保证每个单元都有明确的进入条件与退出条件。

状态机与行为树:恢复决策的两种表达

状态机适合表达任务级阶段与模式切换。典型状态包括 IDLE、TAKEOFF、CRUISE、HOVER、RETURN、LAND、SAFE_HOLD、RECOVER。中断发生时,系统从当前状态进入 SAFE_HOLD(悬停或安全停靠),再根据中断类型决定回到原状态、跳到下一状态或进入 RETURN。状态机的关键是“状态+事件+守卫条件”三元组,例如:CRUISE + LINK_LOST + 持续>3s → SAFE_HOLD;SAFE_HOLD + LINK_RESTORED + 位置有效 → RECOVER;RECOVER + 校验通过 → CRUISE。守卫条件必须可观测,否则恢复会变成盲目跳转。

行为树适合表达单元内部的反应式逻辑。它以选择、序列、条件、动作节点组合出“优先尝试恢复、失败再降级”的策略。例如悬停拍照子树可设计为:Sequence(检查云台到位, 选择(拍照成功, 重试拍照, 标记异常))。行为树的优势在于恢复策略可组合、可复用,且每帧从根节点重新评估,天然适合处理动态条件;缺点是若缺少记忆节点,可能重复执行已完成的动作。因此常与状态机配合:状态机管阶段,行为树管阶段内动作选择。

任务执行模型与中断恢复的协作关系 任务规划层 航点序列 A→B→C→D 约束:电量/围栏/时间窗 恢复锚点:任务ID+航点序号 返航点 / 最低电量阈值 任务分解层(原子单元) TAKEOFF CRUISE_TO(WP) HOVER_AND_CAPTURE RETURN_HOME LAND 任务级状态机 CRUISE SAFE_HOLD RECOVER RETURN LAND 链路丢失>3s 链路恢复+位置有效 校验通过 到达返航点 恢复成功回原状态 单元内行为树(HOVER_AND_CAPTURE) Sequence 云台到位? Selector 拍照成功 重试拍照 标记异常

执行监控:把“偏离”变成可恢复事件

执行监控是恢复机制的触发源。它持续比对“期望状态”与“实际状态”,并输出三类信息:偏差量、偏差持续时间、置信度。以航点巡航为例,监控项可包括:位置偏差(期望航点与实际位置距离)、航向偏差、地速、电量、链路RSSI、载荷状态。判断逻辑不是“一超限就恢复”,而是“超限且持续超过阈值才触发”,以避免瞬时噪声导致误恢复。例如位置偏差阈值设为5m,持续2s,则触发 POS_DEVIATION 事件;若偏差在2s内回到3m以内,则不触发。监控还应记录“最后有效状态”,包括最后有效航点、最后有效位置、最后有效时间戳,作为恢复的起点。

五者协作的恢复闭环

把五者串起来看,一次典型中断恢复过程如下:规划层提供任务ID与航点序列;分解层把当前任务定位到 CRUISE_TO(WP3);状态机处于 CRUISE;行为树正在执行“飞向WP3”子树;执行监控检测到链路RSSI低于-95dBm且持续3s,触发 LINK_LOST。状态机守卫条件满足,转入 SAFE_HOLD,行为树切换到悬停保持。若5s内链路恢复且位置有效,状态机进入 RECOVER,校验“当前航点仍为WP3、电量>25%、围栏内”,通过后回到 CRUISE,行为树从“飞向WP3”继续;若链路未恢复,则状态机转入 RETURN,行为树执行返航,最终 LAND。整个过程的关键是:每个环节都保留可查询的“进度标记”,恢复时不需要重新规划整条任务,只需从最近的有效原子单元继续。

设计检查要点:规划结果是否携带任务ID与航点序号;分解单元是否有明确完成判据与超时;状态机守卫条件是否可观测;行为树是否有记忆节点避免重复动作;监控是否记录最后有效状态与偏差持续时间。这五项直接决定中断后能否“接得上”。

一个可参考的恢复参数示例

监控项阈值持续时间触发事件恢复动作
链路RSSI< -95 dBm3 sLINK_LOSTSAFE_HOLD → 等待恢复或返航
位置偏差> 5 m2 sPOS_DEVIATION重飞当前航点,最多2次
电量< 25%即时LOW_BATTERY跳过剩余航点,直接返航
拍照写入失败8 s超时CAPTURE_FAIL重试2次,仍失败标记异常并继续

这些参数不是固定值,而是示例起点。实际取值需结合机型、链路质量、任务密度与安全裕度调整。核心原则是:阈值要能区分“噪声”与“真实中断”,恢复动作要能回到最近的有效原子单元,而不是从头再来。任务规划、任务分解、状态机、行为树与执行监控各自承担不同职责,但只有在恢复闭环中协同工作,无人系统才能在中断后稳定、可预期地继续任务。