板球控制系统机械设计实战:双轴云台选型、舵机扭矩计算与装配调试全解析 2017年电赛B题板球控制系统我身边不少队伍把精力全压在视觉算法上结果联调时全卡在机械上板子抖得像筛子、舵机嗡嗡乱叫、小球像抹了油一样满板乱蹿。我自己当年也是前前后后折腾了快两周才把机械结构彻底搞定回头翻备赛记录发现机械设计这块的坑远比想象中多而且很多经验是书上看不到的。这篇就把我做板球控制系统时机械设计的选型思路、参数计算、装配过程和踩坑实录完整拆一遍给后面做同类项目的朋友当个参考。这套文章是系列第四篇前几篇分别讲了大体方案、视觉识别和核心控制算法这一篇专门聚焦机械部分。内容主要围绕几个问题展开机械结构怎么选、舵机和板面怎么配、装配有哪些容易被忽略的细节、调试阶段机械问题怎么排查。适合正在备赛电赛控制类题目的学生也适合做板球系统、倒立摆、自平衡平台这类项目的DIY爱好者。如果只是想抄个现成结构可以直接跳到第3节的装配流程如果想把机械设计吃透建议从头看起。1. 机械方案选型双轴云台为什么是板球控制的最优解1.1 三种主流结构方案横向对比板球控制系统的核心目标就一句话通过改变平板在俯仰和横滚两个方向的角度让小球在平面上到达指定位置。这就决定了机械结构本质上是一个两自由度的姿态平台。当年我们查资料时看到的主流做法大致有三种我直接拿表格对比一下。结构方案工作原理精度与刚度加工难度调试复杂度综合推荐度双轴舵机云台两个舵机上下交叠安装输出轴互相垂直板面直接固定在上层舵机输出轴传动链短、响应快但舵机输出轴承受弯矩简单CNC或激光切割支架即可低结构直观便于建模五星舵机连杆摇杆舵机放底座通过球头连杆推动板面倾斜舵机不承重但存在连杆间隙和复杂非线性中等需要精确设计连杆长度高角度换算麻烦三星万向节拉线/推杆板面底部用万向节连接拉线或推杆控制倾斜结构灵活但标准件尺寸偏大容易抬高板面中等中高链条长两星从表格能看出来双轴云台在电赛这种限时高压场景下优势非常明显。我当年选它核心原因就三个第一结构刚度好转动直接控制延迟低第二角度与板面姿态的映射关系简单方便后面写运动学换算第三加工和装配难度低激光切割加螺丝就能搞定不需要精密机加工。实际备赛时我也见过用连杆方案的队伍他们觉得这样舵机不承受弯矩、寿命更长。但问题在于连杆结构引入了很多非线性——间隙、弹性变形、角度换算误差叠加起来控制算法要花大量精力去补偿。比赛环境下我们根本没时间调参调那么细所以直接从结构层面避开了这个坑。1.2 双轴云台的核心几何要求让旋转轴穿过板面重心双轴云台的结构看起来简单——两个舵机叠起来板面一装就行。但真正决定这套机构性能的是一个很容易被忽略的几何条件两个旋转轴的交点应该尽量落在板面重心的正下方。如果这个条件不满足板面在水平位置时重力就会对旋转轴产生一个偏置力矩小球在板中央也稳定不住控制算法里就得不停用舵机力矩去“顶住”这个偏置表现为舵机一直嗡嗡响、发热大小球还总往一个方向偏。要做到这一点装配时有两个细节需要注意。第一个是舵机安装座的高度差要控制好上下两层舵机的输出轴在空间上尽量垂直相交而不是错开一段距离。第二个是板面固定支架的设计我用的方案是板面下方中心位置装一个轴承座套在上层舵机的输出轴上这样板面中心点正好落在旋转轴上。装完后用水平尺放在板面上手动倾斜板面观察小球是否容易静止就能检验这个几何条件是否基本满足。如果加工精度不够导致交点偏离也不必太焦虑因为重心位置还可以通过配重微调。我手持的小技巧是找几枚硬币用双面胶临时贴在板面边缘观察小球静止时是否仍然向固定方向偏移来回试几次就能找到最优配重位置。这个土办法在调试现场非常管用。1.3 为什么拉杆和万向节方案我都没选拉杆方案我们不是没考虑过。它的优势是舵机放在底座上转动惯量小舵机承重小。但劣势也很致命连杆长度和角度需要精确标定球头连接处普遍存在0.5到1毫米的间隙这个间隙反映到板面边缘就是好几毫米的误差直接吃掉了控制精度。另一个问题是拉杆机构的运动学关系是高度非线性的同一段舵机角度变化在板面不同倾角时产生的角速度变化不同控制增益很难取后面写PID的时候会很头疼。万向节加拉线的方案我也试过问题出在标准件尺寸上。市面能买到的万向节体积不小装到底部会显著抬高板面高度整个系统重心升高稳定性变差。而且拉线的弹性本身就会引入一个低通滤波效果舵机发出的高频动作传不到板面上控制响应变慢。综合下来双轴云台虽然不是最精妙的结构但它是控制类题目里工程代价最低、最容易调通的结构。套用一句我当年的判断标准比赛比的不是谁结构更炫而是谁的系统能最快收敛到稳定状态。2. 关键部件选型从舵机扭矩到板面摩擦力2.1 舵机选型扭矩计算是第一步虚位才是真正的坑舵机是板球控制系统唯一的执行器直接决定系统的响应速度和稳态精度。我见过有人随便从抽屉里翻出一个9g舵机就往上装结果连板子都抬不动。这里给一套简单可行的扭矩估算方法大家可以直接套用。板面尺寸我用的是600mm乘600mm的亚克力板厚度3mm加上球和支架整个旋转部分总质量大概在1.2到1.8公斤。重心到旋转轴线的距离取决于装配精度一般在10到30毫米之间。静态时舵机需要克服的最大重力偏置力矩可以估算为T m × g × d × sinθ取m等于1.5kgd等于0.02mθ取30度算出来T约等于1.5kg·cm。这只是静态值实际动态运行时还要考虑加速时的惯性力矩至少乘2到3倍再留2到3倍安全余量最终我的选择范围落在10到15kg·cm以上。我最终选的是DS321820kg·cm扭矩6V下0.13秒/60度数字舵机中位精度高。这个选择是做了回退测试的先拿更小的MG996R试过静态能撑住但是球每次加速一冲板面就出现肉眼可见的滞后和抖动因为扭矩余量不够舵机在PID的高频调节下根本咬不住位置。换DS3218之后同样的控制参数稳定性提升了一大截。舵机型号扭矩(6V)速度(6V)齿轮虚位程度参考价格备赛心得MG90S1.8kg·cm0.10s/60°塑料很大约15元只适合小模型别用于板球MG996R9.4kg·cm0.17s/60°金属较大约25元预算有限时的底线要多备几个LD-1501MG15kg·cm0.16s/60°金属中等约40元性价比不错的中间选项DS321820kg·cm0.13s/60°金属较小约80元备赛稳妥之选扭矩余量大扭矩之外最需要重视的参数是虚位也就是齿轮啮合间隙。虚位表现为舵机输出轴即使已经停止用手轻轻拧还能转一个小角度。MG996R的虚位普遍在1到2度反映到600mm板面边缘就是10毫米量级的位移误差直接破坏稳态精度。DS3218的虚位明显小很多但用久了还是会变大所以备赛时必须多买两个备用发现虚位变大立马更换不要硬撑。2.2 板面材料与小球的匹配摩擦力决定手感板面是直接和球接触的部件它的材料、摩擦系数和表面平整度对控制系统影响极大。我第一版用的是光面亚克力板结果小球滑得停不下来PID参数无论怎么调球总是过冲然后来回震荡因为板面摩擦系数太低系统阻尼不足。后来换成了贴一层植绒布摩擦系数上来了球能“刹住车”控制难度立刻下降。板面材料对比下来我的建议是优先考虑表面处理能力而不是材料本身。亚克力板轻、便宜、容易加工但必须贴膜或喷涂哑光处理来增加摩擦铝板刚度好、不易形变但重量大、散热快舵机负担更重碳纤维板轻且刚但价格高形状受限。综合性价比我最后还是回到3mm亚克力加植绒布的组合。小球的选择同样关键。比赛常用球大概有几种钢球重、惯量大对板面要求高但控制起来手感扎实稳定玻璃球中等表现均衡乒乓球太轻容易受空气流动干扰而且滚动特性不规则我实际试下来是最难控的。如果有条件可以试直径40毫米左右的橡胶包铅球表面摩擦均匀重量适中球感非常好不过这种球价格略高。我们当年最后定的是直径30mm的钢球搭配植绒布效果很好而且便宜多买几个也不心疼。这里还有一个细节板面边缘不要完全封闭留一个挡边便于球不飞出但不要把四周全部封死否则球容易卡在角落造成舵机堵转。我们设计时在四角留了圆角缺口球滑到角落时会自然回到可控制区域这个设计在调试阶段帮了不少忙。2.3 摄像头的机械安装视角偏差是隐形的系统性误差板球控制系统的主要反馈是视觉摄像头的安装位置和方式直接影响整个闭环的准确性。最常见的问题是把摄像头装在板面的正上方垂直向下看但支架不结实或者镜头光轴没有垂直于板面导致画面出现透视畸变给视觉坐标带来系统性偏差。这个偏差在控制环里很难通过调PID消除因为它是确定性的映射误差。我当时的做法是搭了一个独立于板面的铝型材支架摄像头固定在支架顶端镜头光轴尽量垂直于板面中心。这里有两个安装细节值得留意一是摄像头支架不要和板面底座共用同一个振动源否则舵机转动时支架跟着晃画面抖动会严重影响视觉识别的稳定性二是摄像头底部加一个可调角度的云台底座方便现场微调视角。光源问题也在机械设计范围内。光面亚克力板在灯光下会产生局部反光视觉识别时容易出现高光区域误检。我们解决的办法是板面贴亚克力哑光膜降低镜面反射同时室内照明保持均匀避免强点光源直射板面。视觉部分的处理效果很大程度上由机械安装的质量决定这一环省不得。3. 装配实战从零件到能上电调的平台3.1 零件加工激光切割、3D打印与手工方案对比板球系统的结构件不算复杂常见的加工方式有激光切割、3D打印和手工加标准型材三种。我对比下来的感觉是不同零件用不同工艺组合起来效率和成本最均衡。底盘和支架这类平板结构最适合激光切割。10mm亚克力板切出来的底盘精度在正负0.2毫米以内表面平整安装孔位准价格非常便宜。我建议底盘和舵机安装座都用亚克力激光切割这两个零件的尺寸公差直接影响舵机轴线和板面中心的对准度激光切割机的精度完全能满足要求。舵机支架和轴承座这类小件用3D打印更合适。因为它们是立体结构需要按照舵机外形做异形包络3D打印一次成型不用拼装。我当时用PLA材料打印填充率设到80%强度足够。需要提醒的是3D打印件的层间剪切强度较弱受力方向要设计成沿打印层方向受力避免层间撕裂。对于板面本身我最终选了3mm亚克力激光切割不推荐手工锯因为手工切割的平面度和尺寸精度都达不到要求板面一旦有翘曲球在滚动时会无规律偏转控制算法再强也救不回来。3.2 五步装配流程从底盘到板面装配顺序我认为是有讲究的按正确顺序装可以避免返工。我的完整装配流程如下第一步固定底盘舵机。将下层舵机控制俯仰方向装进亚克力底盘的开孔里用舵机自带螺丝固定同时用金属舵机支架加固。这里不建议用热熔胶调试初期热熔胶确实方便但高频率运动半个小时后就会松动虚位增大得特别快比赛现场出这种问题很致命。第二步安装陀螺仪支架和上层舵机。下层舵机的输出轴连接一个L型支架L型支架的另一端固定上层舵机控制横滚方向。装这个L型支架时要保证上层舵机的输出轴和下层舵机的输出轴在空间上垂直相交用直角尺量一下偏差控制在1毫米以内。第三步安装板面与轴承座。在上层舵机输出轴上固定一个法兰轴承座板面中心的安装孔套入轴承座用螺丝锁紧。装好后手动上下左右倾斜板面感受是否有卡涩或异响如果转动不顺畅多半是输出轴和轴承座不同心需要微调支架位置。第四步安装摄像头支架。摄像头支架独立固定在底盘角落或桌面底座上不与板面结构产生机械连接摄像头高度距离板面约1米保证画面能覆盖整个板面。装好之后用一张白纸放在板面上对照画面检查是否满幅、是否对称确认后再锁紧所有螺丝。第五步布线与整理。舵机线、摄像头USB线、电源线从旋转件的活动区域穿过时要预留足够的活动余量同时避免线材在舵机转动时被绞入齿轮或阻挡板面运动。这一步看着不起眼但线材卡住导致舵机堵转烧毁的事故我见过不止一次。3.3 消除虚位和提升刚度的几个土办法机械结构装完之后总会有一些小间隙和小弹性这些在静态测试时看不出来一上闭环控制就原形毕露。我整理了三个最管用的土办法。第一个是舵机输出轴端加预紧垫片。在舵机输出轴上法兰和支架接触面之间加一个0.1毫米厚度的金属垫片锁紧后让齿轮啮合更紧凑可以有效减小虚位。注意垫片不能太厚否则舵机转动阻力增大反而发热严重。第二个是用橡胶垫片隔离高频振动。舵机底座和底盘之间垫一层2毫米厚的硅胶垫片能明显减弱舵机高频抖动向底板的传递系统的机械噪声和视觉画面抖动都会改善。这个方法不需要重新加工零件成本几乎为零。第三个是板面背面加轻质加强筋。600mm乘600mm的3mm亚克力板虽然平整但在舵机急加速时中心部分还是会微微形变板面边缘约1到2毫米的上下晃动对视觉识别来说就是边缘区域坐标跳动。在板面背面用3D打印两根十字形加强筋用双面胶贴上去刚度立刻提升不少重量只增加了不到100克。4. 调试阶段机械问题排查实录4.1 板面抖动与舵机啸叫先查电源再查机械谐振板面抖动是调试时最常遇到的问题表现为板面在高频小幅振动甚至伴随舵机发出尖锐的啸叫。我最初以为是PID参数没调好反复调增益浪费了一整天后来才发现问题根本不在算法而在舵机供电。舵机急加速瞬间的电流峰值可以达到1到2安培如果舵机电源和控制板共用一个线性稳压电压会被瞬间拉低舵机内置的控制电路检测到电压跌落就会反复重启表现为连续抖动和啸叫。解决方案是为舵机单独供电我用的是一个5V6A的BEC开关电源模块直接从电池取电舵机电源地和信号地单点接到控制板。这个改动之后板面抖动的幅度立刻减小了一大半。如果电源没问题还抖那就考虑机械谐振。整个云台结构是一个弹性体在某个频率下会产生共振典型表现是板面振幅在某个特定控制频率附近突然放大。解决办法有两个方向一是通过算法降低舵机在该频段的输出功率也就是给控制量加低通滤波二是在机械上加阻尼比如在板面底部贴一块软木垫或海绵块消耗振动能量。我最后是两种方式一起用效果很明显。4.2 舵机堵转过热别让小问题烧掉大部件舵机堵转是指舵机输出轴被卡住但仍然通电此时电流会飙升到正常工作电流的3到5倍连续十几秒就可能烧毁舵机内部的驱动芯片或电机。板球系统里最容易堵转的位置是球卡在板面边缘和挡边形成的死角里。我们设计时虽然留了圆角缺口但如果球速过快还是可能冲进缝隙卡住。后来我在软件里增加了限幅保护当舵机控制量持续超过某个阈值且视觉位置几乎没有变化时判断为堵转并自动切断舵机输出保护硬件。这个保护逻辑很简单但体感真的能救命。另外舵机长时间在高负载下工作外壳温度会明显升高。我测过MG996R在连续高强度运行15分钟后外壳温度能达到70度以上手都不敢摸。换用DS3218之后温度表现好很多但还是需要在上位机监控舵机温度或者定时让系统空载休息。4.3 球总往一个方向跑机械零点偏置是隐形元凶有一段时间系统无论怎么调PID小球总是缓慢地往同一个方向漂移即使设定目标位置在板面中心球也始终在目标点附近打转。当时我们都以为是视觉标定出了问题反复检查了摄像头参数最后才发现是机械零点的偏置。机械零点就是把控制量设定为中位时板面并不在一个绝对水平的状态。两个舵机的中位角度和真实水平之间可能存在零点几度的偏差这个偏差在视觉上放大就成了球持续漂移的力。解决办法是在代码里对舵机角度做机械零点校准先手动把板面调至水平记录此时两个舵机收到的PWM占空比读数把这个读数作为零点偏移量在程序启动时自动补偿。校准一次之后球就能稳稳停在目标点了。这里还牵出一个容易被低估的量——板面变形。如果板面本身有翘曲即使板面整体角度为零中央区域还是平的但边缘会有微小坡度球滚到边缘就会加速偏离。排查方法很简单用水平尺在板面中央、四个边缘各测一遍如果偏差超过1毫米说明板面加工质量不行需要更换或加背筋矫正。4.4 线材管理机械系统中最容易被低估的细节线材管理在赛前联调阶段看起来是个小事但它引发的故障类型非常多样舵机线在旋转过程中被夹断导致舵机掉线、USB线被拉脱导致视觉画面卡死、电源线被齿轮绞住导致短路保护。有一次我们调试到半夜系统频繁无故重启排查了三个小时才发现是摄像头USB线从板面下方穿过时被上层舵机的L型支架反复弯折内部芯线断裂产生间歇性短路。正确的做法是所有活动部位的线材都使用硅胶软线耐弯折性能好舵机线在板面附近留一个弹簧状的余量环让线材在板面运动时自然伸缩而不是被拉扯线材沿结构件的边缘走线并用扎带固定避免悬空晃动。我后来养成一个习惯每次调试前先手动让板面运动到最大角度范围检查线材是否有拉扯和卡滞这个习惯帮我们避掉了至少三个隐藏故障。4.5 常见机械问题速查表故障现象可能原因排查步骤解决方法板面高频抖动、舵机啸叫舵机供电不足或与信号线共地不良用万用表测舵机供电电压观察急加速时电压跌落幅度舵机独立供电电源地和信号地单点连接球持续向一侧漂移机械零点偏差或板面翘曲手动调水平后读取舵机中位用水平尺测板面平整度代码补偿零点偏移板面贴背筋或更换球体振动无法稳停板面摩擦系数太低系统阻尼不足观察球在板面的停止距离过冲过多检查表面材质贴植绒布或哑光膜增加摩擦舵机发烫、温度迅速升高长时间堵转或负载过大检查球是否卡住观察舵机外壳温度加堵转保护逻辑更换大扭矩舵机调整结构重心视觉画面局部模糊或坐标偏移摄像头支架松动或镜头光轴不垂直紧固支架螺丝在板面放标定纸检查畸变加固摄像头支架调整镜头角度加哑光膜减少反光转动时异响、转动不畅输出轴与轴承座不同心或支架变形手动转动板面感受卡涩位置松开螺丝重新对位更换变形支架板球控制系统的机械设计说到底就是一门“把细节做扎实”的功夫。我在整个备赛过程中最大的感悟是不要指望用强大的控制算法去弥补一个松垮的机械平台机械决定了系统的性能下限算法只是在这个下限之上争取更好的表现。所以每装一个螺丝、每刮一次板面表面都要问自己一个问题——这个细节在闭环调试时会不会变成问题。如果会现在就解决它。希望这篇机械设计实战笔记能帮大家少走一些弯路把有限的备赛时间花在真正能提分的事情上。