☰
智能车竞赛两轮自平衡车调参攻略:从直线竞速到八字慢速
2026/9/25 5:02:39 网站建设 项目流程

参加智能车竞赛的同学,尤其是进了单车定向组备赛的,十有八九都会在同一个问题上卡很久:我的车为什么要么跑不快,要么慢不下来?这正是这类比赛的典型矛盾。单车本质上是一台两轮自平衡倒立摆,它只有在运动起来以后才能更容易保持稳定,可赛题偏偏要求它既要全力冲刺直线,又要在八字图形里稳稳地慢速绕行。这篇指南就围绕这个矛盾展开,我会从赛题理解、硬件选型、控制算法、调参流程和常见坑五个方向,把直线竞速和八字慢速这两条线的实操技巧一次说清。无论你是刚拿到车模的新队员,还是已经调了一两个月还在原地转圈的老同学,这篇内容都值得你边看边抄作业。

1. 赛题拆解:直线竞速和八字慢速,到底在比什么

1.1 快与慢背后的控制逻辑完全不同

直线竞速表面上比的是“谁速度快”,实际上比的是“谁能在极限速度下把直立、速度、方向三个环都压住”。车在高速状态下,陀螺仪角速度信号变化很大,直立环和速度环必须在几毫秒内作出响应,稍有一点振荡就会被放大成失控。这时候车像一辆跑在高速上的车,方向盘不能乱动,车身也不能乱晃。

八字慢速则反过来,赛题要求车以很低的转速绕过一个“8”形轨迹,比的是低速下的姿态稳定性和转向精确性。低速状态下,平衡车靠“身体前倾”前进的效果变弱,编码器在低速时脉冲频率低,测速容易波动,速度环会持续修正,一修过头车就开始原地点头。加上八字轨迹几乎全是弯道,方向环需要持续工作,稍有不慎车就会内切压线或者外甩失控。

所以这两个项目本质上是两个极端:一个考验控制周期的极限吞吐,一个考验低速反馈的精细程度。同一台车要同时应付这两种工况,难点不在于某一个算法有多玄,而在于三个闭环的参数能不能在快慢模式下都保持稳定。

1.2 一套硬件,两套思路

有队伍会天真地想在直线竞速时拆掉部分硬件,八字慢速时再装回去,实际上赛制基本不会给你这种机会。更靠谱的思路是做“一套硬件,两套软件参数”。机械结构上取中间值,不追求极端的轻量化,也不追求极端的抓地力;软件上则做成两种模式,比如直线模式使用更大的目标速度斜坡和方向死区,八字模式使用更低的速度目标、更灵敏的方向控制。

备赛时不要一上来就执着于某一项。我的建议是,先把车调到一个“中性状态”:直立稳定、速度可调、转向线性,然后再分别针对直线和八字去优化。很多队伍失败的原因不是某项调得太差,而是某个项目调得太激进,导致换项后车完全失控。记住,比赛比的不是单场爆发,而是两项合计表现。

2. 硬件搭建与选型:别让机械拖累你的算法

2.1 重心与轮距:一切调参的地基

两轮自平衡车的机械结构说复杂很复杂,说简单也很简单,核心就一句话:重心越低、越靠近轮轴正上方,直立控制越容易。重心高了,直立环需要更大的P值,但P值一大,车就容易高频抖动;重心偏前,车自然前倾,起步顺畅但低速容易栽头;重心偏后,刹车时容易后仰。

我踩过的最大的坑是电池固定位置。早期为了走线方便,我把电池贴在主控板支架后侧,结果车一加速就后仰,怎么调速度环都没用。后来把电池平移到轮轴正上方的底部支架上,整车姿态立刻好了很多。所以备赛第一步不是写代码,而是先把电池、主控、驱动板全部固定成“左右对称、上下居中”的布局。

轮距方面,两轮间距大一些,高速直线更稳,压线概率低;轮距小则转向灵活,八字绕圈更容易。竞赛常用车模的轮距通常在 150-200mm 之间,建议先保持厂家默认轮距,调通后再去动。轮胎材质也要注意,硬质塑料轮胎在八字场地容易打滑,建议换上橡胶软胎;但软胎滚动阻力大,直线加速会损失一点速度。折中方案是准备两套轮胎,赛前根据主办方公布的场地材质临时更换,这是规则允许的情况下最实用的招。

