全国大学生智能汽车竞赛办了快二十年从最早围着赛道黑线跑的摄像头车到后来的电磁感应、直立平衡、双车协同再到现在的智能视觉、单车拉力、完全模型赛题一年比一年花活多。我当年入坑在电磁组从绕电感线圈开始到调PID、磨轮胎、改机械结构一个备赛周期下来能把一个普通学生从只会点亮LED锻炼到敢独立负责一套软硬件系统。这个比赛最迷人的地方也在这里赛题年年变但底层的工程能力要求一直没变。这篇文章想把历届智能车竞赛的赛题清单和变迁逻辑梳理清楚帮还没接触过比赛的同学建立一张赛题地图让准备参赛的队伍能照着这份地图选组、定方案。内容不是官方规则的简单搬运而是从一个过来人的角度把赛题演变的脉络、各分组的技术内核、以及备赛时最容易踩的坑都拆开讲一遍。1. 竞赛背后的赛题观智能车到底在考什么很多新手第一次看智能车竞赛规则时容易被一堆限制条件搞懵车模只能用官方指定的那几款、主控芯片必须在某个系列里选、传感器数量有上限、赛道元素每年还会换。为什么主办方要搞得这么不自由因为这场竞赛本质上考的并不是谁的车跑得快而是谁能在各种约束下做出一套高可靠性的自动控制系统。1.1 赛题设计的底层逻辑智能车赛题每年都会围绕感知—决策—执行这条链路做文章。感知环节解决车从哪里来、要往哪里去的问题电磁组用电感感应磁场、摄像头组用图像识别赛道、光电组用红外对管检测黑白反差决策环节负责把感知到的信息换算成控制量比如赛道偏差转成转向舵机的PWM执行环节则是电机、舵机、驱动电路把这些控制指令真正变成车轮的转动。赛题变化的核心思路其实就是在这条链路上不断增加难度和约束。有时候是在感知端制造干扰比如赛道旁边放金属护栏有时候是在执行端增加不确定性比如要求车在坡道、颠簸路面行驶有时候是在系统层面提出新问题比如双车之间要通信、直立车要先稳住再跑。1.2 四件必做的事感知、控制、机械、策略虽然每年的组别名称和任务花样百出但参赛队真正要解决的始终是四件事。感知获取赛道信息。这是所有组别的起点传感器选型、信号调理、数据滤波都算在这一块。控制把感知结果转化为稳定的行驶。PID是最核心的算法速度环、转向环、直立环都是从这里衍生出来的。机械车模不是拿来就能用的轮胎、底盘高度、重心、悬挂都要反复调。很多队伍算法写得很漂亮但车一跑快就抖问题往往出在机械。策略赛道元素怎么处理、什么时候加速什么时候减速、双车怎么配合这部分越到后面的赛题占比越重。把这四件事拆开了想再回头看历届赛题就会清楚很多所谓新赛题不过是在某一个维度上加了新的约束而已。2. 历届赛题演进从三条黑线驶向人工智能历届赛题最直观的变化是组别越来越多。早期一个组别扛天下后来稳定在三个基础组再往后不断加入平衡、双车、信标、越野、模型、视觉等新玩法。下面按时间脉络梳理出几个关键阶段。2.1 单组起步与三组鼎立2006年首届比赛在清华大学举办当时只有一个摄像头组车模靠着摄像头识别赛道中的黑色指引线绕场跑圈。2007年第二届在上海交通大学举办增加了光电组用光电传感器对赛道黑白颜色进行检测不再依赖图像信号处理更直接响应也更快。2008年第三届在天津工业大学举办电磁组正式亮相通过车模上的电感线圈感应赛道中心导线产生的交变磁场来寻线。从那时起摄像头、光电、电磁三大组别就稳定了下来一直到今天都作为基础组别存在。三组传感器形态完全不同一个靠图像、一个靠反射光、一个靠磁场感应但最终目标都是提取赛道中心线的横向偏差。竞赛圈里常说一句话三组是基础后面的花活都是在这三组能力上叠加出来的。2.2 平衡与创意的分水岭2010年前后赛题从单一跑圈开始向控制难度拓展。第六届比赛在西北工业大学举办时增加了创意类赛题允许队伍脱离统一车模做更开放的机器人方案。随后真正的分水岭来了直立平衡车入赛。传统四轮车只需关注转向和速度直立车天生不稳定必须在静止状态下平衡再在平衡中前进控制周期短、算法耦合度高。当时很多队伍第一次意识到原来代码写得不好车连站都站不起来。这一阶段也让比赛的参与门槛和技术含量同时上了一个台阶民间戏称能跑直立车的队伍PID功夫基本都过关了。2.3 多车、信标与越野的加入到了2015年前后赛题开始从单车跑圈走向多车协同与场景泛化。信标组出现后车不能在赛道上一路闷头跑了而是要感知场地中被点亮的信标灯位置自主规划路径冲过去完成任务获得得分现场随机性一下子拉满。双车接力/双车追逐组别则引入了通信前后两辆车要在行驶过程中交换状态信息完成超车、避让或接力。越野组则把赛道从平整木板换成草地、沙石、坡道车辆动力学和机械可靠性成了首要矛盾。这个阶段明显能感觉到赛题越来越像一个缩小的真实机器人应用场景而不是单纯的竞速刷圈。2.4 智能化改制后的多组别格局2020年前后竞赛经历了一次比较大的改制。以第十六届为典型代表组别从传统的电磁、光电、摄像头扩展为八个方向包括基础四轮、全向行进、直立信标、双车接力、电磁越野、单车拉力、智能视觉、完全模型。这次改制释放了两个强烈信号第一视觉和AI成了重点智能视觉组里开始允许使用摄像头配合轻量级深度学习模型比如用K210、OpenMV等边缘设备完成数字识别、颜色识别、目标检测第二算法权重向模型化转移完全模型组直接提供官方整车模型参赛队伍把更多精力放在算法部署和调参上。赛道任务也慢慢从跑得快转向跑得巧、认得准。下面这张表是我根据公开资料和业界记忆整理的代表性节点主要看组别的增加脉络具体某届的全部细则还是要以当年官方规则为准。年份/届次举办地/形式赛题/组别的变化节点2006 / 第1届清华大学摄像头组起步2007 / 第2届上海交通大学增加光电组2008 / 第3届天津工业大学增加电磁组2011 / 第6届西北工业大学创意类赛题出现2013 / 第8届哈尔滨工业大学直立平衡车入赛2015 / 第10届山东大学信标、节能等新玩法出现2017 / 第12届常熟理工学院双车、越野等组别逐步加入2020 / 第15届以线上答辩与分赛区结合为主远程调试、文档答辩权重提升2021 / 第16届哈尔滨工业大学承办八大组别改制智能化方向明确3. 主要赛组的技术内核老车手视角的拆解组别清单只是表面每组背后都对应一套完整的技术栈。下面挑几个主流组别用我实际调车的视角说说它们到底在考什么。3.1 电磁组模拟信号与阈值艺术电磁组是我最熟的地方。它的原理是通过车头排布的多个电感线圈感应赛道中心通有交变电流导线产生的磁场。具体来说导线里通常通几十到一百kHz级别的交变电流线圈在磁场中产生感应电动势距离导线越近电压幅值越大。把各电感的感应电压做归一化、求差就能得到车相对赛道中心的横向偏差。实操中最容易翻车的点有三个。一是电感一致性同一个批次绕出来的线圈感值、Q值都可能不一样上车前要逐个测试配对不然左右信号不对称车永远跑不直。二是信号调理感应出来的电压很小必须经过选频放大、整流滤波后才能进MCU的ADC布线时要注意避开电机大电流回路否则会出现一加速信号就飘的灵异现象。三是动态阈值比赛现场和实验室的电磁环境不同不能把阈值写死我会在代码里做一个开机自校准把空采的底噪先采一遍。控制上电磁组对转向环的反应速度要求很高常见的做法是偏差映射到PD输出速度环再做闭环。这里有个经验不要一上来就追求高速先把低速下的中线跟踪跑稳再逐步提高目标速度每提一档都要重新检查转向增益和前瞻距离。3.2 摄像头组从二值化到深度学习摄像头组的技术演进最能反映竞赛的内卷程度。早期大家用低分辨率灰度摄像头把图像二值化后提取黑白交界线再拟合出赛道中线后来开始做透视变换、动态阈值、边缘跟踪、补线处理把弯道和十字路口识别得明明白白再往后部分队伍直接用摄像头配合轻量级神经网络做端到端控制或者目标检测。给新手两个非常现实的建议。第一摄像头安装角度和高度直接决定前瞻距离前瞻太近高速过弯时根本来不及转向前瞻太远图像上赛道信息太少容易丢失目标。我用过的最佳范围是把能看到车前1.2米到2米左右赛道作为初值然后根据最高速度微调。第二图像处理要算清楚每一帧的耗时不是分辨率越高越好。一帧640x480的灰度图如果处理算法跑20ms那控制周期就变成了20ms高速时可能已经冲出去几十厘米建议把图像处理放在DMA传输完成的中断里用双缓冲减少等待时间。摄像头组的终极难点是鲁棒性现场光线、反光、赛道新旧程度都会让同一套阈值失灵。我在比赛前的做法是把白天、晚上、晴天、阴天的图像各存几十帧离线跑一遍处理流程检查哪些场景会丢线再针对性地加全局阈值、局部自适应阈值和赛道边线丢失后的预测补线。3.3 光电组传感器阵列与响应速度光电组是三个基础组里门槛最低、但想跑好也不容易的。核心元器件是红外对管有的组用反射式光电传感器有的用激光管加光敏接收。一组对管只能告诉你我下面是不是黑线要感知更宽的赛道信息就得排阵列。阵列排布有直排、弧形排、V字排几种方案弧形排在我试过的方案里综合效果最好因为可以同时兼顾左右两个方向的检测范围弯道信息更丰富。传感器的供电和采样也要注意红外发射管电流越大检测距离越远但会发热、寿命下降驱动电路要做好限流。光电组调试时最直观的坑是黑白阈值的漂移。不同光源下白色赛道的反射值差异很大我通常不开启动态阈值而是用软件在每一行独立计算最大最小值的中间点做判断这样即使环境光变化也能保持不错的适应能力。另外光电组的速度控制比电磁组更容易出现跳变因为传感器的离散特性导致偏差信号不平滑我会在偏差进入PID前先加一阶低通滤波让转向输出更柔和。3.4 直立组串级PID与控制周期直立车是把静态不稳定系统搬上了赛道。车模只有前后两个轮子着地车体必须实时通过后轮加减速产生力矩来维持平衡。它的控制结构通常分三层直立环、速度环、转向环。直立环是整个系统的基础一般用陀螺仪测角速度、加速度计融合出角度形成角度-角速度的双闭环PD控制。速度环在直立环外面通过编码器测速让车既能平稳定住也能按照给定速度前进。转向环则通过差速实现转向。三环的计算顺序是读传感器→算角度→算直立环输出→算速度环输出→算转向环输出→合成PWM输出。直立组调试有三个原则我反复跟学弟们强调。第一先让车能站稳再谈跑车都站不稳的时候不要想着加速度环。第二控制周期要尽量短直立环通常要跑到2到5ms一次如果主控还有图像处理任务就涉及任务调度别把所有功能都塞进一个中断里。第三陀螺仪零漂要开机校准我习惯在车上电后保持静止2秒采集零偏否则角度融合会慢慢漂移车跑着跑着自己歪掉。3.5 双车接力组通信与协同策略双车组有意思的地方在于它从单车控制跳到了多智能体协同。前车和后车在同一个赛道上行驶要完成避让、超车或接力交接核心是两车之间的实时通信和策略配合。通信方案常用的是24GHz频段的NRF24L01模块或者蓝牙模块通信距离不大但够用关键问题是丢包。比赛现场人多、无线设备多信道干扰很常见。我曾经遇到过前车已经完成超车动作后车却因为通信延迟多等了半秒整个节奏全乱。解决思路有三层第一层发送频率适当提高但数据量要精简最好一帧只打包4到8个字节第二层接收端做超时保护超过一定时间没收到数据就执行保守策略比如减速靠边避免撞车第三层策略上用场景触发代替每秒同步让后车自己根据传感器判断前车大致位置通信只做辅助确认。双车组的另一个难点是调试复杂度翻倍。单车出问题还能用上位机看波形双车出问题经常是互相影响的耦合故障我建议先把两车分别跑稳再联调通信和策略一步步引入配合动作。3.6 信标组定位、调度与能量管理信标组的规则是场地上随机点亮信标灯车需要自主探测到点亮的信标开过去碾压或触发后获得得分然后下一个信标再点亮。这个赛题最大的变化是赛道不是固定的车在场地上的路径完全由实时感知决定接近真实机器人中的事件驱动型任务。技术上有三条线。第一条是信标检测可以通过接收无线信号强度差、摄像头识别灯光、或者超声波定位来确定目标方位实际中我见过很多队伍用几个接收管配合三角定位简单直接。第二条是路径规划场地是长方形车每次出发都需要重新规划到当前信标的最优路径如果只靠看着信标一直冲很容易跑偏要结合编码器航迹推算做修正。第三条是能量管理信标组允许使用更大容量电池但车越重加速越慢要在电池容量和整车重量之间找平衡。信标组的调试心态也要调整它不是刷圈竞速思维而是任务完成率思维。我见过有队伍把每一个信标都追上但总得分不如跑得慢却从不失误的队伍高稳定性在这里远比极速值钱。3.7 单车拉力组自平衡动态系统单车拉力是近几届比较吸引眼球的新组别车模只有一个轮子接地本质上和直立车一样是自平衡问题但平衡维度更复杂除了前后平衡还有左右侧向平衡。陀螺仪和加速度计的融合、转向舵机的主动摆角控制、速度跟随都要做到非常精细。这类车调试起来比四轮车磨人得多因为系统本身是不稳定的一旦控制失效车会直接倒地机械结构很容易损坏。我的建议是先保证摔车保护用泡沫垫包围车架关键部位或者搭建一个可调节的辅助支撑架来限制倾角范围让初版控制能在安全条件下跑起来。之后再逐步放开限制。算法层面除了常规PID很多队伍会引入LQR或简单的模型预测控制核心在于把状态估计做得干净。3.8 智能视觉与完全模型组AI部署与算力管理这两个组别是智能化改制后的重头戏。智能视觉组在传统赛车基础上加入了AI任务比如识别赛道边的数字标志、区分颜色目标、避让特定障碍物主控芯片从原来的车规级微控制器升级到带有NPU的轻量级AI芯片或高性能MCU像K210、OpenMV、树莓派都成了常见选择。完全模型组则更进一步官方直接提供整车模型和固定主控各队拼的是算法工程能力和调参功力。这种硬件同质化的赛制反而把竞赛拉回了算法和系统工程本身对没有太多硬件加工条件的学校比较友好。做这两个组别时我在工程上有一个深刻体会AI模型不是越准越好而是要算准推理延迟。你用一个跑140ms一帧的目标检测模型哪怕精度再高车也来不及反应。我建议把模型量化为int8把输入分辨率控制在合理范围并用计时器实测每一帧总耗时确保控制周期在50ms以内再谈效果。另外视觉任务一定要做数据增强比赛现场的灯光、角度和实验室不同临场采集正样本再微调往往比训练时堆数据更有效。4. 备赛工程化经验让小车稳定跑完一圈才是王道赛题和组别再变化备赛的底层方法论是相通的。我在这个部分写一些通用的工程化经验对任何组别都适用。4.1 选组、选型与实验室技术积累选组的时候不要只看哪个组够新够炫先看实验室有什么积累。如果你们实验室有前辈留下的摄像头车底盘和图像处理代码起步就会快很多如果指导老师更擅长模拟电路电磁组可能更合适。我见过太多队伍在备赛中期发现技术路线走不通临时换组结果浪费了整整一个多月。芯片选型要围绕官方限制来。比赛对主控有明确规定通常要求使用指定厂商的某系列MCU所以别想着用自己最熟的STM32一路上做到底要提前看好你选组别支持的芯片有哪些尽早买好最小系统板和外设模块。电子器件的渠道稳定性和库存也很重要热门芯片在备赛高峰期可能断货我会在立项阶段一次性把关键物料清单列出来优先采购交期长的器件。4.2 电路与机械的细节决定上限电路设计上很多人一开始觉得反正核心板现成的传感器模块也是现成的画个底板接一接就行实际跑起来就露馅了。电机启动瞬间的大电流会拉低电源电压如果传感器的供电和电机驱动共用同一个稳压通道图像会抖动、ADC会跳码。我画电源树时会坚持动力电和逻辑电分离电池电压先到驱动板再通过DC-DC降压给MCU和传感器单独供电各模块的滤波电容一定要靠近电源引脚放。机械方面容易被忽视的有三个点轮胎、底盘、重心。新轮胎表面有一层脱模剂抓地力很差要用砂纸和清洁剂仔细处理底盘高度决定了整车经过坡道、路肩时的通过性太低了会卡住太高了重心不稳重心的位置直接影响转向响应的灵敏度和高速过弯的稳定性。调车时我会在底板上贴上小块配重泥一边跑一边微调重心直到弯道表现明显改善。4.3 调试方法论控制周期与参数标定顺序控制周期的概念很多新手一直没有真正重视。举个例子如果你的控制主循环跑一圈要10ms那就意味着车每秒只有100次机会修正方向在2m/s的速度下相当于每20mm才校正一次这个距离已经足够让赛车冲出赛道了。所以写代码时要有明确的周期意识把传感器采样、数据处理、控制计算放到定时中断里主循环只做状态切换和显示。参数标定要遵循由内到外、由低速到高速的顺序。先调内环比如直立环或速度环让系统本身稳定再调外环比如转向环或路径跟踪让车能跟踪目标最后才是综合提速。每次只改一个参数改完要记录现象和数据不要凭感觉把几个参数同时调来调去否则出了问题根本不知道是哪个参数引起的。我强烈建议用上位机录下偏差、输出、速度这些实时曲线肉眼观察和对比比在赛道边上看车跑要靠谱一百倍。4.4 时间规划与团队分工实战建议智能车备赛的典型周期是6到12个月中间还穿插着期末考试和假期时间规划做不好最后很容易变成熬夜赶车。我建议把时间分成三个阶段。第一阶段前两到三个月做平台搭建车模组装、驱动调试、传感器采集、基础PID跑通。第二阶段中间三到四个月做性能提升速度爬坡、赛道元素专项处理、机械和算法迭代。第三阶段最后一个月做鲁棒性冲刺反复跑场地、模拟比赛环境、准备现场调试方案和应急备件。团队分工上三到四人比较理想一人盯硬件电路和机械一人盯底层驱动和信号处理一人盯控制算法和策略如果队伍里有第五个人负责文档、时间节点和现场物资比赛期间会轻松很多。一定要约定代码版本管理哪怕只是用Git在本地仓库提交也能避免改坏了回不去的悲剧。5. 常见问题与避坑记录这部分是我自己带队伍过程中反复遇到的问题整理成了一张速查表希望能帮大家少走弯路。问题现象常见原因排查与解决办法车一加速就跑偏或冲出赛道转向环路超前量不足、PID参数没跟上提速降低速度逐步提档每提一档重新调转向增益检查前轮束角和舵机中位电磁信号在电机启动后跳变电机干扰通过电源耦合进传感器回路动力电和逻辑电分离供电信号线用屏蔽线加LC滤波采样时序避开PWM开启瞬间摄像头画面反光导致丢线赛道表面反光、阈值不适用动态阈值或局部自适应阈值改变摄像头安装角度降低曝光使用偏振镜片直立车静止时发抖角度微分噪声放大、控制周期过长角速度数据加低通滤波控制周期压缩到5ms以内检查陀螺仪安装是否牢固双车通信时好时坏无线信道干扰、天线位置不佳加密发送内容发送端加序号和校验接收端做超时保护天线尽量远离电源线并朝向一致信标车找不到目标传感器定向性差、检测距离不足增加传感器灵敏度改用多个接收管融合判断用摄像头辅助初步定位电池续航快速下降大电流放电导致压降严重、电池老化使用高倍率航模电池避免过放充电后静置再上场备用电池做好保温代码改了之后车突然完全不动大概率不是算法问题而是线松了/芯片烧了先查硬件供电和最小系统再查传感器波形最后才怀疑代码不要盲目回退版本5.1 赛车跑飞类问题跑飞是每个智能车人都经历过的至暗时刻。比赛时最怕的不是跑得慢而是跑着跑着突然冲出赛道。排查顺序我建议遵循机械—传感器—算法三层。先看轮胎是否磨损不均、底盘有没有在碰撞后变形再用上位机看传感器数据赛道中线提取是否正常最后才调转向PID。很多情况下跑飞不是算法问题而是某个螺丝松了导致传感器支架角度变了。现场比赛还有一个非常实际的建议把车上的关键参数做成开机菜单可以快速切换保守和激进两套参数。试跑时先用保守参数确认赛道元素没大问题后再切激进参数冲成绩。5.2 通信与供电类问题供电问题往往藏在最难排查的地方。电池刚充满和快没电时电机输出的特性差异很大我遇到过因为电池电压下降导致舵机打角力度不足连续冲出去三次的情况。这个问题的根本解法是给速度环做闭环不要直接给定PWM占空比而是给定目标速度让速度环去补偿电压变化。另外通信模块的供电纹波也会导致随机丢包我会在通信模块的电源脚上并联一个大电容虽然听起来很基础但真的救过急。5.3 调试环境与现场应变类问题比赛现场和实验室差异最大的永远是光线、场地摩擦系数和电磁干扰。我建议在赛前几天把场地调试时间全部利用起来尽量在比赛场地相同光源条件下采集图像数据重新校准阈值和电磁基准。现场如果出现实验室没见过的赛道元素最忌讳现场改大量代码应该依靠程序里预留的通用策略兜底比如丢失赛道线就减速直行两秒靠另一边重新找线这种兜底逻辑。6. 写在最后赛题会变工程能力永不过时我个人做了这么多年智能车最深的体会是比赛成绩固然重要但备赛过程中锻炼出来的那套系统工程思维才是真正带得走的东西。赛题从电磁寻线改到智能视觉从单车跑圈改到多车协同变化的是传感器和控制任务不变的是你对需求分析—方案设计—分模块实现—联调测试—现场应变整个流程的掌控感。如果你正准备第一次参加我的建议很简单先别想着拿全国奖先把一台车用最朴素的方式跑完一圈。做到这一点你就已经超过了一大半没坚持到最后的队伍。后面再继续打磨细节一辆一辆地调一圈一圈地跑成绩会在不知不觉中爬上来。希望这份赛题地图能帮你少走一点弯路也希望明年赛场上能见到你的车。