DroneMind/voicellmcloud/docs/FLIGHT_INTENT_IMPLEMENTATION_PLAN.md
2026-04-14 10:08:41 +08:00

5.9 KiB
Raw Blame History

Flight Intent v1 + 伴飞桥 — 实施计划

本文档与 FLIGHT_INTENT_SCHEMA_v1.md 配套,描述从协议闭环到 ROS/PX4 可控的分阶段交付。顺序建议按阶段 0→4各阶段内任务可并行处已标注。


目标与验收标准

维度 验收标准
协议 云端下发的 flight_intent 满足 v1waittakeoff 可选高度、trace_idL1L3 校验可自动化
语音客户端 能解析并记录完整 actions;在 ROCKET_CLOUD_EXECUTE_FLIGHT=1 时通过 Socket/桥 执行或与桥约定本地执行 wait
顺序执行 actions,每步有超时/失败策略;可对接 MAVROS或既定 ROS 2 栈)驱动 PX4
安全 执行前 L4 门禁、执行中可中断、急停路径明确
回归 SITL 或台架可重复跑通「起飞 → 悬停 → wait → 降落」等示例

阶段 0对齐与基线约 0.51 天)

  • 全员精读 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 并行,约 24 天)

  • Schema 校验:服务端对 flight_intent 做 L1L3必要时 L4 占位);非法则 routing=error 或产品协议兜底。
  • LLM 提示词:只允许 §3.7 中 type 与允许键;强调 时长必须用 wait,禁止用 summary 控机。
  • 示例与回归用例:固定 JSON golden§7.1§7.3 + 边界:首步 waitseconds 超界、多余 args 键)。
  • 可选 trace_id:服务端生成或在 bundle 层透传。

产出:校验测试集、提示词 MR、发布说明对客户端可见的字段变更


阶段 2语音客户端voice_drone_assistant)(约 35 天)

可与阶段 1、3 部分并行。

  • PydanticFlightIntentPayload / FlightIntentAction 按文档收紧;args 用 discriminated union 或分类型模型。
  • _validate_flight_intent(或等价):白名单、goto.framewait.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约 510 天,视现网复用程度)

  • 进程边界:定 APIROS Topic 服务 / 同机 TCP JSON / 二者兼有)。
  • 执行器:单队列顺序执行 §10.3 行为表;每步 超时完成判定(订阅 vehicle_status / local_position 等)。
  • 翻译实现
    • takeoff / land / return_home / hoverVehicleCmd / SetMode 等。
    • gotoOffboard setpoint 路径 航点 mission与阶段 0 选型一致);body_ned → NED 旋转在桥内完成。
    • wait:仅本地计时 + 遥测巡检。
  • 安全L4解锁、定位、电量、围栏急停清空队列wait 中异常触发 RTL/LAND产品定
  • 回执flight_intent/result 或日志结构化事件success / rejected / aborted + 步号 + reason

产出:桥包 + launch 示例SITL 录屏或自动化脚本一条 command 跑通示例 §7.2。


阶段 4联调、硬化与发布约 37 天)

  • 端到端:真机或 SITL语音 → 云 → 客户端 → 桥 → PX4trace_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 阶段 01 完成:云校验 + 提示词 + golden
M2 阶段 2 完成:客户端 strict 模型 + wait + 执行路径单一数据源
M3 阶段 3 完成:桥 + SITL 跑通 §7.2
M4 阶段 4联调签字 + 生产策略

文档索引

文档 用途
FLIGHT_INTENT_SCHEMA_v1.md 字段、校验、桥分层、ROS 参考
PROJECT_GUIDE.md 仓库总览与运行方式
本文 任务拆解、顺序、验收

版本2026-04-07随 SCHEMA v1 修订同步更新本计划中的阶段勾选与工期估算。