精简仓库结构并增强任务链路:归档双目可选后端、新增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。
This commit is contained in:
keita
2026-10-21 14:48:41 +08:00
parent 53fdd3b13f
commit df91b1110e
159 changed files with 6121 additions and 1617 deletions
+54
View File
@@ -0,0 +1,54 @@
# legacy/ —— 已归档的「双目 + YOLO」可选感知后端
> 归档日期:**2026-10-20**
>
> 自 2026-10-19 起,**光电吊舱取代双目 + YOLO,成为唯一目标源**。运行链路是
> `pod_bridge` → `task_runner` → PX4(见仓库根 `README.md` 与
> `.workbuddy/memory/ARCHITECTURE.md` §11)。
>
> 这里的内容**不参与运行链路,也不在默认 pytest 收集范围内**。保留原因:日后若要
> 重新引入双目作为「独立身份旁证」或「距离源」,可从本目录恢复;对应的设计文档
> 也一并归档。
## 归档内容
| 路径 | 原位置 | 说明 |
|---|---|---|
| `utils/stereo_yolo/` | `utils/stereo_yolo/` | 双目 YOLO 检测前端 |
| `utils/stereo_ranger/` | `utils/stereo_ranger/` | 双目稀疏测距 |
| `utils/target_tracker/` | `utils/target_tracker/` | 多目标追踪 + 主目标选举 |
| `utils/tests/{stereo_yolo,stereo_ranger,target_tracker}/` | 同名 | 共 175 条单测 |
| `utils/demo_*.py` | `utils/demo_*.py` | 三个演示(track_control / stereo_ranger / stereo_yolo) |
| `utils/config/stereo_*.json` | `utils/config/` | 对应配置 |
| `utils/assets/` | `utils/assets/` | demo 占位素材 |
| `models/yolo26n-drone.pt` | `models/` | YOLO 权重(5.2MB) |
| `docs/双目*.md` | `docs/` | 三份双目规格/作业指导 |
| `stereo_calib_params.npz` | 仓库根 | 双目相机标定结果 |
## 怎么跑归档测试(默认不跑)
归档代码依赖 `utils/` 里的 `visual_track_control`(控制律仍在运行链路中),
所以需要同时把两处加进 `PYTHONPATH`:
```bash
cd legacy/utils
PYTHONPATH="../../utils" "D:/program file/conda/envs/pytorch/python.exe" -m pytest -q
```
预期 **175 passed**(111 stereo_ranger + 36 stereo_yolo + 28 target_tracker)。
## 怎么跑归档 demo
```bash
cd "D:/ProgramData/code_drone-test"
PYTHONPATH="utils;legacy/utils" "D:/program file/conda/envs/pytorch/python.exe" legacy/utils/demo_stereo_ranger.py
```
> `demo_stereo_yolo.py` 需要 `ultralytics` 与 `legacy/models/yolo26n-drone.pt`
> (demo 内按 `legacy/` 为仓库根解析相对模型路径)。
## 若要正式接回
不要直接 `git mv` 回来就完事:先读 `ARCHITECTURE.md` §11.1 的约定 ——
需要给 `PodBridge` 增加「距离源」与「独立旁证源」两个**显式注入点**,
并重新评估 Pi 4 的算力预算(YOLO 双路推理在 Pi 4 上跑不动实时)。