2.2 电机、编码器和驱动:低速性能决定天花板

八字慢速能不能调稳,很大程度取决于编码器的低速表现。常见的霍尔编码器有 128 线、500 线等,倍频后每转能测出几百到上千个脉冲。对于低速工况,编码器线数最好不低于 128 线,否则速度环在低速时读取的脉冲数太少,一个脉冲的误差就可能导致控制量突变。

电机选择上,减速比大扭矩强但转速上限低,适合八字赛项;减速比小极速高但低速控制吃力。普通直流减速电机配 30:1 到 50:1 的减速比是大多数队伍常用的区间。电机底部的减速齿轮要检查有没有背隙,如果你明显感觉车轮的响应有“空一小段角度”的现象,多半是齿轮背隙,这会让速度环产生静差,低速时特别明显。解决办法是换新齿轮组,或者用软件死区补偿,但不能完全根治。

驱动芯片建议根据电机额定电流选择。TB6612 适合 1A 左右的小电机,DRV8701 等大电流驱动适合 2A 以上电机,驱动能力不足会导致电枢电流受限,高速时扭矩下降,直线加速后劲不够。PWM 频率建议设在 10-20kHz,低于 5kHz 会有明显的电机啸叫,而且电流纹波大,会影响陀螺仪读取。

2.3 姿态传感器与方向传感器

姿态传感器是单车的心脏,主流方案是 MPU6050 六轴传感器。上电后必须做零漂校准,陀螺仪在静止时输出不为零,这个偏差如果不校准,直立环就会产生一个固定角速度补偿,车会朝一个方向慢慢偏移。

方向感知有两种主流方案:摄像头和电磁。如果你用的是摄像头巡线,要注意帧率和延迟。八字赛道几乎没有直道,摄像头会看到大量的弧线,二值化后的赛道中线提取不能太简单,否则弯道中偏差信号非线性很强。电磁方案用水平电感检测赛道电流线的磁场方向,低速下非常稳定,但需要赛道上预先铺设电磁线。具体选哪种,先对着规则来,如果规则两种都允许,我个人建议八字项目用电磁,直线项目用摄像头,但两套传感器会增加调试时间,新手队伍慎重。

2.4 供电与走线

电池电压在下坡、起步瞬间都会波动,如果驱动板和主控共用一根电源线,电机大电流会把姿态传感器的供电电压拉低,轻则数据抖动,重则单片机复位。正确的做法是主控、传感器单独用稳压模组供电,电机驱动从电池直接取电,且主控地线和电机地线在电池负极单点汇合。姿态传感器附近预留 10μF 和 100nF 去耦电容,能显著减少数据毛刺。

走线方面,电机线、编码器线尽量用屏蔽线并远离陀螺仪,编码器信号线交叉别过大电流路径。很多诡异的数据跳变,最后查出来都是线材干扰,费时间还不容易察觉,所以硬件阶段多花二十分钟整理线束,能省下一下午的调参时间。

3. 控制算法核心:三个闭环如何分工协作

3.1 先理清三环,再谈调参

两轮平衡车的控制可以拆成三个闭环:直立环、速度环、方向环。直立环是基础,它通过倾角和角速度输出 PWM,让车不倒;速度环通过编码器测速,调整目标倾角,让车以期望速度前进或后退;方向环根据赛道偏差,输出左右轮差速,让车转向。

我用一个简单比喻帮助新人理解:直立环是“小脑”,负责身体平衡;速度环是“大腿”,决定了往前迈多大步;方向环是“眼睛”,告诉大脑该往哪转。三者必须分时协作,直立环带宽最高,通常 1ms 执行一次;速度环和方向环带宽稍低,5ms 到 10ms 执行一次。如果全都放在同一个 1ms 中断里,速度环的高频修正会把直立环带偏。

控制主循环可以参考下面这个结构:

