地下车库自动消防智能巡检无人车系统

地下车库消防巡检无人车

下位机 RTOS 任务划分

任务 周期 / 触发 主要职责
MotorControlTask 10 ms 周期 编码器反馈读取、PID 运算、电机 PWM 输出
SensorUpdateTask 20 ms 周期 更新 IMU、里程、电量、限位等状态
CommTask 10–20 ms 周期 接收上位机命令并上传状态反馈
ExtinguishTask 事件触发 控制云台、泵阀与喷射时序
SafetyTask 50 ms 周期 急停、欠压、通信超时与异常报码
StatusTask 100 ms 周期 状态灯、蜂鸣器与简单交互信息

底盘速度闭环 PID

下位机的实时核心是麦轮独立的速度闭环,由 MotorControlTask 以固定 10 ms 周期采用串级PID控制:

$$
u(k) = K_p e(k) + K_i\sum_{t=0}^{k} e(t) + K_d,(e(k)-e(k-1))
$$

实际问题及其解决方案

  1. 低速测速分辨率不足:由于编码器在固定周期内计脉冲,低速时单周期脉冲数很少,量化误差被放大;同时编码器采样有极大抖动,Kd会把这个阶梯放大。在实际工程中,为了便于快速整定参数,我们需要在测速环节提高分辨率,以对速度反馈做滤波。
  2. 积分饱和:电机堵转或 PWM 已达上限时误差持续存在,积分项会一直累加到很大的值;等目标反向时,输出要先抵消这部分累积量,进而导致模型输出迟滞。解决方法是通过积分限幅配合输出限幅解决,核心思想即避免Ki项过大。
  3. 启动死区:占空比低于某个门限时电机因静摩擦不转,此时误差存在但输出无效。需要设定最小有效占空比或做死区补偿。

参数整定

在串环PID模型中,我们按先内环再外环的顺序推进:先保证不发散、不振荡、能稳定跟踪,再优化响应速度与稳态误差。整定顺序为先加 $K_p$ 到出现小幅振荡再回退,再加 $K_i$ 消除稳态误差,最后按超调情况引入 $K_d$。

导航模型与算法

  • 问题建模:将地下车库抽象为有向图 $G=(V,E)$,节点集合除巡检目标点外还涵盖转弯点、狭窄通道入口、充电等待点与消防高风险区入口等功能点位。综合目标函数同时计入路径长度、风险代价与应急响应时间:

    $$
    \min J = \alpha\sum_{i=1}^{n}\sum_{j=1}^{n} d_{ij}x_{ij} + \beta\sum_{i=1}^{n}\sum_{j=1}^{n} r_{ij}x_{ij} + \gamma T_{resp}
    $$

    三类权重按任务阶段动态调整——日常巡检抬高 $\alpha$ 保覆盖率,重点区域巡检抬高 $\beta$ 偏向规避危险点,火情确认后抬高 $\gamma$ 优先快速接近。约束包含出入度约束、最大巡检长度 $L_{path} \le L_{max}$ 与安全电量 $E_{remain} \ge E_{safe}$。

  • 分层求解:初始路径基于预设巡检点位用 A* 生成,优先保证可通行、可停靠与可切换应急路线;局部重规划在尽量不推翻全局任务的前提下进行分级处理,障碍影响范围小时调整当前局部轨迹即可,只有持续占道时才触发全局路径更新。

  • 评价指标:从巡检覆盖率 $\eta_{cover} = N_{visited}/N_{total}$、平均响应时间、路径平滑度、平均跟踪误差 $e_{track} = \frac{1}{M}\sum_{k=1}^{M}|p_k - \hat{p}_k|$、任务成功率五个维度建立指标体系。

火焰识别与自动灭火

  • 分层处置策略:采用 “检测网络 + 规则复核 + 状态机决策 + 执行闭环” 四层结构。YOLO 负责检查图像中是否存在火焰,规则层负责「是否足够可信、是否触发任务切换」,状态机负责「识别之后整车该怎么做」,下位机负责执行闭环与安全联锁。

  • 连续帧火情确认:设检测结果为 $D={(b_i, c_i, s_i)}$,为抑制单帧误判引入连续帧确认,构造综合评分:

    $$
    S_{fire} = \lambda_1\bar{s} + \lambda_2 n_{cont} + \lambda_3 a_{stable}
    $$

    其中 $\bar{s}$ 为连续帧平均置信度、$n_{cont}$ 为连续命中帧数、$a_{stable}$ 为检测框面积变化稳定度。

  • 数据集与训练:预处理包含图像采集、标注、尺寸归一化、亮度增强、模糊与噪声模拟、反光场景增强,重点补充暗光、局部遮挡、车灯反光与烟雾干扰样本。划分比例 7:2:1,且同一视频序列的图像尽量不同时出现在训练与测试集,防止场景泄露。

  • 部署与推理加速:采用输入尺寸压缩、关闭批处理、异步推理、固定帧率采样、置信度阈值调优、日志异步写入降低系统负担,并对视觉线程与导航线程设置不同优先级。

  • 灭火状态机:状态及设计上,我们将整个系统面对的各种情况划分为“目标候选、火情确认、接近火源、姿态调整、喷射执行、效果复核、结束归位”七个状态,每个状态明确定义进入与退出条件。

  • 喷头指向闭环:以目标中心与图像中心的偏差 $e_\theta(k) = x_{target}(k) - x_{center}$ 作为误差,对水平与俯仰方向分别构建 PID 回路;下位机安全联锁在距离不足、云台未到位、泵阀压力异常或急停触发时禁止进入喷射状态。

技术栈

STM32 · FreeRTOS · 串级 PID · 激光雷达 SLAM · 占据栅格地图 · A* / Dijkstra · YOLO · 状态机

仓库:消防车