Skip to content

FLL 实战技巧

比赛桌上真正拿分的,不是花哨算法,而是每次都一样的可靠性。本课是前面所有技术在 FLL 场景下的组合拳。

可靠性 > 速度 > 优雅

FLL 机器人赛 2 分 30 秒,裁判只看结果。一个 10 次成功 9 次的任务,好过一个快 5 秒但 10 次成功 6 次的任务。所有技巧都围绕一个词:重复性(repeatability)

定位校准:对抗误差累积

机器人每走一段就积累位置误差。校准 = 用场地上的已知参照物把误差清零。

靠墙校准(squaring)

倒车顶墙,墙是直的,顶紧后机器人的朝向和位置就确定了:

定义 靠墙校准
设置移动速度 [30] %
开始移动 [后退]
等待 [1.5] 秒                 ← 足够顶紧,轮子打滑没关系
停止移动
重设偏航角 [0]                 ← 姿态已知,清零陀螺仪

要点:

  • 速度要低(25-35%),全速撞墙会弹开、会掉件。
  • 机器人尾部要平(两个点同时触墙),歪着顶会卡在斜角。
  • 力传感器的话,用"等待到被按下"代替固定时间更快。

找线校准

垂直冲过一条已知黑线,在看到线的瞬间位置就确定了(行进方向上):

开始移动 [前进]
等待到 <颜色传感器 [C] 反射光 < [黑线阈值]>
停止移动
移动 [前进] [3] cm             ← 从线边推进到线中心等固定偏移

双传感器版本还能顺便校正朝向:两个传感器先后压线,说明机器人是歪的,让先压线的一侧停轮等另一侧追上(称为"line squaring")。

出发与回基地

  • 出发位置夹具(jig):用乐高搭一个靠在基地边线的定位框,机器人每次贴着夹具摆放,出发误差从厘米级降到毫米级。这是性价比最高的"技术"。
  • 出发朝向 = 陀螺仪 0 度基准:摆正后再按启动。
  • 回基地走大路:回程不需要精度,全速直线,方向大致对准基地即可,省时间。

任务程序结构

一次出发(run)= 一个程序槽。标准骨架:

当程序启动时
初始化                        ← My Block:马达设置 + 阈值变量 + 重设偏航角
陀螺直行 [60]
转弯 [90]
巡线 [30]                     ← 接近模型用巡线保证横向精度
附件动作
靠墙校准                      ← 顺路的话,清零误差再去下一个模型
陀螺直行 [-70]                 ← 回基地

原则:

  • 每段路选最合适的导航方式:长距离 = 陀螺直行,末端接近 = 巡线/距离传感器,回程 = 快糙猛。
  • 把出错概率高的任务放后面:前面的任务失败可能撞乱场地,影响后面所有任务。
  • 换附件时间也是时间:队员训练换装(attachment swap)到 5 秒内。

抗干扰细节

问题对策
电量影响速度比赛用满电;所有移动用编码器/传感器结束,不用时间
场馆灯光到场先重标颜色阈值;传感器加遮光罩
轮子打滑起步用加速度平缓的速度;轮面保持干净(比赛前擦轮)
桌面边框差异靠墙校准的等待时间留余量
手抖出发夹具 + 队员分工固定(谁摆机器人谁按按钮)

测试纪律

  • 每个任务连续测 10 次,记录成功率。低于 8/10 就还不算完成。
  • 每次改程序后从"摆机器人"开始完整重测,不要只测改动的那一段。
  • 用表格记录:任务、成功率、平均用时、失败原因。数据比感觉可靠。

练习

  1. 给你的机器人做一个出发夹具,测出发 10 次的末端位置散布,和徒手摆放对比。
  2. 写一个完整的任务程序:出发 → 陀螺直行 → 转弯 → 巡线接近 → 附件动作 → 回基地,连续跑 10 次记录成功率。

Word Blocks 的能力到这里基本到顶了。想要更快的循环、真正的函数和 PID,进入 Python 篇