机器人竞赛赛项调研 + 备赛手册
把"孩子要参加一个机器人比赛"变成一份家长能用、孩子能懂的作战手册。
核心原则:先锁三要素,再读规则。 同一个系列赛里,赛季、赛项、组别 三个变量任一不同,任务、分值、器材红线、违规后果都可能完全不同。跳过这一步,后面全是错的。
何时使用
- 用户(多为家长)说"孩子要参加 XX 机器人比赛,需要做哪些准备"
- 用户要一份"能讲给孩子听"的编程思路 / 赛前训练计划
- 需要核对某个赛项的器材合规要求(比如检录会不会卡)
- 新赛季规则更新后,需要更新旧手册
第 1 步:锁定三要素(务必先做,不要跳过)
必须明确到:
| 要素 | 说明 | 常见坑 |
|---|---|---|
| 赛季 | 规则通常每年 12 月前后出新版 | 搜到的是去年规则,分值已改 |
| 赛项 | 同一系列赛有多个赛项并列 | 「超级轨迹赛」下就有普及组/挑战组/对抗组多个子赛项 |
| 组别 | 小学低龄组 / 小学组 / 初中 / 高中 | 低龄组常是"自动+遥控",高年级可能是"全程自动",编程量差 10 倍 |
三者没锁定时,先问用户或明确标注"按 X 赛季 Y 赛项 Z 组别"。
第 2 步:找官方源(按优先级)
Super AI / 中鸣 ZMROBO 体系(最常见):
- (虚拟赛第一优先)RoboSim 赛事页自带的「规则下载」 —— 形如
https://robosim.zmrobo.com/events/<赛事ID>/<组别ID>。页面上直接挂着官方规则 PDF 直链(oss.zmrobo.com/robosim%2Ftheme%2F...%2Frules%2F...%2Ffile%2F<文件名>.pdf,URL 含中文文件名时需先 percent-encode)。这是虚拟赛唯一权威源,同一页还能拿到报名/热身赛/正式赛的精确日期时间。⚠️ 抓这类 URL 时避免用 PowerShell 直接传,%会被安全策略拦截 —— 写成 Python 脚本用urllib+quote()下载。 - (官方教学资源总入口)
https://robosim.zmrobo.com/support—— 「基础资源」区挂着官方全部基础教程,包括《视觉巡线应用基础》和《五光电巡线应用基础》两部教学录像(各 25–31 分钟),是"怎么编程"最权威的答案。
页面是 React SPA,HTML 里没有链接,要拿直链得调接口:
POST https://robosim.zmrobo.com/back/api2/robosim/getResourceJson(必须是 POST,空 body 即可;GET 会返回空)
返回{status:1, data:{title:"基础资源", data:[{type,url,title}...]}},含 6 份资源的 OSS 直链。
⚠️ 教学资源是 mp4 录像,不是文档。要提取内容就得下载 + 抽帧 + 逐帧读图(见"工具链"一节)。 https://superai.zmrobo.com/rulelist—— 官方规则列表,按赛季+赛项列出,是权威入口https://www.zmrobo.com/products/882一类产品页 —— 器材型号、道具包构成、场地图下载入口https://www.zmrobo.com/support/downloads/—— RoboCode / ZMROBO-3.0 编程软件https://www.yuque.com/zmrobo/jmc2421/vzfn8kqbwmh11gf4—— RoboCode + C6 控制器编程入门(操作步骤权威)- 搜索
"<赛项名>" 主题与规则—— 地方教育局/协会转发的完整规则全文,常带计分表,比官网页面更完整 https://www.worldrobotconference.com/uploads/admin/...pdf—— WRC 历年规则 PDF
其他体系:全国中小学信息技术创新与实践大赛(NOC)、全国青少年信息素养大赛、省级青少年机器人竞赛(如江苏省青少年机器人竞赛规则在 xiaoxiaotong.org)。
关键技巧:搜 "赛项名 + 主题与规则" 比搜 "赛项名 + 规则" 命中率高得多,因为官方文件标题就是这个格式。
第 3 步:按固定清单抽规则事实
逐项填,缺哪项就继续搜。不要凭常识补,规则常有反直觉设计。
A. 基本信息
- 赛项全称 / 组别 / 每队人数(选手 + 指导老师)
- 单轮时长,以及拆成几段(如"120 秒 = 自动 10 秒 + 遥控 110 秒")
- 场地尺寸、启动区/终点区尺寸
- 是否需要现场搭建(很多赛项不需要,整机入场只过检录 —— 这直接决定备赛工作量)。虚拟赛另有一套"机器人从哪来"的规则,见第 4.5 步
- 轮次数量、最终成绩取法(取最高分 / 两轮之和)
B. 任务清单与分值 —— 逐条抄
- 任务名 / 在哪个时段完成 / 完成判定标准(常是"垂直投影完全进入 X"这类几何描述)/ 分值
- 区分:必须任务 / 随机任务(位置由裁判抽签决定)/ 附加任务
- 哪些任务被限定时段(如"必须自动段完成,否则不得分")
C. 计分公式
- 单场得分 = 任务分 + 流畅分(重置罚分) + 时间分(剩余时间阶梯)
- 破平顺序(往往是训练重点的隐藏信号:比"用时"就练速度,比"重置次数"就练稳定性)
D. 器材规格与红线
- 尺寸上限(启动区内 / 离场后可伸展)
- 电机、舵机数量上限;驱动电机是否限定型号
- 驱动轮直径/宽度上限;电池电压上限
- 结构材料:是否允许 3D 打印件、螺丝、胶水、胶带、扎带、橡皮筋(同一系列不同赛项松紧不同,务必按本赛项规则)
- 传感器是否限数量;遥控方式(2.4G / 蓝牙 / 红外)
E. 违规与判罚 —— 单独整理,这部分是"不做就 0 分"
- 误启动:每轮几次机会
- 家长/老师口授或上手的后果(通常直接该轮 0 分,务必单独提醒家长)
- 故意分离部件、越界出场的处理
- 重置机制:允许次数、已得分是否清零、任务模型是否恢复
第 4 步:识别"编程量 vs 操作量"
这是家长最容易误解的地方,必须在手册里直说。
算一下自动时段占总时长比例:
- 低龄组常见 10/120 秒 = 8% —— 编程量极小,分数大头在遥控操作和临场稳定性
- 高年级组常见 100% 全程自动 —— 编程量是核心
比例低的赛项,手册要把重心放在遥控任务顺序(作战计划)和手法训练上,编程部分只讲清那几块积木即可。反之则重点讲程序结构。
第 4.5 步:分清"实物赛"还是"虚拟仿真赛"(极易踩空)
中鸣体系的白名单赛项大量采用 RoboSim 虚拟平台(WRC Super AI 虚拟机器人赛项、NOC 虚拟赛道、全国青少年人工智能创新挑战赛虚拟赛道)。同一个主题名(如"星宇奇航")在实物版与虚拟版下规则完全不同。
| 实物赛 | 虚拟仿真赛(RoboSim) | |
|---|---|---|
| 时长 | 各赛项不同(常见 120–180 秒,可能拆自动/遥控段) | 各赛不同,常见 180–240 秒 |
| 控制 | 自动 + 无线手柄(部分赛项全自动) | 全程自动程序,没有遥控段 |
| 路线 | 现场公布或抽签,固定 | 系统随机决定 |
| 道具位置 | 部分随机 | 系统随机 |
| 脱线 | 多数可遥控救回或按规则罚 | 多数直接任务中止 |
| 计分 | 任务分 +(常有)流畅分 + 时间分 | 多数只有任务分,取多次提交的最高分 |
| 成绩 | 两轮取最高分 | 提交成绩中取最高分 |
⚠️ 上表只是"通常形态",不是规律。 每个虚拟赛的时长、计分项、组别任务量都要按当次规则原文核 —— 见下方"常见坑"。
信号:用户说"没有真实机器人/没有真实场地/在 RoboSim 里编程" → 立即按虚拟赛处理,编程量从"10 秒自动段"暴增到"全程自动",手册重心整体转向巡线程序、计数器、状态机。
RoboSim 编程环境事实(可直接引用)
- 双模式:Scratch 图形化积木 ↔ Python 一键互转;模块分类:控制器 / 电机(马达)/ 传感器 / 条件判断 / 循环 / 变量 / 执行器 / AI 视觉
- 运动模型:左马达 = M1,右马达 = M2;同速 = 直行,差速 = 转弯,都为 0 = 停止。转弯的本质就是制造速差
- AI 视觉模块是 RoboSim 虚拟赛的巡线主力(见下节),不要默认虚拟赛也用双灰度传感器
- 搭建界面的零件积木栏分 10 类:机器人、梁、销、轴、齿轮、电子元件、装饰件、轴套、轮子、其他。没有"推板/铲斗"这类专用结构件,一切附属结构都用「梁」拼
- 两种运行方式:开始仿真(机器人从场地规定起点跑,验完整流程,只用于验收)/ 开始调试(机器人保持当前位置跑,分段调试,90% 时间用这个)
- 数据面板:实时显示电机状态与传感器检测数值(含
AI视觉模块实时读数)→ 把机器人手动放到线上/线外对照读数,是讲解传感器原理的最佳教学工具,实物做不到 - 搭建省时操作:
Ctrl+C/Ctrl+V复制粘贴、←↑↓→/WASD旋转、Delete删除、「冻结积木」(装好一侧先冻结再去装对称的另一侧,防止误碰散架) - 与实物的差别:仿真无电池漂移、参数可复现。先练"逻辑",去实物只调"参数"
- 软件下载
https://robosim.zmrobo.com/downloadSoftware;帮助手册(含"附录一:编程模块"、"附录二:视觉巡线")在第三方站点有存档,搜索可得
虚拟赛的机器人从哪来:内置 or 现场自建(家长第二个必问)
家长问完"怎么编程",下一个问题就是"能用软件自带的机器人吗,还是得自己搭"。这个问题有明确规则依据,不要凭推测回答:
- 软件自带一个「内置机器人」 = 标准两轮小车(控制器 + 左马达 M1 + 右马达 M2 + 万向轮)。进入场地即可直接编程运行,完全不搭建也能完赛。
- 允许在内置机器人基础上改装。RoboSim 帮助手册「五、比赛须知」原文:比赛过程中,可以在内置机器人的基础上搭建机器人,可以打开保存在本地的程序和搭建文件,但不能打开别人的或赛前写好的程序。
- 红线:不能带预制机器人进场。帮助手册 FAQ 原文:比赛时需要参赛选手独立完成机器人搭建和机器人程序编写,可以导入自己在比赛过程中保存的机器人和程序,但不能导入比赛前预先做好的机器人和程序,更不能导入其他人提供的机器人和程序。→ 赛前在家搭好的
.rsr文件不能导入。
判断"要不要搭"的唯一标准:任务是否需要机器人「携带」或「抬升」物体。
- 不需要 → 内置底盘够用,把全部时间投给巡线程序
- 需要(背信标 / 装密钥 / 抬拨杆 / 抬起箱子)→ 必须现场加装结构件(梁、销、轴 + 承载板 / 抬升杆)
手册里配一张"任务按结构需求分级"图,并给出两阶段策略:先用内置机器人把巡线类分拿稳(同时验证程序正确),再加装结构去抢任务分。顺序反了会两头都做不好。
⚠️ 同主题下不同组别的任务量可能差一倍(如"信标投送":小学低年级组只需送 1 个信标,小高/初中组要送 2 个),机器人结构复杂度随之不同 —— 必须按用户实际组别给结论。
虚拟赛的加装怎么做(家长第三个必问)
家长接着会问"那要加装什么、怎么加"。三条骨架,直接照搬:
- 加装 = 用「梁」拼,没有成品结构件。 零件栏 10 类里不存在推板/铲斗/机械臂,附属结构一律由「梁 + 销 + 轴」拼出。提前说清"不需要机械臂、不需要舵机"能省掉大量无谓焦虑 —— 低龄组任务基本都是推/挡/托一类,一块板就够。
- 先读规则里的动作动词,再决定结构形状。 规则写"推 / 挡"→ I 形推板够用;写"拾取并投送 / 携带 / 抬升"→ 要改成 U 形兜(横梁两端各向后接一根短梁,开口朝前),否则球状模型被推着容易滚偏、掉出轨迹线。动词不同 → 结构差一个形状,这条最容易被忽略。
- 卡住启动区尺寸红线。 规则常写"机器人最大尺寸不得超出启动区"(如 250×250mm),加装件会把整机顶破红线 → 推板宽度 60~90mm 量级就够盖住 φ50mm 模型,别做整排。
固定搭法:搭建界面 → 右键拖动把车头转正对镜头 → 销类选 2 格实销插车头两孔向前伸 → 梁类选 5/7 格梁横接成横梁 → 需要兜就两端各向后接一根梁 → 右键打开设置窗口核对端口并把横梁调到最低可安装高度 → 保存为本地 .rsr(文件名带日期)。
加装后必须重跑巡线:重量和车长变了,加装前调好的 k 和 V 一定会漂。这就是"先跑通巡线再加装"的根本原因。
虚拟赛编程的核心(手册必须讲透)
RoboSim 有两条官方巡线路线,别只讲一条。 官方技术支持页的基础资源区同时挂了两份教程:《视觉巡线应用基础》和《五光电巡线应用基础》。
| 视觉巡线 | 五光电巡线 | |
|---|---|---|
| 原理 | AI 视觉模块预训练模型 | 5 个光电传感器读模拟量 |
| 场景 | 认"路":深色路面 + 两侧白色边界线 | 认"线":判"压没压到线" |
| 上手成本 | 要自己写控制律 | 官方内置一整套子程序积木,直接拖 |
| 稳定性 | 受模型识别质量影响,场地形态不符时输出飘/反向 | 硬件实时值,确定性高 |
⚠️ 用户说"偏移值不跟线走"时,第一反应应该是"换五光电",而不是调 AI 参数。 AI「道路识别」是预训练模型,只认它训练过的"路"形态;单条轨迹线的场地会失配。
① 五光电巡线 —— 首选,官方已封装成子程序
位置:编程界面左栏积木分类的「自制函数」分类。官方内置 6 个:
| 积木 | 参数 | 作用 |
|---|---|---|
基础巡线 |
速度 | 一直巡线;必须在「重复执行」里(原话:不能单独使用,必须与循环结构搭配) |
巡线一段时间 |
设定速度 / 设定时间 | 巡线到时间后停 |
巡线遇到路口停 |
遇路口前速度 / 使用光电 | 巡线到指定路口停 |
直行一段时间 |
直行速度 / 直行时间 | 直行定时 |
左转通线停 |
无 | 原地左转直到 P3 检测到线 |
右转通线停 |
无 | 原地右转直到 P3 检测到线 |
路口参数表(官方原表,照抄):参数值 = 传感器编号对
| 路口类型 | 十字/T字/Y字 | 1字(左T) | 1字(右T) |
|---|---|---|---|
| 使用光电参数值 | 15 | 12 | 45 |
| 检测用传感器 | P1 和 P5 | P1 和 P2 | P4 和 P5 |
结构前提:5 个光电一字排开装车头,中间是 P3,向外 P2/P4,最外 P1/P5;端口必须 P1~P5 依序对应。
光电传感器积木的两种模式(官方原表):
- 光电传感器 P1 [数值] —— 模拟型,返回 0~4095(实测:亮面 ≈3901,深色 ≈709)
- 光电传感器 P1 [数字数值] —— 数字型,黑(<1000)→1 成立;白(>1000)→0 不成立
- ⚠️ 数字数值 把"黑=1"写死。白色轨迹线上用它判断会反 → 改用 数值 模式 + 自己比较(如 数值 > 2000)。这条极性坑是"跑着跑着脱线"的一类典型成因,必须先实测标定再写程序。
② AI 视觉巡线 —— 另一条线,手册 P32–P37 有专章《附录二:视觉巡线》
- 核心积木
AI道路识别 偏移值(值域约 −127~127,居中为 0,右偏为正、左偏为负);同族还有AI道路识别 左/右边宽度、AI交通标志识别 ID、AI森林识别 ID - 官方三档控制律:二分法(左/右两档,中线必抖)→ 三分法(中间加停止区间)→ 比例法(
y=kx,原话"就是 PID 中的 P") - ⚠️ 官方三版都只给了转向分量、缺前进分量:手册把"转弯参数"直接当作 M2 速度且 M1 = −M2,参数为 0 时两马达都是 0(车停)。补全式:
M1 = V − k×偏移值,M2 = V + k×偏移值(V≈35 基础前进速度,k≈0.4)。性质是"两轮平均值恒为 V"。属推断,必须让用户在仿真里用「开始调试」实测 10 秒确认,别当定论塞给用户。
③ 变量计数器 + 边沿检测:过路口计数 +1,要加"上次状态"变量防重复计数。这是二年级能理解的"只有第一次看到才算数"。
④ 如果计数器 = N 分支执行任务:任务顺序改了只改计数器编号。本质是状态机雏形。
(实物赛才用双灰度传感器巡线:数字大=白地、数字小=黑线;某侧压到黑线就往那一侧修。左右修正方向随安装方式变,必须跑一次验证,不要给口诀。)
三条硬约束必须写进手册:① 脱线 = 任务中止,宁可慢不可快;② 路线随机,禁止"按时间/按里程盲走",必须靠传感器实时巡线;③ 成绩可多次提交取最高,别一跑通就交。
第 5 步:产出 HTML 备赛手册
单文件自包含 HTML,嵌套内联 SVG 图示(场地示意图 + 程序积木栈),不要引外部资源。固定九章结构:
- 这是个什么比赛(基本信息表 + 一句话点破误解)
- 要完成哪些任务、值多少分(任务卡 + 场地 SVG + 计分公式 + 目标分表)
- 准备工作清单(信息确认 6 项 / 器材清单 / 合规自检表逐条打勾 / 家庭训练场地)
- 编程思路(孩子版白话 + 积木清单表 + 两条技术路线对比 + 调参三步法)
- 遥控段作战计划(按任务分部,标注"为什么排这个顺序")
- 比赛当天行动剧本(从签到到终场的时间线 + 孩子要背的口诀)
- N 周训练计划(每周目标 + 可填写验收标准 input)
- 红线清单(违规表格 + 单独给家长的一条提醒)
- 附录:打印用记录表(参数记录 / 现场调试 / 得分记录 / 装备检查)
设计要点:
- 面向家长 + 面向孩子两套语言。规则用表格,编程讲解用 给乐乐的话 引用块(大白话 + 生活类比)。
- 参数示例必须标注"示例值,需实测",不能把示意秒数写成建议参数。
- 结尾加"关于本手册的说明":声明依据哪个赛季规则、哪些内容以现场公布为准、规则更新周期。
- 孩子要背的口诀要短,3–4 句,写成醒目卡片。
同时给用户回两张内联图:场地任务分布 SVG + 自动段积木程序 SVG。
第 6 步:沉淀
- 把规则事实(任务/分值/器材红线/信源 URL)写进工作区
.workbuddy/memory/YYYY-MM-DD.md,便于下赛季复用 - 手册 HTML 存到工作区根目录,用
present_files呈现
常见坑
- 不要把不同赛项的红线混用。 同系列里对抗赛项可能允许 3D 打印件和胶带,普及赛项可能完全禁止。
- 不要照抄去年规则的数值。 分值和时间分配每年会微调,手册里要写明依据的赛季版本。
- 不要假设低龄组编程量大。 先看自动/遥控时间比。但一旦确认是虚拟赛,结论正好相反 —— 编程量是最大的。
- 不要凭"主题名"推断规则,也不要凭"实物/虚拟"二分就下结论。 同一个主题名可能对应三套以上规则。以「星际巡航」为例:北京赛虚拟版(180 秒 / 5 个基本任务 / 满分 300)、VR 数字机器人赛版(基本 5 + 随机 3 + 附加任务)、实物版(180 秒 / 场地 3000×2000mm)。所以必须确认到 赛事 + 平台 + 组别 三级,并且从赛事页下载官方规则 PDF,不要用搜索摘要或第三方转载的规则来定参数。
- 低龄组常常是"任务删减版",先确认任务清单再决定要不要做机械结构。 北京赛星际巡航就是典型:小学低年级组不设随机任务(只做 5 个基本任务、满分 300),小学高年级组做 1 个随机任务,初中 2 个,高中 3 个。这直接决定"需要加装哪些机械结构" —— 漏看这一条会白做几个任务的结构件,也可能反过来漏掉唯一那个必须做的。
- 不要忽略"附加任务在调试开始前才公布"这类机制。 它意味着现场必须留出踩点和临时调整的时间。
- 虚拟赛不要默认"必须自己搭机器人",也不要默认"可以赛前搭好带进去"。 内置机器人是规则允许的起点;赛前预制的
.rsr搭建文件通常禁止导入。两条都以当赛季帮助手册 FAQ 为准,别凭推测答。 - 虚拟赛不要默认用双灰度传感器巡线。 RoboSim 的官方巡线方式是 AI 视觉模块 +
AI道路识别 偏移值(帮助手册有专章),照搬实物赛方案会多走一大圈。 - 不要把官方手册附录里的示例程序当完整方案照抄。 「附录二:视觉巡线」给的三版程序(二分/三分/比例)都只写了转向分量、
M1 = −M2,缺基础前进速度 —— 照抄会得到一台原地打转的车。手册附录往往是局部教学示例,不是可完赛的完整程序;引用时要标注"需补 X"并让用户实测。 - 加装方案要先看规则用的动词。 "推/挡"→ I 形推板;"拾取/投送/携带/抬升"→ U 形兜。只按"推板"一个词给方案,会在需要"带着模型走一段"的任务上翻车。
- 家长提醒要具体。 "不能帮忙"太抽象,要写"从进准备区到比赛结束,可以看,不能出主意,不能上手"。
- 虚拟赛手册要单独加"调试方法论"一章(开始调试 / 数据面板 / 一次只改一个数字 / 参数扫描 / 录屏回看),这是虚拟平台相对于实物的最大增量价值,不写就浪费了。
产出物命名约定
- 通用备赛手册:
<赛项名>-小学低龄组备赛手册.html - 现场速查卡(用户已在场地、需要照着做):
<赛项名>-现场启动速查卡.html,移动端优先、大字号、带可勾选清单 - 纯编程指导(用户用仿真平台时):
<平台名>-编程思路手册.html - 赛事锁定后重写的针对性手册:
<赛项名>-<赛事名><组别名>-编程手册.html - 专题补充手册(回答用户后续具体技术追问,如"AI 视觉怎么编程""加装什么"):
<赛项名>-<主题>-补充手册.html,沿用主手册的同一套 CSS 变量,保持系列一致
配套内联图:实物赛 = 场地任务分布 SVG + 自动段积木程序 SVG;虚拟赛 = 巡线控制律对照 SVG(二分/三分/比例三栏 + 需要补的项)+ 加装结构俯视图 SVG(车身/驱动轮/推板/任务模型 + 尺寸红线)。
写专题补充手册时,每个结论都要带出处页码("帮助手册 P35 原文""规则 P4"),并把推断项显式标成"待实测"——用户在赛场上是照着做的,含糊会让"推断"被当成"官方规定"执行。