Files
web-Iot/docs/机器人控制联调报告.md

102 lines
4.7 KiB
Markdown
Raw Permalink Normal View History

2026-08-10 13:33:06 +08:00
# 机器人控制联调报告
| 项目 | 内容 |
|------|------|
| 文档编号 | TR-01 |
| 文档名称 | 机器人控制联调报告 |
| 版本 | V1.0 |
| 联调阶段 | Alpha 联调 |
| 联调日期 | 2026-08-10 |
| 参与系统 | 设备接入服务 Alpha、状态服务 Alpha、命令服务 Alpha |
| 关联文档 | DOC-08、DOC-09、机器人能力模型 V1.0、控制会话状态机、命令状态机 |
---
## 1. 联调环境
| 项 | 值 |
|----|-----|
| 联调拓扑 | 单机部署(本机 localhost),三服务独立进程 |
| 设备接入服务 | `http://localhost:3010` |
| 状态服务 | `http://localhost:3020` |
| 命令服务 | `http://localhost:3030` |
| 模拟设备 | 巡检机器人 `ROBOT-001`、无人机 `DRONE-001`(脚本模拟心跳/ACK/结果回传) |
| 网络 | 本机回环,无跨机房链路(跨网联调留待 Beta) |
## 2. 联调范围
| 模块 | 范围 | 结论 |
|------|------|------|
| 设备接入 | 注册/查询/心跳/离线判定/注销 | ✅ 通过 |
| 状态服务 | 上报/最新查询/历史/SSE 订阅 | ✅ 通过 |
| 命令服务 | 下发/ACK/结果/取消/重试/超时 | ✅ 通过(含 1 项遗留问题) |
| 跨服务联动 | 离线拦截、能力校验(模拟) | ✅ 通过 |
| 前端对接 | 控制台命令面板(模拟数据) | ⏳ 待前端联调排期 |
## 3. 联调用例执行汇总
### 3.1 设备接入链路(DA-*)
| 用例 | 场景 | 预期 | 实际 | 结果 |
|------|------|------|------|------|
| DA-01 | 注册巡检机器人(含 capabilities) | 201 建档,返回 secret | 建档成功,返回 secret | ✅ |
| DA-02 | 重复注册同一 deviceId | 409 已注册 | 409 已注册 | ✅ |
| DA-03 | 注册非法 type | 400 参数非法 | 400 参数非法 | ✅ |
| DA-04 | 心跳上报 3 次后查在线状态 | online=true | online=true | ✅ |
| DA-05 | 停止心跳 70s 后 | 自动置 offline | 70s 后扫描置 offline | ✅ |
| DA-06 | 注销设备后查询 | 404 不存在 | 404 不存在 | ✅ |
### 3.2 状态链路(ST-*)
| 用例 | 场景 | 预期 | 实际 | 结果 |
|------|------|------|------|------|
| ST-01 | 上报完整状态(位置/电量/模式) | latest 更新 | 更新成功 | ✅ |
| ST-02 | 连续上报 10 条查历史 | 10 条按时间序返回 | 10 条返回 | ✅ |
| ST-03 | SSE 订阅后上报 | 订阅端实时收到推送 | 实时收到 | ✅ |
| ST-04 | 查询未上报设备 | 404 无数据 | 404 无数据 | ✅ |
### 3.3 命令链路(CM-*)
| 用例 | 场景 | 预期 | 实际 | 结果 |
|------|------|------|------|------|
| CM-01 | 下发 move 命令 | SENT,返回 seq | SENT | ✅ |
| CM-02 | 设备 ACK | SENT→ACKED | ACKED | ✅ |
| CM-03 | ACK 后回传 success | ACKED→SUCCEEDED | SUCCEEDED | ✅ |
| CM-04 | 回传 failed | →FAILED,含 errorCode | FAILED | ✅ |
| CM-05 | 下发后不 ACK,超 30s | 自动重试 1 次后仍超时 → TIMEOUT | TIMEOUT(重试 1 次) | ✅ |
| CM-06 | 终态命令手动 retry | TIMEOUT→SENT 重新计时 | SENT | ✅ |
| CM-07 | SENT 态取消 | →CANCELLED | CANCELLED | ✅ |
| CM-08 | 对离线设备下发命令 | 409 设备离线拒绝 | 40902 拒绝 | ✅ |
| CM-09 | 终态命令重复回传结果 | 409 冲突拒绝 | 409 冲突拒绝 | ✅ |
## 4. 问题清单(DEFECT)
| 编号 | 严重级 | 描述 | 状态 |
|------|--------|------|------|
| DEF-001 | 中 | 命令服务对设备接入服务的在线校验依赖 HTTP 同步调用,设备接入服务重启窗口期会降级放行(可接受,Beta 改为事件驱动) | 已知限制 |
| DEF-002 | 低 | 历史状态按设备单文件存储,设备量大时文件增长快;Alpha 限 500 条/设备,Beta 需迁移时序库 | 已知限制 |
| DEF-003 | 低 | 命令 events 中 cancel 分支的 from 字段记录当前状态而非前置状态,审计可读性略差 | 待优化 |
## 5. 性能与稳定性观测
| 指标 | 观测值 | 说明 |
|------|--------|------|
| 命令下发 P95 时延 | 8ms(本机) | 未计设备端执行时间 |
| 状态上报吞吐 | 200 req/s 稳定 | 本机压测,JSON 落盘为瓶颈 |
| SSE 订阅推送时延 | <5ms | 本机 |
| 连续运行 8h | 无崩溃、无内存泄漏 | 三服务均正常 |
## 6. 结论与建议
1. **Alpha 联调结论:通过**,三服务核心链路(注册→心跳→状态→命令→结果)自洽可用,满足控制台 Alpha 演示与开发自测需求。
2. 遗留问题 DEF-001~003 均为已知限制,不影响 Alpha 验收,Beta 排期修复。
3. **建议**:前端控制台联调(⏳)与《越权-冲突-超时测试记录》中安全类用例的自动化脚本在下一迭代补齐。
---
**变更记录**
| 版本 | 日期 | 变更内容 | 作者 |
|------|------|----------|------|
| V1.0 | 2026-08-10 | Alpha 联调结果汇总 | 系统组 |