#define BALANCE_KP 120.0f #define BALANCE_KD 1.5f #define SPEED_KP 30.0f #define SPEED_KI 0.8f #define STEER_KP 80.0f #define STEER_KD 5.0f void control_1ms(void) { float angle = get_filtered_angle(); // 由MPU6050滤波得到 float gyro = get_gyro_data(); // 原始角速度 // 直立环 PD 输出 balance_output = BALANCE_KP * angle + BALANCE_KD * gyro; // 速度环和方向环每5ms执行一次 if (timer_cnt % 5 == 0) { run_speed_loop(); // 更新目标倾角修正量 speed_target_offset run_steer_loop(); // 更新差速量 steer_output } // 最终控制量:速度环输出修正目标倾角,方向环叠加差速 left_pwm = balance_output + speed_target_offset + steer_output; right_pwm = balance_output + speed_target_offset - steer_output; set_motor_pwm(left_pwm, right_pwm); }

这段代码里最关键的是speed_target_offset。它不是直接加到 PWM 上,而是作为目标倾角的修正值,让车略微前倾或后仰,从而让直立环自然产生加速度。很多人把速度环输出直接加到 PWM,车会在一两秒内失去平衡,原因就在这里。

3.2 直立环和速度环的相爱相杀

直立环本质是 PD 控制器:P 项对应倾角,D 项对应角速度。角度由陀螺仪积分和加速度计融合得到,角速度直接用陀螺仪原始值。P 值决定车的“刚性”,D 值决定“阻尼”。P 太小车会软绵绵地倒下,P 太大车会高频抖动;D 可以压住这种抖动,但 D 太大会让电机响应迟钝。

速度环再把目标倾角往正负方向拽。车速低于目标时,速度环输出增大,车前倾加速;车速高于目标时,输出减小甚至变负,车后仰减速。这里必须给速度环输出加限幅,一般不要超过总倾角范围的 1/4。如果不限幅,低速启动时速度积分疯狂累积,车会像崩出去一样突然前冲,也就是我们常说的“积分饱和”。

直线竞速时,为了较快达到期望速度,可以把速度环 P 值调高,但同时要加积分分离——只在速度误差小于一定范围时才积分,避免起步阶段积分项失控。八字慢速时,速度环目标很低,这时应该减小 KI,甚至可以考虑只在速度误差超过一定死区时才做积分,让车以一个相对放松的状态低速滑行。

3.3 八字慢速的方向控制技巧

八字赛道与普通直道巡线最大的不同,是车辆需要持续面对大角度转弯。摄像头看到赛道中线后,偏差值在一个弯道内会一直为同号,并且偏差变化率的符号会保持不变,这会导致简单比例控制器输出一个基本恒定的转向量,车就会沿着一个近似圆弧行驶,但半径未必是你想要的。

所以方向环不能只有一个比例项,必须加上微分项,也就是偏差变化率。微分的本义不是“纠偏”,而是“预判”,它在车开始明显偏转之前,就根据偏差的变化趋势提前输出反向修正,这样车在弯道里才不会被离心力甩出去。具体参数上,方向环的 P 值决定转向的强弱,K 值太大小车会在两个半圆切换处抖;D 值决定弯道中的平稳感,如果车在切弯时来回晃,优先加大 D,而不是继续加 P。

八字慢速阶段还有个实用技巧:当速度目标很低时,摄像头前瞻距离要调近。为什么?因为低速情况下,你不需要太早看到远处的弯道,反而近处的赛道信息更能反映当前真实位置。前瞻太远会让方向控制器提前反应,车还没到弯心就开始打方向,结果不断地画蛇形。用摄像头的话,直接把采样窗口的后半段裁掉,或者把图像中心线上移,都是可行办法。

3.4 直线竞速的优化空间

直线竞速时,方向环要“懒”一点。偏差小于一个死区就不输出任何转向,车只靠硬件对称性和微小的机械修正跑直线。如果方向环全程工作,路面稍微有一点不平整都会造成车体左右摆动。死区大小一般取 1-2 个像素或 5-10mV 电磁电压差,实际以车不画龙为准。

另一方面,起步加速要使用目标速度斜坡。直接从 0 给定 3m/s 的目标速度,车会被自己的速度环推倒。比较稳妥的斜坡策略是:目标速度每 10ms 增加 0.02m/s,从 0 加速到满速大概需要 1 秒多。这样车的倾角变化是渐进式的,姿态不会突变。加速过程中还要临时降低方向环 P 值,因为高速下转向过度是致命的,宁可稍微压一点线,也不要整辆车横着飞出去。

4. 调试流程:一步一步让车站起来、跑起来、绕起来

4.1 第一步:直立环调到“单手扶得住”

