1. 从“能用”到“好用”的进化逻辑
参加工程训练大赛的团队往往面临一个共同困境:初版小车勉强能完成基础动作,但遇到复杂任务就频繁出错。我们团队从省赛晋级到国赛的过程中,深刻体会到“能用”和“好用”之间隔着三重鸿沟:
- 稳定性:实验室走10次成功的路径,比赛现场可能失败3次
- 适应性:在平整地胶上表现完美,遇到赛场接缝处立刻偏离轨道
- 容错性:机械臂抓取时1cm的定位误差,可能导致整场任务失败
去年国赛有个典型案例:某队伍使用现成的五路灰度传感器,在练习赛时停靠精度达到±5mm,但正式比赛时由于场地光线变化,传感器读数漂移导致连续两次撞上物料台。这印证了我的导师常说的一句话:“比赛现场只会暴露所有你没想到的问题”。
2. 行走系统的精准控制方案
2.1 麦轮悬挂的机械优化
我们第一版小车用的是淘宝购买的普通麦轮套件,很快发现四个问题:
- 空载时四轮着地,加载机械臂后前轮悬空
- 左右平移时车身明显偏转
- 电机发热导致轮毂变形
- 急停时橡胶轮面与地胶打滑
低成本解决方案:
- 用3D打印设计弹性悬挂支架(PLA+TPU材料复合结构)
- 在底盘加装配重块调节重心(用钓鱼铅坠比专用配重便宜80%)
- 轮毂内侧贴平衡块(汽车动平衡贴片5元/包)
实测数据对比:
| 改进项 | 直线偏移量 | 平移偏转角 |
|---|---|---|
| 初始状态 | ±15cm/3m | 8°-12° |
| 加悬挂后 | ±5cm/3m | 3°-5° |
| 加配重+平衡后 | ±2cm/3m | ≤1° |
2.2 陀螺仪选型血泪史
我们测试过三款陀螺仪:
JY901S九轴模块:94元
- 问题:受电机磁场干扰严重,需远离40cm才能工作
- 教训:地磁传感器在室内完全不可靠
MPU6050六轴模块:22元
- 优点:短时动态性能好
- 调参技巧:每次启动前用摄像头辅助校准初始角度
HWT101DT单轴陀螺仪:468元
- 黄金参数:零漂<0.01°/s,温漂±0.005°/s/℃
- 实战表现:3分钟比赛零漂移
关键发现:不是越贵的传感器越好,要匹配使用场景。我们最终方案是MPU6050+HWT101DT组合,前者做动态补偿,后者提供绝对基准。
3. 执行机构的性能跃迁
3.1 机械臂的性价比之选
国赛现场机械臂方案主要有三类:
舵机堆叠式(成本<300元)
- 优点:搭建快
- 致命伤:累计误差大(某队抓取成功率仅60%)
步进电机+谐波减速器(成本2000+)
- 优势:重复定位精度±0.5mm
- 劣势:需要专业机械设计
我们的折中方案:
- 关键关节用JX-PDI-6221MG(258元/个)
- 末端用MG996R(35元/个)
- 3D打印碳纤维填充结构件
实测抓取成功率从初版的72%提升到国赛时的93%,最关键的是在舵机臂根部增加了光电开关做零点校准。
3.2 电机驱动的自制之路
从省赛到国赛,电机驱动经历了三次迭代:
第一代:成品DRV8871模块
- 问题:连续工作10分钟后触发过热保护
- 维修记录:比赛前烧毁3块
第二代:BTN7971B双路驱动板
- 改进:加装散热片和温度监控
- 新问题:PWM响应延迟导致启停抖动
第三代:四路集成驱动
- 核心改进:
- 采用4层板设计降低寄生电感
- 增加电流采样反馈
- 软件死区时间动态调整
- 成本对比:
- 成品模块:400元
- 自制成本:47.3元(含PCB打样)
4. 传感系统的精准适配
4.1 灰度传感器的进化
现成灰度传感器两大痛点:
- 固定间距不适合所有赛道线宽
- 环境光抗干扰差
自制方案关键参数:
- 发射管:TSAL6200(波长940nm)
- 接收管:PT2046B
- 布局优化:
# 自适应阈值算法示例 def dynamic_threshold(calib_values): base = np.median(calib_values) noise = np.std(calib_values) return int(base * 0.7 + noise * 3)
实测效果:
- 识别精度:±1mm(省赛版±5mm)
- 抗干扰能力:在300-1000lux环境光下稳定工作
4.2 视觉辅助定位方案
国赛冠军队分享的秘诀:灰度+视觉融合定位。我们实现的低成本方案:
- OpenMV摄像头(298元)
- AprilTag定位标签
- 融合算法框架:
传感器数据 → 卡尔曼滤波 → 坐标变换 → 运动补偿
这个方案让我们在决赛中实现了±2mm的停靠精度,关键是不受地面反光影响。
5. 主控系统的可靠性设计
5.1 硬件布局的教训
省赛时我们犯过的错误:
- 所有传感器共用地线导致信号串扰
- 电机电源线与信号线平行走线
- 未做电源隔离
国赛版改进:
- 采用四层板设计
- 分区供电:
- 数字电路:3.3V LDO
- 模拟电路:独立DC-DC
- 电机电源:直接电池供电
- 关键信号线做包地处理
5.2 软件架构优化
从省赛到国赛,代码经历了三次重构:
- 省赛版:裸机while循环
- 最大延时:237ms
- 过渡版:FreeRTOS任务调度
- 响应抖动:±15ms
- 国赛版:时间触发架构(TTAS)
- 时序精度:±1us
关键代码结构:
void ControlTask(void) { static uint32_t last_tick = 0; if(GetSystemTick() - last_tick >= 5) { // 200Hz SensorUpdate(); PathPlanning(); MotorControl(); last_tick = GetSystemTick(); } }6. 成本与性能的平衡艺术
在5000元总预算限制下,我们的分配策略:
不能省的部件:
- 陀螺仪(占预算9.3%)
- 电机编码器(占预算7.6%)
- 主控芯片(STM32H743,占预算6.2%)
可以省的部分:
- 用铝型材代替碳纤维(节省320元)
- 自制传感器(节省280元)
- 二手锂电池(节省150元)
隐性成本:
- 第3版PCB打样费累计花了210元
- 备用零件包约占总预算5%
最终我们的国赛小车总成本控制在4876元,比省赛版本性能提升3倍的情况下,只增加了23%的预算。这得益于每个部件的精准选型——不是选最好的,而是选最适合比赛场景的。