116 lines
5.9 KiB
Markdown
116 lines
5.9 KiB
Markdown
# Flight Intent v1 + 伴飞桥 — 实施计划
|
||
|
||
本文档与 [`FLIGHT_INTENT_SCHEMA_v1.md`](FLIGHT_INTENT_SCHEMA_v1.md) 配套,描述从协议闭环到 ROS/PX4 可控的**分阶段交付**。顺序建议按阶段 0→4;各阶段内任务可并行处已标注。
|
||
|
||
---
|
||
|
||
## 目标与验收标准
|
||
|
||
| 维度 | 验收标准 |
|
||
|------|-----------|
|
||
| **协议** | 云端下发的 `flight_intent` 满足 v1:含 `wait`、`takeoff` 可选高度、`trace_id`;L1–L3 校验可自动化 |
|
||
| **语音客户端** | 能解析并记录完整 `actions`;在 `ROCKET_CLOUD_EXECUTE_FLIGHT=1` 时通过 Socket/桥 执行或与桥约定本地执行 `wait` |
|
||
| **桥** | 顺序执行 `actions`,每步有超时/失败策略;可对接 MAVROS(或既定 ROS 2 栈)驱动 PX4 |
|
||
| **安全** | 执行前 L4 门禁、执行中可中断、急停路径明确 |
|
||
| **回归** | SITL 或台架可重复跑通「起飞 → 悬停 → wait → 降落」等示例 |
|
||
|
||
---
|
||
|
||
## 阶段 0:对齐与基线(约 0.5~1 天)
|
||
|
||
- [ ] 全员精读 `FLIGHT_INTENT_SCHEMA_v1.md`,冻结 **v1 白名单**(`type` / `args` 键)。
|
||
- [ ] 确认伴飞侧技术选型:**ROS 2 + MAVROS**(或 `px4_ros_com`)与默认 **AUTO vs Offboard** 策略(写入桥 YAML,不写进 JSON)。
|
||
- [ ] 盘点现有 **Socket 服务**:是否即「桥」或仅转发;是否需新进程 `flight_intent_bridge`。
|
||
- [ ] 建立 **trace_id** 在日志中的格式(云端 / 语音 / 桥统一)。
|
||
|
||
**产出**:架构一页纸(谁消费 WebSocket、谁连 PX4)、桥配置模板路径约定。
|
||
|
||
---
|
||
|
||
## 阶段 1:协议与云端(可与阶段 2 并行,约 2~4 天)
|
||
|
||
- [ ] **Schema 校验**:服务端对 `flight_intent` 做 L1–L3(必要时 L4 占位);非法则 `routing=error` 或产品协议兜底。
|
||
- [ ] **LLM 提示词**:只允许 §3.7 中 `type` 与允许键;强调 **时长必须用 `wait`**,禁止用 `summary` 控机。
|
||
- [ ] **示例与回归用例**:固定 JSON golden(§7.1~§7.3 + 边界:首步 `wait`、`seconds` 超界、多余 `args` 键)。
|
||
- [ ] **可选 `trace_id`**:服务端生成或在 bundle 层透传。
|
||
|
||
**产出**:校验测试集、提示词 MR、发布说明(对客户端可见的字段变更)。
|
||
|
||
---
|
||
|
||
## 阶段 2:语音客户端(`voice_drone_assistant`)(约 3~5 天)
|
||
|
||
可与阶段 1、3 部分并行。
|
||
|
||
- [ ] **Pydantic**:`FlightIntentPayload` / `FlightIntentAction` 按文档收紧;`args` 用 discriminated union 或分类型模型。
|
||
- [ ] **`_validate_flight_intent`**(或等价):白名单、`goto.frame`、`wait.seconds` 范围、`takeoff.relative_altitude_m`。
|
||
- [ ] **`main_app` 执行路径**:在 `ROCKET_CLOUD_EXECUTE_FLIGHT=1` 时:
|
||
- 对 **`wait`**:本地 `asyncio.sleep` / 线程计时 + 可取消;或 **仅转发** 给桥(若桥统一执行整段 `actions`,客户端可只发包)。
|
||
- 补齐 **`goto` / `return_home` / `takeoff`(非关键词起飞)** 与 Socket 或「整包 intent」的映射策略(二选一写死,避免双轨混乱)。
|
||
- [ ] **日志**:打印 `trace_id`、逐步 `action` 索引与结果。
|
||
- [ ] **单测**:解析 + 校验 + 小粒度映射。
|
||
|
||
**产出**:MR 合并后,本地无 PX4 也能跑通解析与 mock 执行。
|
||
|
||
---
|
||
|
||
## 阶段 3:伴飞桥 + ROS/PX4(约 5~10 天,视现网复用程度)
|
||
|
||
- [ ] **进程边界**:定 API(ROS Topic 服务 / 同机 TCP JSON / 二者兼有)。
|
||
- [ ] **执行器**:单队列顺序执行 §10.3 行为表;每步 **超时**、**完成判定**(订阅 `vehicle_status` / `local_position` 等)。
|
||
- [ ] **翻译实现**:
|
||
- `takeoff` / `land` / `return_home` / `hover`:`VehicleCmd` / SetMode 等。
|
||
- `goto`:Offboard setpoint 路径 **或** 航点 mission(与阶段 0 选型一致);`body_ned` → NED 旋转在桥内完成。
|
||
- `wait`:仅本地计时 + 遥测巡检。
|
||
- [ ] **安全**:L4(解锁、定位、电量、围栏);急停清空队列;`wait` 中异常触发 RTL/LAND(产品定)。
|
||
- [ ] **回执**:`flight_intent/result` 或日志结构化事件(success / rejected / aborted + 步号 + reason)。
|
||
|
||
**产出**:桥包 + launch 示例;SITL 录屏或自动化脚本一条 command 跑通示例 §7.2。
|
||
|
||
---
|
||
|
||
## 阶段 4:联调、硬化与发布(约 3~7 天)
|
||
|
||
- [ ] **端到端**:真机或 SITL:语音 → 云 → 客户端 → 桥 → PX4,带 `trace_id` 串 log。
|
||
- [ ] **压测与失败注入**:断 WebSocket、桥崩溃重启、Offboard 丢失等(预期行为写进运维文档)。
|
||
- [ ] **配置与门禁**:默认关闭实飞执行;仅生产镜像打开;参数与围栏双人复核。
|
||
- [ ] **文档**:更新 `PROJECT_GUIDE.md` 中「飞控路径」链接到本文与 SCHEMA。
|
||
|
||
**产出**:发布 checklist、已知限制列表(如某机型仅支持 AUTO 等)。
|
||
|
||
---
|
||
|
||
## 依赖与风险
|
||
|
||
| 风险 | 缓解 |
|
||
|------|------|
|
||
| Socket 协议与 `Command` 无法表达多步 | **推荐**由桥消费**完整** `flight_intent` JSON,客户端只负责下发一份;少步经 Socket 逐条 |
|
||
| Offboard 与 AUTO 混用冲突 | 桥配置单一「主策略」;`goto` 仅在 Offboard 就绪时接受 |
|
||
| LLM 仍产出非法 JSON | L2 硬拒绝 + 提示词回归 + golden 测试 |
|
||
| 排期膨胀 | 先交付 **AUTO 模式族 + wait + land**,再迭代复杂 `goto` |
|
||
|
||
---
|
||
|
||
## 建议里程碑(日历为估算)
|
||
|
||
| 里程碑 | 内容 |
|
||
|--------|------|
|
||
| **M1** | 阶段 0–1 完成:云校验 + 提示词 + golden |
|
||
| **M2** | 阶段 2 完成:客户端 strict 模型 + `wait` + 执行路径单一数据源 |
|
||
| **M3** | 阶段 3 完成:桥 + SITL 跑通 §7.2 |
|
||
| **M4** | 阶段 4:联调签字 + 生产策略 |
|
||
|
||
---
|
||
|
||
## 文档索引
|
||
|
||
| 文档 | 用途 |
|
||
|------|------|
|
||
| [`FLIGHT_INTENT_SCHEMA_v1.md`](FLIGHT_INTENT_SCHEMA_v1.md) | 字段、校验、桥分层、ROS 参考 |
|
||
| [`PROJECT_GUIDE.md`](PROJECT_GUIDE.md) | 仓库总览与运行方式 |
|
||
| 本文 | 任务拆解、顺序、验收 |
|
||
|
||
---
|
||
|
||
**版本**:2026-04-07;随 SCHEMA v1 修订同步更新本计划中的阶段勾选与工期估算。
|