接手一台 Arduino Nano 差速小车。小车沿黑色胶带赛道循迹,在直线、弯道
和交叉口保持稳定;前方 20cm 内出现障碍物时平稳停车,障碍移除后重新
确认赛道再起步。目标是完成可复测的闭环控制,不是调到“看起来能跑”。
循迹:Pololu QTR-8RC 八通道反射传感器,使用 QTRSensors 固定版本
驱动:TB6612FNG,左右两台带编码器直流减速电机
控制周期:循迹 100Hz,速度环 50Hz,测距 20Hz
赛道为白底黑线,标称线宽 18mm。传感器高度、轮距、轮径和编码器分辨率
上电保持电机禁止输出,完成 QTR 明暗标定并检查八通道动态范围。
任一关键通道无有效变化时拒绝起步。编码器方向和左右电机极性先用低速
用 QTR 加权位置形成横向误差,PID 输出左右轮差速;基础速度根据弯道
误差和轮速余量调整,积分项限幅并在丢线时清零。连续 100ms 看不到赛道
时先减速,再按最后有效方向低速搜索,超过 2 秒仍未恢复则停车等待人工。
测距连续三次小于 20cm 时按受控斜坡降速至零。障碍移除并连续五次大于
30cm 后,先重新确认赛道位置,再以低速起步;不得从停车状态直接恢复
到全速。电池欠压、电机堵转或编码器停更立即关闭驱动并记录故障。
- 未架空确认电机方向、急停和驱动待机脚前不得落地运行;
- 不得通过持续提高 PWM 掩盖机械卡滞、供电压降或驱动过热;
- 不得在传感器未标定时使用固定阈值宣称完成循迹;
- 不得把超声或 ToF 单次异常值直接当作障碍物结论;
在包含 5m 直线、半径 30cm 弯道、S 弯、交叉口和断线段的固定赛道测试。
连续完成 30 圈,统计单圈时间、横向误差峰值、丢线次数和恢复时间;
在三种速度下各执行 20 次障碍停车,停车距离不得超过 10cm 且无碰撞。
最终交付传感器标定值、PID 与速度参数、状态机、控制周期统计、
30 圈数据、障碍测试和仍需人工处理的机械偏差与电源问题。