Files
Docs/DevLogs/Day28.md
2026-01-06 17:29:46 +08:00

61 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Day 28: 室内导航优化与 Bug 修复 (2026-01-06)
## 🎯 今日目标
1. **修复室内导航无语音播报问题**
2. **优化“未检测到可行走区域”的播报逻辑,消除闪烁**
3. **切换到更精准的室内分割模型 (14类)**
4. **解决 TTS 音频末尾的“啪”声**
5. **排查终端 WiFi 断连后无法重连的问题**
## 🔧 实施细节
### 1. 模型切换与优化
- **切换模型**: 从原 `yolo11l-seg-indoor.engine` (22类) 切换为 `yolo11l-seg-indoor14.engine` (14类专为室内地板优化)。
- **类别映射更新**: 修改 `workflow_indoor.py` 以适配 14 类数据集 (MIT Indoor Subset)
- 可行走区域:`floor(0)`, `corridor(1)`, `sidewalk(2)`
- 静态障碍物:`chair(3)`, `table(4)`, `sofa_bed(5)`, `cabinet(11)`, `trash_can(12)`
- 兴趣点:`door(6)`, `elevator(7)`, `stairs(8)`
- 动态障碍:`person(10)`
- **效果**: 地板 (`floor`) 检测置信度显著提升0.85+),彻底解决了“无法识别地面”的问题。
- **识别逻辑优化**:
- **视觉持久化**: 引入可行走区域 Mask 缓冲机制,防止因单帧检测失败导致的“绿道闪烁”现象。
- **阈值微调**: 将 `WALKABLE_MIN_AREA` 降至 50提高对狭窄路段或远距离地面的检出灵敏度。
- **可视化增强**: 完善 `_draw_indoor_visualizations`,确保实时渲染分割掩膜与避障框。
### 2. 语音播报修复
- **强制首播机制**: 修复了 `IndoorNavigator` 中“未检测到可行走区域”的节流逻辑。
- **问题**: 初始化时间 `last_no_walkable_time` 为 0导致首次检测失败时由于时间差过大或逻辑判断失误被跳过。
- **修复**: 增加显式判断 `if self.last_no_walkable_time == 0`,确保首次检测到无路时**立即播报**,后续保持 8 秒间隔。
- **启动即时反馈**: 在 `app_main.py` 中,收到“室内导航”指令后,立即播报“**室内导航已启动,正在寻找可行走区域**”,消除用户等待时的不确定感。
- **崩溃修复**: 移除了新模型中不存在的 `CLASS_TOILET``CLASS_SINK` 引用,解决了后台报错导致的导航中断。
- **语音识别优化**:
- **别名扩展**: 针对 SenseVoice 的同音误识,增加了 `["四内导航", "思维导航", "失内导航", "室类导航"]` 等别名映射,确保“室内导航”指令的高唤醒率。
- **短指令支持**: 允许单独说“导航”触发盲道导航,防止吞字导致命令失效。
### 3. 音频体验优化
- **消除“啪”声**: 在 `app_main.py` 的 TTS 播放流末尾,将静音填充时长从 60ms 增加到 **200ms**,有效消除了音频截断带来的爆音。
### 4. 终端 WiFi 重连问题分析
- **现象**: 终端离开 WiFi 范围后断网,返回后无法自动重连。
- **分析**: 客户端程序 (`NaviGlassClient`) 的 WebSocket 连接逻辑已有无限重试和指数退避机制。无法重连是因为底层操作系统 (Tina Linux) 的 WiFi 接口在断开后未自动重新关联 AP。
- **结论**: 此为系统配置问题,非 App 代码 Bug。
- **建议**: 在终端部署后台脚本 (`wifi_check.sh`),定期检测网关连通性并在断网时重启 WiFi 接口。
## 📊 结果验证
-**地面检测**: 14类模型能稳定识别大面积 `floor` (area > 60000)。
-**语音反馈**: 启动导航和无路警告均能正常听到,不再静默。
-**稳定性**: 修复未定义变量错误后,导航进程稳定运行。
- ⚠️ **遗留问题**: 终端 WiFi 自动重连需在设备端通过脚本解决。
### 5. 文档体系重构与完善
- **系统架构图更新**: 重写 `implementation_plan_complete.md`,新增基于 Mermaid 的端云协同架构图,更新至 Day 28 状态。
- **任务清单优化**: 全面整理 `task_complete.md`,合并“技术债务/未来规划”板块,优化快速导航与排版。
- **技术文档刷新**: 更新《技术栈对比》与《服务器技术栈》,纳入室内导盲 (14类) 与新 AI 管道信息。
- **更新规则精简**: 优化 `DOC_RULES.md`,移除冗余示例,确立“轻量化检查清单”原则。
---
## 📝 下一步计划
1. 在真实环境中实测 14 类模型的避障效果。
2. (终端侧) 部署 WiFi 保活脚本。