项目的业务主线是一次完整的自主竞赛任务。操作人员只负责在出发区放置机器人并完成一键启动,后续任务读取、路径行驶、排爆、打靶和救援均由机器人自主完成。软件设计围绕这条主线组织功能,并通过串口协议接入外部视觉计算单元。
反恐排爆救援赛项把多种任务集中在一个 3500 mm x 3500 mm 的场地内。机器人必须在 5 分钟内连续完成排爆、反恐和救援,出发后不得再由人工接触,也不允许使用无线通信。固定的遥控操作无法满足这种自主性要求。
场地中的二维码、红绿蓝目标、三种人质形状、减速带和不同功能区域对感知与决策提出了组合要求。机器人不仅要识别目标,还要把识别结果转化为底盘位置调整、机械臂动作、激光开关和返航停车等连续控制。
项目选择四轮全向底盘、陀螺仪航向反馈、两路视觉模块和多类执行机构组成样机。不同设备使用 UART、CAN、PWM 和 GPIO,通信方式与实时性要求各不相同。立项的核心工作是把这些设备和赛程组织成一套稳定、可调试、可复用的嵌入式控制系统。
系统采用 STM32 实时控制与外部视觉计算协作的实现方式。STM32 负责确定性较强的运动控制、设备通信和动作时序,OpenMV 与 MaixCam 负责图像采集和目标识别。两者通过串口协议交换结构化结果,避免在主控上运行高负载图像算法。
软件分为感知与交互、调度与决策、运动控制、执行与驱动四层。上层模块只使用速度、目标角、任务状态和完成信号等语义接口,下层模块负责把语义命令转换为 UART、CAN、PWM 或 GPIO 操作。这样的分层使视觉算法、底盘参数和机构协议可以独立调整。
工程使用 STM32CubeMX 维护外设和 FreeRTOS 对象,使用 CMake、Ninja 和 GCC ARM Embedded 完成可重复构建。CMSIS-DAP 与 OpenOCD 负责下载和调试。业务代码集中在 Core/APP,CubeMX 生成代码保留 USER CODE 区域,降低图形化重新生成配置时覆盖业务逻辑的风险。