调试顺序非常讲究,需要在没有速度环、没有方向环的情况下先把直立环调稳。把速度环和方向环的代码全部注释掉,只保留直立环 PD 输出到两个电机。上电后手持车体,感受电机是否用力对抗倾角。

第一步先调 P 值。从较小的值开始,每次增加 20% 左右。观察车的反应:P 太小时,车像没吃饭一样,从头到尾瘫软;P 足够大时,车会自己站起来,但会剧烈抖动。这时开始加 D 值,每加一点,抖动就会减弱一些。

一个重要的判断标准:车辆能原地站立超过 5 秒,且用手轻推车身后能自动回正并伴随 1-2 次轻微振荡,然后归于平静,这一状态说明直立环基础已经合格。如果你发现车完全不振荡,像是被钉在地上,其实 D 已经偏大,这样车看着稳,实际一跑起来就会发木,速度环很难控制。

4.2 第二步:速度环整定与直线加速调试

直立环稳住后,打开速度环,先给定一个很低的目标速度,比如 0.2m/s。关键观察点是车的起步:是不是平稳加速,还是猛地冲出去。如果冲出去,检查速度环积分限幅和积分分离是否开启,以及编码器方向是否接反。

速度环参数有一个大致规律:P 值决定响应速度,KI 值决定稳态精度。调参时先只加 P,看车能不能在目标速度附近稳定;如果拿不到目标速度且一直有静差,再一点一点加 KI。这里特别提醒,速度环 KI 很多情况下不需要太大,因为平衡车的速度控制是通过倾角实现的,物理上就自带积分作用。过大的 KI 是低速抖动的元凶之一。

直线加速调试时,把车放在一条长直道上,给定目标速度斜坡。观察车在加速过程中是否低头猛冲或抬头刹车。低头说明前倾量过大,可以降低速度环 P;抬头说明速度环响应跟不上,可以适当增大 P。整个过程建议用上位机记录编码器实际速度,单靠眼睛看很难判断。

4.3 第三步:八字慢速的分步走法

八字慢速不能一上来就跑整个八字。我的方法是先在赛道上单独画一个圆,给定低目标速度,让车绕其中一个圆环行驶。方向环先设一个小 P,观察车是否会走成半径更小的圆;根据实际轨迹微调 P 和 D,直到一个圆跑得稳定、不压线。

单圆稳定后,再把两个圆连成八字。难点在两个圆切换的瞬间,方向偏差会从一个方向的稳定值突然变成另一个方向的稳定值,方向环的微分项会产生尖峰。如果车在切换点出现明显抖动,需要把方向微分项做低通滤波,或者降低方向环的 P 值,给车更容易完成弯道切换。整个过程很考验耐心,每次只改一个参数,记录数据,改完再跑。

八字慢速还要注意一个容易忽视的点——速度目标的设定。目标速度太低,比如小于 0.15m/s,编码器测速噪声会被速度环放大,车会一顿一顿地走。遇到这种情况,要么提高编码器分辨率,要么把速度环执行周期延长到 10ms,要么在测速加入滑动平均滤波。把这些处理好,低速下的“点头病”基本能压下去。

4.4 用好数据记录,拒绝凭感觉调参

调参时一定要有数据积累。我习惯每跑一次,在串口里同时输出目标速度、实际速度、倾角、方向偏差和左右 PWM。把这些数据用串口绘图软件画出来,能直观看出哪一个环在拖后腿。

很多队伍调车全靠肉眼,车倒了对代码改一通,再试一次又倒,再改,这种状态持续一个晚上也找不到问题。建议建一个参数表,记录每次修改的时间、修改了哪个参数、现象是什么。下面是我常用的记录模板:

参数项值现象结论
BALANCE_KP120车可站立,略有抖动下一轮加KD
BALANCE_KD1.5抖动消失,能回正直立环合格
SPEED_KP30起步顺,略有静差尝试加KI
SPEED_KI0.8低速稳定八字可用
STEER_KP80单圆可跑,切弯抖加方向D
STEER_KD5八字切换稳定基线版本

参数每改一版都保存一份代码备份,不要用同一个文件名覆盖。比赛前一天你很可能想回退到几个版本前的稳定状态,如果没有备份,那你只能手动把参数一个个调回去,浪费时间。

5. 常见问题与排查技巧实录

5.1 问题速查表

