循迹准确之外,控制链路还必须对失效负责。
室外红蓝锥桶赛道会出现光照变化、阴影、遮挡、单边界、相机断流和底盘协议差异。原型中旧检测结果可能被重复使用,视觉命令也可能被直行命令覆盖。
Problem
当目标丢失或相机超时时继续输出前进命令,会把感知问题升级为安全问题;把感知、控制、任务和 ROS 通信写在单个循环里,也难以测试与标定。
项目将原 ROS 1 单文件原型重构为 ROS 2 Humble 软件包,集成红蓝锥桶感知、非阻塞 PID、底盘命令适配、任务状态机、相机看门狗、急停和显式故障复位。
室外红蓝锥桶赛道会出现光照变化、阴影、遮挡、单边界、相机断流和底盘协议差异。原型中旧检测结果可能被重复使用,视觉命令也可能被直行命令覆盖。
当目标丢失或相机超时时继续输出前进命令,会把感知问题升级为安全问题;把感知、控制、任务和 ROS 通信写在单个循环里,也难以测试与标定。
支持红色双 HSV 区间、蓝色区间、亮度归一化、形态学去噪与单/双边界中心估计。
非阻塞 PID、EMA 时间滤波、转角变化率限制,以及随置信度和弯道变化的限速。
启动与运行看门狗、连续丢失停车、独立急停、故障保持和人工复位。
每层只承担一种核心职责,参数集中在 YAML 中。
接收图像并监控启动与运行超时。
颜色分割、轮廓过滤、中心与置信度。
计算转向、限速并处理目标丢失。
建图圈、红灯、导航圈、停车与安全状态。
单点发布底盘命令与调试话题。
双边界和单边界采用不同估计,并对连续帧做 EMA,控制层不盲目信任单帧。
转向、速度、安全状态和任务状态在同一输出位置汇总,避免命令互相覆盖。
同时提供标准 Twist 和旧底盘 PWM 模式,并明确旧模式并非标准 Twist 语义。
红灯、圈次、停车和急停事件采用明确话题与边沿触发,减少重复事件。
| 挑战 | 解决方式 | 验收方式 |
|---|---|---|
| 光照和红色色相跨界 | 双红色 HSV、CLAHE、形态学去噪和按图像比例过滤轮廓 | 晴天、阴天、逆光和阴影样本 |
| 单边界或短时遮挡 | 单边界中心估计、置信度、EMA 与连续丢失计数 | 单弯、S 弯与遮挡测试 |
| 相机或处理链路失效 | 启动/运行看门狗、异常捕获、safe_stop 与人工复位 | 相机断开、软件急停、硬件急停 |
| 底盘命令差异 | 标准 Twist 与 PWM 适配模式,参数化中值和极限 | 架空车轮后低速落地标定 |
建议优先补充真实调试图、控制曲线和实车/仿真环境;占位图不代表已经完成实车验收。
可使用按钮、分页圆点或键盘左右方向键切换。