1
启动:车停在离黄线有一段距离的地方
红外还没见线,位置状态默认"不可信",程序决定先交给前置摄像头找线。
↓
2
摄像头接力,找黄线
前置摄像头识别黄色色块,控制轮速转向靠近黄线;红外在后台持续轮询。
接力超时→结束
↓
3
红外接管:首次对中
红外读到能判断方向的读数,立刻收回控制权,等待读到"居中"信号完成第一次对中。
方向不明确→退回②超时仍不明确→结束
↓
4
正常循迹(直行 / 纠偏 / 转弯)
红外持续驱动电机:居中直行,单侧见线纠偏,稳定单侧一段时间判定为转弯并播报一次。
丢线/转弯超时→结束可能被后方跟丢暂停
↓
5
超声波连续确认前方障碍物
第一次测到近距离就先暂停等待确认;连续两次都很近才真正判定"确认有障碍"。
未连续确认→直接恢复循迹传感器连续故障→结束
↓
6
拍照 + YOLO 识别 + 播报物体
存一张图交给 YOLO 识别,命中白名单里的物体类型就播报"前方有xxx",一个都没命中就播报"前方有障碍"。
↓
7
避障① 向右绕行
交给独立避障线程:播报"开始向右绕行",向右平移,直到前方连续测到通道清空并稳定一段裕量,播报"右绕完成,开始前进"。
右移超时→避障失败,结束
↓
8
避障② 向前通过障碍物
向前直行,靠左侧超声波确认已经越过障碍物(从"曾检测到"变为"连续清空"),再多走一段纵向裕量。
前方/左侧异常或超时→避障失败,结束
↓
9
避障③ 向左返回原路线
播报"已通过,开始向左",按之前右移的实际耗时对称左移,回到原路线附近后停车,播报"已回到路线,正在找线",避障流程结束(COMPLETED)。
左返途中异常→避障失败,结束
↓
10
避障完成:标记位置不可信
不管当时后方是否也在暂停,都先标记"位置不可信"(避障线程自己已经播报过"已回到路线,正在找线");若后方没在跟丢等待就立即发起恢复。
后方仍在跟丢等待→暂不恢复
↓
11
摄像头再次接力 → 红外重新接管
因为位置被标记为不可信,恢复时统一先走摄像头接力(同②,含 v12 新增的原地右转主动搜索),红外真正接管的一拍播报"找回盲道,前行",之后回到④继续正常循迹。
接力超时→结束
↓ 回到 ④ 正常循迹(本例全程只设置一个障碍物,之后不会再触发⑤-⑩,除非再次检测到新障碍)
⛔ 致命结束:程序刹车退出(锁存,不重试)
循迹丢线锁停 / 摄像头接力超时 / 避障失败 / 超声波硬件故障 / 循迹线程异常,任意一种发生即结束整个程序。点击查看所有触发来源。