现象可能原因处理方式
车原地高频抖动直立环P过大,D不足减小P或增大D
车像抽风一样来回点头速度环KI过大降低KI,加积分限幅
启动瞬间猛冲速度积分饱和加积分分离,减小速度目标斜坡
直线跑偏画龙陀螺仪零漂未校准,轮距不等,方向死区太小重新校准零漂,检查机械对称性
八字切弯时外甩方向D不足,速度偏高加大方向D,降低八字目标速度
低速一顿一顿编码器测速噪声大,调速周期短滤波,延长速度环周期
跑了一阵突然倒下电池电压跌落,有效PWM不足做电压补偿,或降低满速目标

5.2 高频抖动和低频晃动要分开判断

有些车看着是抖,但频率很高,车身几乎看不清,这种一般是直立环 P 太大或者 D 对高频噪声放大大。如果抖动频率很低,车像喝醉一样左右晃,那大概率是速度环在“鬼打墙”,它不断地修正一个并不准确的速度值。对症下药之前,先分清类型,否则你会越调越乱。

我调试时遇到最郁闷的一次是:车低速绕八字时每隔两秒倒一次,怎么调速度环都没用。后来查了大半天,发现是编码器联轴器固定螺丝松了,轮子高速转动时编码器读到的脉冲偶尔丢失,速度环把低速度当成了需要加速的信号,于是持续输出前倾修正,直到车轰一下冲出去。从那以后,我每次调参前必做一项目检查:拧紧所有机械连接件。

5.3 环境变量比想象中大

电池电压是最大的环境变量。满电和快没电时,同一个 PWM 对应的电机扭矩差别很大。如果控制算法不做电压补偿,直线竞速在第二圈明显会越来越软。常规做法是在主循环里读取电池电压,计算出“当前电压/标称电压”的比,再对最终 PWM 输出做乘性补偿。这个方法不要过量,补偿太强会在低电时让车变得很神经质。

轮胎和地面的影响也很明显。木质地板和地胶的摩擦系数不同,八字绕圈轨迹会差不少。建议正式比赛前尽量找与赛场材质相近的地面做最后测试,并且准备好两套胎况不同的轮胎。比赛场地往往比实验室干净且平滑,如果车适应了粗糙地面,上光滑场地突然会刹不住。

5.4 赛前检查清单

在我多年的备赛经验里,赛前放松检查比临时改参数重要得多。列一个精简版清单,出发前五分钟过一遍:

  • 电池电量是否充足、固定是否牢固
  • 轮胎有没有磨损、胎压是否统一
  • 编码器联轴器是否拧紧
  • 陀螺仪是否重新上电校准
  • 参数配置文件是否烧录成比赛模式
  • 备用电池是否满电
  • 无线调试模块是否关闭或移走,避免干扰
  • 摄像头镜头是否擦拭干净
  • 所有线缆插头是否插紧,尤其是电源插头

这个清单看起来很普通,但每一条背后都是有人付出过撞车代价的。特别是“参数配置文件是否烧录成比赛模式”这一条,我见过不止一支队伍在练习时调了八字慢速的软参数,赛前忘了切回直线模式,结果直线竞速时车软绵绵地跑出全场最慢成绩。

写在后面的一些体感经验

调单车备赛这件事,说到底是跟自己的耐心和观察力较劲。我在实验室里见过不少人对着代码发呆一晚上,也见过有人通过每次只改一个参数的方法,两三天就把车调得像模像样。我个人认为,真正拉开差距的不是算法多炫,而是对车身反应的敏感度:调 P 时能不能注意到车的抖动频率变化,调 D 时能不能听出电机声音变得发紧,调速度环时能不能通过曲线发现启动冲量和稳态振荡的来源。这些能力都来自大量的、有记录的调试。

最后分享一个很多人容易忽略的小技巧:正式比赛前那晚,不要再改任何参数。如果车今天表现不错,就保持这个状态到明天;如果今天状态不好,也不要在深夜大改,因为你没有足够时间去验证新参数的稳定性。不如早点休息,第二天用清醒的状态去观察赛道路面,再去微调轮胎和前瞻。比赛比的不仅是车,也比你准备得是否从容。希望这篇指南能让你少走几条弯路,尤其是从直线竞速到八字慢速的过渡阶段,稳住心态,慢慢调,车会给你回报的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询