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

4.3 KiB
Raw Permalink Blame History

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_TOILETCLASS_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 保活脚本。