feat: 新增机器人运动控制、任务管理及远程监控功能

- 扩展 NavController 支持旋转、倾斜及遥控操作
- 实现任务控制器统一管理接待、巡逻、通知等任务逻辑
- 新增遥测管理器定期上报状态并支持低电量预警
- 增强 LiveKit 管理器支持自动重连与麦克风状态联动
- 优化人体检测去抖逻辑并更新技术文档
- 调整设置界面文本描述并添加网络异常提示
This commit is contained in:
2026-03-20 15:36:38 +08:00
parent 66fc204cff
commit fea2ba7591
14 changed files with 1058 additions and 408 deletions

View File

@@ -106,6 +106,15 @@
- 若为巡逻任务则推进巡逻索引
- 特殊任务模式下可跳过“已到达”播报
### 5.4 人体检测与录音逻辑
- 人体检测事件先做稳定判定(去抖)
- DETECTED延迟确认默认 0.8s),仍为 DETECTED 才进入“稳定检测”状态
- IDLE延迟确认默认 5s仍为 IDLE 才退出“稳定检测”状态
- 录音LiveKit仅在稳定状态切换时开启/关闭
- 稳定 DETECTED开启录音
- 稳定 IDLE关闭录音
- 特殊任务模式仅跳过门禁与问候,不影响录音逻辑
## 6. 表情与语音联动
- **TTS STARTED**:表情变为 TALKING
@@ -137,6 +146,7 @@
- 跳过 Home Base 的开门/关门语音逻辑
- 跳过检测到人时的问候语
- 到达地点时不播报“已到达”(无任务状态下)
- 录音仍按稳定检测状态开启/关闭
## 9. LiveKit 连接
@@ -157,4 +167,67 @@
## 12. 安全注意事项
- MQTT 用户名/密码在代码内配置
- LiveKit 默认 key/secret 也在代码内生成 token
- 建议正式环境将敏感信息迁移至安全配置源
- 建议正式环境将敏感信息迁移至安全配置源
## 13. 时序图与逻辑图
### 13.1 人体检测去抖与录音时序
```mermaid
sequenceDiagram
autonumber
participant Temi as Temi SDK
participant Main as MainActivity
participant LK as LiveKitManager
Temi->>Main: onDetectionStateChanged(DETECTED)
Main->>Main: 启动 DETECTED 确认延迟
Main->>Main: 状态稳定为 DETECTED
Main->>LK: setDetectionActive(true)
Temi->>Main: onDetectionStateChanged(IDLE)
Main->>Main: 启动 IDLE 确认延迟
Main->>Main: 状态稳定为 IDLE
Main->>LK: setDetectionActive(false)
```
### 13.2 稳定状态逻辑图(门禁/问候/录音)
```mermaid
flowchart TD
A[稳定状态变化] --> B{state == DETECTED?}
B -- 是 --> C[录音开启]
B -- 否 --> D[录音关闭]
C --> E{空任务?}
D --> E
E -- 否 --> H[结束]
E -- 是 --> F{在 Home Base?}
F -- 是 --> G{特殊任务模式?}
G -- 否 --> I[执行开门/关门逻辑]
G -- 是 --> H
F -- 否 --> J{特殊任务模式?}
J -- 否 --> K[执行问候语]
J -- 是 --> H
```
### 13.3 接待与巡逻任务流程图
```mermaid
flowchart TD
A[MQTT 指令进入] --> B{action}
B -- reception --> C[进入接待任务]
C --> D[导航到接待点]
D --> E{到达?}
E -- 否 --> D
E -- 是 --> F[检测到人提示确认]
F --> G{用户确认?}
G -- 否 --> F
G -- 是 --> H[播报确认语]
H --> I[导航到目的地]
I --> J[结束接待任务]
B -- patrol --> K[进入巡逻任务]
K --> L{随机/指定路线}
L --> M[导航到下一个点]
M --> N{到达?}
N -- 否 --> M
N -- 是 --> O[更新索引/剩余圈数]
O --> P{是否完成}
P -- 否 --> M
P -- 是 --> Q[结束巡逻任务]
```