"""task_runner —— 任务编排器(预定流程.md 的天空侧任务级状态机)。 把已通的 L1(航向伺服 TrackingControlLaw)与 L2(地理引导 GuidanceLaw)按任务阶段 编排成一条可运行的全流程: WAIT → ARM_TAKEOFF → GOTO → SEARCH → TRACK → RTL * GOTO :L2 地理引导飞向**参考点**(地面给的坐标是搜索起点,不是终点); * SEARCH :到达参考点后原地偏航扫视,靠吊舱/视觉找目标;超时未发现 → RTL; * TRACK :L1 角度直入 + 无距离降级(slow_approach 缓慢靠近);超时 → RTL; * RTL :自定义返航(回起飞点 → 恢复初始航向 → 垂直降落),不爬高; 异常/未起飞等情形兜底退回 PX4 原生 RTL。 模块划分: * state_machine.py 纯逻辑任务状态机(无 IO,可单测) * runner.py 编排器(MAVSDK 飞行编排 + 状态机驱动 + PodBridge 闭环) * return_home.py 自定义返航纯逻辑(HomingController:转场/航向/高度) * pod_control.py 真机吊舱识别/锁定指令下发(0x07/0x0F/0x0E/0x08) * log.py 结构化任务日志(事件 JSONL + 遥测 CSV + 简报) """