Files
keita df91b1110e 精简仓库结构并增强任务链路:归档双目可选后端、新增LOS判据与自定义返航
归档 legacy/:stereo_yolo/stereo_ranger/target_tracker 三包 + 175 条测试 + demo/配置/权重/三份规格;运行链路不再依赖,默认 pytest 446 条,归档测试按需运行。

目标有效性第二判据改为 LOS 运动学一致性(pod_bridge/los_consistency.py),删除 require_vision;pod_locked() 叠加该判据,状态机随之后退重搜。

自定义返航(task_runner/return_home.py):保持转场高度回起飞点 → 恢复初始航向 → 垂直降落,不再爬 RTL_RETURN_ALT;未起飞/无起飞点/超时/异常仍退回 PX4 原生 RTL。

任务链安全兜底:主循环异常→紧急返航、stop 幂等、landing_stop 保留遥测、in_air 流复用+超时、解锁/起飞与吊舱识别仅执行一次、rtl_timeout 上限。

入口共享件拆到 utils/sitl_support.py;pod_sitl_test.py→l1_sitl_test.py;删除旧架构 test.py;相机脚本移入 tools/。

新增 .gitignore 并剔除历史误跟踪的 59 个 .pyc;requirements 按实际依赖重写;文档全面对齐,新增 legacy/README.md 与 tools/README.md。
2026-10-21 14:48:41 +08:00

21 lines
1.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""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 + 简报)
"""