电子科技大学智能车光电组技术解析:从PID控制到系统调优
1. 项目概述:一场关于速度与策略的硬核竞技
如果你对嵌入式开发、自动控制或者机器人竞赛感兴趣,那么“飞思卡尔智能车竞赛”(现已更名为“全国大学生智能汽车竞赛”)这个名字你一定不陌生。它不仅仅是一场简单的模型车比赛,而是一个融合了机械、电子、控制、算法、图像处理等多学科知识的综合性工程实践平台。今天,我想以一个过来人的视角,和你深入聊聊这个竞赛中一个极具代表性的组别——光电组,并聚焦于电子科技大学这支传统强队,看看他们是如何将一辆看似普通的模型车,打造成一个在赛道上风驰电掣、精准无比的“智能体”的。
光电组,顾名思义,其核心的赛道识别传感器是光电传感器,主要是激光管或红外发射接收对管。与摄像头组通过图像处理来“看”赛道不同,光电组更像是用一排“手指”去“触摸”赛道边缘。这种方案听起来更直接,但要做好却极具挑战性。它要求极高的实时性、稳定的信号处理和精准的控制算法。电子科技大学(成电)的队伍在这个组别中屡创佳绩,他们的技术方案和工程实现,往往代表了当年竞赛的最高水准之一,是很多参赛队伍学习和研究的对象。通过拆解他们的技术脉络,我们不仅能理解智能车竞赛的精髓,更能学到一套完整的、从传感器到执行器的嵌入式系统开发方法论。
2. 核心赛道感知方案:从“点”到“线”的精确重构
光电组的灵魂在于其前瞻的传感器布局。这绝不是简单地把几个红外对管排成一排那么简单,其背后的设计与权衡,体现了深厚的工程智慧。
2.1 传感器布局策略与信号调理
主流的方案是采用一排(通常是16-24个)红外发射接收对管,以一定的间距横向排列在车头前方,形成一个“触须阵列”。每个对管独立工作,发射红外光并接收从地面反射回来的光强。黑色赛道(通常是电工胶带)和白色背景(通常是KT板)的反射率差异巨大,从而可以判断每个传感器下方是黑线还是白底。
注意:这里有一个关键细节——环境光干扰。比赛现场灯光复杂,日光灯、窗户自然光都会严重影响红外接收管的读数。因此,调制解调技术是必选项。即让红外发射管以特定频率(例如38kHz)闪烁,接收端只解调该频率的信号。这能极大抑制环境中的恒定光或低频变化光的干扰。成电的队伍在硬件滤波电路的设计上非常考究,通常会使用专门的调制芯片(如PT1301)和解调芯片(如CX20106A或一体化接收头),配合RC滤波电路,确保收到的信号是干净、稳定的数字量或高线性度的模拟量。
传感器的布局间距和前瞻距离是需要精心计算的。间距决定了横向分辨率,太宽会漏检细小的弯道,太密则增加成本和信号处理负担。前瞻距离则直接影响控制的前瞻性:前瞻太远,近处的赛道信息不足,过急弯容易内切;前瞻太近,留给控制系统反应的时间太短,速度提不起来。成电的方案往往采用“中间密,两边疏”的非均匀布局,中间区域传感器密集以提高中心线定位精度,两边稀疏以覆盖更宽的赛道范围,同时在前方更远处布置少数几个“远见”传感器,用于提前感知弯道趋势。
2.2 赛道信息提取与中线计算
得到一排传感器的二值化(黑/白)或模拟量数据后,下一步就是重构出赛道的中心线。这是控制算法的输入基础。
最经典的方法是“差值法”或“重心法”。假设我们有8个传感器,从左到右编号1-8。当车在直道上居中行驶时,可能是传感器4和5处于黑白边界。我们可以计算黑线中心的位置。例如,采用模拟量时,将每个传感器的AD值(代表黑度)与其位置坐标加权平均,算出一个“黑线重心”坐标。这个坐标相对于传感器阵列中心的偏移量,就是当前车体相对于赛道中心线的横向偏差。
对于数字量(0或1),常用“跳变沿检测法”。找到从0到1和从1到0的跳变点,这两个跳变点的中间位置即认为是黑线边缘,再根据已知的赛道宽度,推算出中心线位置。成电的代码中,会对跳变点的搜索进行鲁棒性处理,比如需要连续多个点确认才判定为有效跳变,防止单个传感器误触发导致中线计算抖动。
更高级的策略是进行“赛道记忆”和“预测”。在过十字、环岛等特殊元素时,传感器可能会短暂丢失赛道。此时,系统会依据前一刻的赛道曲率和车身速度,预测未来一小段时间内的赛道走向,维持稳定控制,直到传感器重新捕获有效信号。这种策略的引入,是队伍能否处理复杂赛道的关键。
3. 控制系统的核心:PID与更优算法的实战演化
有了精确的赛道中心线偏差(横向偏差E及其微分dE),接下来就是如何驱动舵机打角,控制电机速度,让车沿着这条中心线跑。
3.1 经典PID控制的深度调参
PID(比例-积分-微分)控制器是智能车控制的基石,看似简单,调好却极难。成电的技术报告里,往往会详细阐述他们PID的独特用法。
- 比例(P)控制:核心。
Output = Kp * E。偏差越大,舵机打角越大。Kp过小,车反应迟钝,过弯时纠偏无力,容易冲出赛道;Kp过大,车会在中心线附近高频振荡,像“画龙”一样。成电的队伍通常会根据车速动态调整Kp:直道、低速时用一个Kp,入弯、高速时用另一个更大的Kp以快速响应。 - 微分(D)控制:灵魂。
Output += Kd * dE。dE是偏差的变化率,代表了偏差未来的趋势。它能抑制振荡,提高稳定性。在高速过弯时,D的作用至关重要,它能提前给出反打方向的力矩,防止车辆因惯性甩出。调Kd时,需要关注车的“姿态”,观察车头是平滑跟随还是剧烈抖动。 - 积分(I)控制:双刃剑。用于消除静态误差。但在智能车这种快速动态系统中,
I项很容易积累导致超调,甚至引发振荡。因此,很多队伍会弱化甚至不用I,或者采用“积分分离”策略:只有当偏差E小于某个阈值时,才引入积分,用于微调居中;偏差大时,则清除积分,防止积分饱和。
实操心得:调PID没有银弹,必须上车实测。一个有效的方法是“阶跃响应法”:让车静止,手动给它一个固定的横向偏差(比如用手把车推到偏离中心线5cm),然后松手让它自己回正。观察其回归中心线的过程:是缓慢爬回、快速振荡还是平稳迅速?根据响应曲线来调整
Kp和Kd。记住,先调P直到出现轻微振荡,再加D抑制振荡,最后考虑I。
3.2 进阶控制策略:串级PID与模糊控制
在追求极致性能时,单一的位置式PID可能不够用。成电等强队会采用更复杂的架构。
串级PID:这是非常经典且有效的进阶方案。外环是“方向环”,输入是赛道中心线偏差,输出是一个“期望舵机角度”或“期望前轮转角”。内环是“舵机环”,输入是外环输出的期望角度与舵机当前实际角度的偏差,输出是直接给舵机的PWM信号。这样做的好处是将控制任务分解,内环专门负责让舵机快速、准确地执行角度指令,外环则专注于路径跟踪的策略。内环的存在使得舵机响应更快,系统更稳定。
模糊控制:对于一些非线性、模型难以精确描述的系统,模糊控制有奇效。成电的队伍曾尝试过将模糊逻辑与PID结合。例如,根据偏差E和偏差变化率dE的大小,模糊划分为“大正”、“小正”、“零”、“小负”、“大负”等语言变量,然后通过一套经验规则(如:如果E为正大且dE为正小,则控制输出为负大),动态调整PID的参数或直接给出控制量。这种方法在应对突然出现的急弯(S弯)时,有时比固定参数的PID更平滑。
4. 机械调校与运动优化:让算法“脚踏实地”
再好的算法,也需要一个稳定可靠的硬件平台来承载。机械是智能车的“身体”,调校不好,控制算法事倍功半。
4.1 车模机械结构的关键调整
- 重心与质心:这是最重要的机械参数。重心要低,前后左右分布要合理。通常会将最重的电池放在车体中部靠下的位置。低重心能减少过弯时的侧倾,提高抓地力。通过前后移动电池或主板位置,可以微调车的前后重量分配,影响车辆的转向特性(不足转向或过度转向)。
- 前轮定位参数:
- 前束:从车顶看,两个前轮前端距离与后端距离的差值。轻微的前束(Toe-in)有助于提高直行稳定性,但会增加转向阻力。智能车通常设置为0或极小的前束。
- 主销后倾:转向主销上端向后倾斜的角度。它能产生回正力矩,让车在转弯后自动回正。成电的车通常会通过加装垫片等方式,设置一个适度的主销后倾角。
- 主销内倾:转向主销上端向内倾斜的角度。主要与车轮接地点的偏移量有关,对智能车影响相对较小,但也会影响回正力和转向手感。
- 悬挂与减震:原车模的悬挂通常较软。在高速过弯时,车身侧倾会导致内侧车轮抓地力下降。强队会加固悬挂(如更换更硬的弹簧,或用碳杆限位),甚至改用刚性连接(即“硬悬挂”),牺牲一些对路肩的适应性,换取过弯时极其稳定的车身姿态。
4.2 轮胎处理与差速调整
- 轮胎打磨与软化:新轮胎表面光滑,抓地力不足。需要用砂纸均匀打磨胎面,去除光泽层,增加粗糙度。更“玄学”的是轮胎软化:使用特定的溶剂(如四氯化碳、乙酸乙酯等,需在通风环境并注意安全)涂抹轮胎,使其橡胶软化,能在赛道上“粘”得更牢。成电的队员在这方面有大量的经验,对溶剂的配比、涂抹次数和晾干时间都有严格流程。
- 差速器调校:后轮差速器的松紧直接影响动力输出和过弯性能。差速太紧(阻尼大),两个后轮转速差小,过弯时内侧轮阻力大,容易推头(转向不足);差速太松,动力损失大,出弯加速无力。需要通过调整差速器内的硅油浓度或填充物来找到最佳点。一个简单的测试方法是:抬起车,用手快速转动一个后轮,感受另一个后轮跟随转动的阻力和延迟。
5. 系统集成与实战调试:从实验室到赛道的最后一公里
当硬件组装完毕,基础代码跑通,真正的挑战才刚刚开始——系统联调与赛道适应性优化。
5.1 分层调试方法论
不要一上来就在完整赛道上全速测试。应采用分层调试法:
- 单元测试:单独测试传感器阵列,在静态下移动黑线,观察AD值或数字量变化是否准确、平滑。测试舵机,给定固定PWM,观察其转动角度和速度。测试电机,检查加速、减速是否线性。
- 开环测试:让车在赛道上慢速运行,不启用闭环控制,手动记录在不同位置(直道、弯道)的传感器数据和中线计算结果,验证感知模块的正确性。
- 单环闭环测试:先只调试方向控制环。固定一个很低的车速,让车自己循迹,专注于调好舵机的PID参数,让车能平滑稳定地跟随赛道,不冲出去也不振荡。
- 速度环集成:在方向稳定的基础上,加入速度控制。直道加速,入弯前减速,出弯加速。这里需要调试电机PID,以及速度规划曲线。
- 全系统优化:最后进行整体微调,处理方向与速度控制的耦合问题,优化过弯策略。
5.2 赛道元素识别与特殊处理
竞赛赛道不是简单的圆环,它包含十字、环岛、坡道、断路、障碍等元素。光电组识别这些元素主要依靠传感器阵列的特定模式。
- 十字路口:当传感器阵列检测到一条很宽的黑带(超过正常赛道宽度),且持续一定时间,即可判定为十字。策略是“冲十字”:保持进入十字前的方向和速度,直行通过。关键在于防止误判,例如弯道处可能因为前瞻传感器都看到黑线而误判为十字,需要结合历史路径信息进行滤波。
- 环岛:识别逻辑更复杂。需要检测到赛道一侧出现连续的黑线(环岛入口弧线),并可能伴随内侧传感器的特定变化。进入环岛后,需要切换控制模式,以内侧环岛边缘为基准进行循迹,并计数出口。成电的方案中,通常会有一个独立的状态机来管理环岛的进入、巡线和退出逻辑。
- 坡道与颠簸:坡道会导致车身仰俯,改变传感器距地高度,影响信号。需要通过软件补偿(如动态调整二值化阈值)或硬件手段(确保传感器支架刚性)来应对。颠簸路段则考验机械牢固性和控制算法的鲁棒性。
6. 常见问题排查与性能压榨技巧
在最后的冲刺阶段,解决问题和压榨每一毫秒的性能至关重要。
6.1 典型故障与解决方案速查表
| 现象 | 可能原因 | 排查思路与解决方案 |
|---|---|---|
| 车辆在直道“画龙” | 1. 方向P参数过大 2. 微分D参数过小或为0 3. 传感器前瞻过远或安装松动 4. 机械虚位(舵机臂、连杆松动) | 1. 逐步减小Kp,观察振荡是否减轻。2. 适当增加 Kd,注意引入微分可能会带来高频噪声,需配合滤波。3. 检查传感器支架是否稳固,尝试减小前瞻距离。 4. 紧固所有机械连接件,消除虚位。 |
| 过弯时总是冲出去(外切) | 1. 方向P参数过小,响应慢 2. 入弯速度过快 3. 重心太高或轮胎抓地力不足 4. 差速过紧,转向不足 | 1. 在弯道区域局部增大Kp。2. 优化速度规划,提前在入弯前减速。 3. 降低重心,处理轮胎(打磨、软化)。 4. 调松差速器。 |
| 过急弯时甩尾或spin(旋转) | 1. 方向D参数过大,或微分项计算噪声大 2. 出弯加速过早过猛 3. 重心靠后或后轮抓地力过强 | 1. 减小Kd,或对偏差信号进行低通滤波后再微分。2. 延迟出弯加速点,或降低加速斜率。 3. 微调重心稍向前移。 |
| 特殊元素(十字、环岛)误判或处理失败 | 1. 元素识别阈值设置不合理 2. 状态机逻辑有漏洞 3. 传感器在元素内短暂丢线,控制紊乱 | 1. 在赛道上反复测试,记录数据,精细调整识别阈值和条件。 2. 用串口打印状态机变量,模拟各种情况,确保逻辑完备。 3. 在丢线时,启用“记忆预测”功能,用上一周期的控制量短暂维持。 |
| 车速无法提升,或提速后不稳定 | 1. 电机PID参数未调好,加速无力 2. 电池电量不足,内阻增大 3. 机械阻力大(轴承、传动) 4. 代码循环周期过长,控制频率低 | 1. 单独调试电机闭环速度控制。 2. 使用充满电、性能好的电池,比赛前更换新电池。 3. 润滑轴承,检查齿轮啮合是否过紧。 4. 优化代码,减少不必要的计算和延时,确保控制频率在100Hz以上。 |
6.2 性能压榨的“黑科技”
在基础稳定的前提下,顶尖队伍会追求极致的优化:
- 动态参数表:根据赛道曲率(通过当前偏差和历史偏差估算)和车速,实时查表切换多套PID参数。直道用一套,弯道用另一套,大弯和小弯的参数也不同。
- 前瞻距离动态调整:高速时使用更远的前瞻以提前预判,低速过急弯时切换为近前瞻以提高对当前弯道的跟踪精度。
- 路径规划与切内弯:不仅仅是跟踪中线,而是在规则允许范围内进行最优路径规划。例如,在过弯时,让车稍微走内道,可以缩短实际行驶距离。这需要算法能够预测弯道形态,并生成一条期望路径,然后控制车去跟踪这条路径,而不是简单的中线。
- 代码极简优化:使用寄存器级操作、查找表代替复杂计算、将频繁调用的函数内联。甚至用汇编语言重写关键循环。确保中断服务程序(ISR)尽可能短小精悍。
回顾电子科技大学在光电组上的成功,其核心在于对“感知-决策-控制”这一闭环的每一个环节都做到了极致的深入理解和精细打磨。从硬件上稳定可靠的传感器电路,到软件上高效鲁棒的识别算法;从经典的PID控制理论实践,到机械上毫米级的调校;从单个模块的稳定,到整个系统在复杂环境下的协同。这不仅仅是一场比赛,更是一个完整的工程项目训练。它教会你的,是如何将一个复杂的多学科问题分解、建模、实现、调试并最终优化到卓越。这份经历,远比奖杯本身更为珍贵。
