✨ feat(planning): 添加离线飞拍规划能力

* 固化离线飞拍轨迹加载、保存和规划结果。

* 真机初始化失败时保留模型加载后的离线规划能力。

* 更新状态接口、调试页和回归测试覆盖。
This commit is contained in:
2026-06-24 11:40:07 +08:00
parent 070d2ba5c0
commit 5193f537b0
24 changed files with 1398 additions and 738 deletions

View File

@@ -0,0 +1,32 @@
# 真机优先与离线飞拍规划改造计划
## 已实施目标
- 启动及 `/init_mpc_robot` 固定执行“加载模型 → 连接真机 → `EnableRobot(8)`”。
- 模型加载成功但连接或使能失败时进入 `OfflineReady`,HTTP 宿主继续运行。
- 飞拍资产固定保存到 `Config/RobotConfig.json`,上传、列出、删除不依赖模型或真机状态。
- `/save_traj_info/` 只要求模型已加载,返回完整最终发送点列、触发绑定和导出文件绝对路径。
- `/execute_flyshot/` 仍要求 `RealReady`,离线规划不会伪造机器人连接或使能。
- `/debug` 提供模型加载、轨迹上传/选择、离线生成、分页点列和导出路径查看。
## 状态约定
- `LoadingModel`:正在加载机器人模型。
- `Connecting`:模型已加载,正在连接或使能真机。
- `RealReady`:真机已连接且使能,允许真实运动和 IO。
- `OfflineReady`:模型已加载但真机不可用,允许离线规划。
- `ModelLoadFailed`:机器人模型不可用,禁止规划和执行。
## HTTP 约定
- 保留 `/setup_robot/`,仅加载模型,不连接、不使能,也不清空飞拍资产。
- 新增 `/init_mpc_robot`,请求体只包含 `robot_name`、`robot_ip`。
- 删除 `/init_mpc_robt`、`/connect_server/`、版本查询、环境文件、TCP 显示、`is_setup` 和仿真控制器切换路由。
- `/upload_flyshot/` 在上传阶段只校验资产结构和有限数值;自由度与模型限制在规划阶段校验。
- `/save_traj_info/` 返回规划摘要、关键/稠密轨迹、最终发送点、ShotEvents、触发绑定和导出路径。
## 验证
- 核心测试覆盖离线资产生命周期、模型重载保留资产、连接失败降级和完整离线规划结果。
- 集成测试覆盖删除路由 404、新初始化接口、状态快照和 Debug 离线规划页面。
- 最终执行核心测试、集成测试和解决方案构建。