1. 从一堆散件到能跑能停:组装环节到底在组装什么
很多人第一次接触自主导航项目,注意力全在算法和代码上,觉得组装无非是把零件拧在一起,没什么技术含量。我一开始也这么想,直到第一次把车架、电机、轮子、主控板、传感器全部摊在桌面上,才发现组装这一步才是整个项目里最容易翻车的地方。一个螺丝没拧紧,跑起来轮子晃;一根线接反,主控板直接冒烟;传感器装歪两度,建出来的地图全是斜的。组装不是简单的物理拼装,它是把一堆独立的子系统整合成一个能协同工作的整体,这个过程中每一个决定都会影响后面导航算法的表现。
自主导航项目的组装,核心目标可以拆成三件事:第一,让机械结构稳固到在运动过程中不会产生额外的振动和形变;第二,让电气连接可靠到不会因为颠簸而松动或短路;第三,让传感器的安装位置和朝向精确到能满足算法对数据质量的要求。这三件事听起来简单,但每一件都有大量的细节需要拿捏。比如车架的刚性够不够,电机和轮子的配合间隙有多大,主控板固定在什么位置方便走线又不会挡住传感器视野,电池放在哪里能让重心分布合理,这些都是组装阶段必须想清楚的问题。
这篇文章适合正在做自主导航项目、准备动手组装硬件平台的读者。不管你是用现成的套件还是自己采购零件,组装的思路和方法都是相通的。我会从工具准备、机械装配、电气连接、传感器安装、上电前检查这几个维度,把组装过程中真正会遇到的问题和解决办法讲清楚。很多内容是我自己踩过坑之后总结出来的,常规教程里不一定写,但实际做的时候一定会遇到。
2. 动手之前先把工具和零件理清楚
2.1 工具清单:别等装到一半才发现少东西
组装自主导航平台用到的工具不算复杂,但缺一样就会卡住。我习惯在开工前把所有工具摊在桌上,确认一遍再动手。基础工具包括十字和一字螺丝刀各一套,最好有不同规格的批头,因为车架上不同位置的螺丝尺寸可能不一样。内六角扳手也是必备的,很多电机支架和联轴器用的是内六角螺丝。一把小号的尖嘴钳用来夹持螺母和整理线材,一把斜口钳用来剪线。万用表是电气检查的核心工具,用来测通断、测电压、确认正负极。烙铁和焊锡丝也要准备,很多电机线和电源线需要自己焊接接头。
除了这些,我强烈建议准备一把游标卡尺。你可能觉得组装而已,用不着这么精确,但实际测量轮距、轴距、传感器安装高度的时候,卡尺能帮你把误差控制在毫米级别。还有一个容易被忽略的东西是扎带和热缩管,扎带用来固定线束,热缩管用来绝缘和加固焊点,这两样东西不值钱但非常实用。螺丝胶也建议备一瓶,中强度的就行,涂在螺丝上能防止振动导致的松动,后面想拆的时候也不会太费劲。
注意:螺丝胶分低强度、中强度和高强度,组装阶段用中强度就够了。高强度螺丝胶粘上之后基本拆不下来,除非加热到很高温度,别问我怎么知道的。
2.2 零件核对:来料检验比你想的重要
零件到手之后不要急着装,先做一遍来料检验。这一步很多人跳过,结果装到一半发现少了个螺丝或者某个零件有瑕疵,又要等快递,心态直接崩掉。核对的时候按照物料清单逐项检查,重点看几个方面:螺丝螺母的数量和规格是否匹配,电机轴和轮毂的配合尺寸是否对得上,主控板的接口数量和类型是否和传感器匹配,电池的电压和容量是否符合预期。
我遇到过好几次电机轴径和轮毂孔径差零点几毫米的情况,看起来能塞进去,但装上去之后轮子偏心,跑起来一抖一抖的。这种问题在组装阶段发现还能换货,等整机装好了再发现,拆起来就麻烦了。还有一个细节是检查螺丝的长度,有些位置的螺丝如果太长会顶到内部零件,太短又拧不紧,最好用卡尺量一下实际需要的长度再选螺丝。
2.3 工作台布置:给自己留出足够的操作空间
组装自主导航平台需要一定的操作空间,桌子太小会非常憋屈。我一般会把工作台分成三个区域:零件区放还没装的零件,工具区放常用的工具,装配区放正在组装的主体。这样找东西的时候不用翻来翻去,效率高很多。桌面最好铺一块防静电垫,尤其是处理主控板和传感器的时候,静电击穿是看不见的杀手。如果实在没有防静电垫,至少不要在地毯上操作,也不要在干燥的冬天用手直接摸电路板上的芯片引脚。
照明也很重要,很多接口和焊点非常小,光线不好的话根本看不清。我习惯用一盏可调角度的台灯,把光直接打在操作区域上。另外准备一个小盒子或者磁吸盘放螺丝,不然螺丝掉到地上找半天,这种事发生一次就够让人崩溃的。
3. 机械结构装配:从底盘开始往上搭
3.1 底盘框架的搭建顺序与紧固策略
底盘是整个平台的骨架,它的装配质量直接决定了后续所有环节的基础。我通常从底盘框架开始,先不装轮子和电机,把框架的主体结构搭起来。如果是铝型材框架,注意型材的切割面有没有毛刺,有的话用锉刀修一下,不然会划伤手也会影响连接件的贴合。连接件和螺丝先用手拧上,不要一次性拧死,等整个框架的几何形状调整到位之后再逐个紧固。
紧固的顺序有讲究,我习惯按照对角线的顺序逐步拧紧,就像给汽车换轮胎时拧螺丝那样。这样能让框架受力均匀,不会因为某一侧先拧紧而导致整体变形。拧紧的力度也要控制,铝型材的螺纹比较软,拧过头会滑丝。手感上感觉到明显的阻力之后再稍微加一点力就够了,不需要用尽全力。如果框架比较大,可以在关键连接处加一点螺丝胶,防止后续运动中的振动导致松动。
框架搭好之后,用手按一按各个角,感受一下有没有明显的晃动。如果某个角按下去有位移,说明连接不够紧固或者连接件有问题,需要重新检查。这个步骤看起来简单,但很多人在整机装完之后才发现底盘是歪的,那时候再调就麻烦了。
3.2 电机与轮子的安装:同心度决定运动精度
电机和轮子的安装是机械装配里最影响运动性能的环节。安装之前先确认电机的转向,不同型号的电机正负极接法不同,转向也不一样。你可以先用电池直接给电机通电,看一下转向是否符合你的设计需求。如果转向反了,要么调换接线,要么在代码里改方向,但机械装配阶段最好先把这个问题确认清楚。
轮子和电机轴的连接方式有几种,常见的是D型轴配合顶丝,或者用联轴器连接。D型轴安装的时候要注意轮毂上的孔位和电机轴的平面要对齐,顶丝要拧在平面上而不是圆柱面上,否则轮子会在轴上打滑。联轴器连接的话,要注意联轴器的夹紧螺丝要均匀拧紧,不能一边紧一边松,否则联轴器会偏心。安装完成之后,用手转动轮子,感受一下有没有卡顿或者偏摆。正常的轮子应该能顺畅转动,径向和轴向的晃动都很小。
提示:如果轮子转动时有明显的周期性阻力,可能是电机轴弯曲或者轮毂变形,这种问题没法通过调整螺丝解决,只能换零件。
电机支架的安装位置也要注意对称性。左右两侧的电机安装孔位要对应,不然轮距不一致,车子跑起来会往一边偏。我习惯用卡尺量一下两侧电机轴到车架中线的距离,确保误差在1毫米以内。这个精度听起来有点苛刻,但对于需要精确控制运动轨迹的自主导航平台来说,机械上的对称性是算法能正常工作的前提。
3.3 万向轮或从动轮的安装高度调整
如果底盘是三轮或四轮结构,除了驱动轮之外还有万向轮或从动轮。这些轮子的安装高度需要和驱动轮配合,让底盘保持水平。我见过很多人装完之后底盘是翘着的,驱动轮悬空或者万向轮悬空,车子根本跑不起来。调整的方法是先把驱动轮装好,然后把底盘放在水平桌面上,观察万向轮与桌面的接触情况。如果万向轮悬空,就在它的安装座下面加垫片;如果底盘被万向轮顶得翘起来,就减少垫片或者调整安装位置。
万向轮的安装位置也会影响转向性能。万向轮离驱动轮越远,转向时需要的力矩越大,但直线稳定性越好。离得越近,转向越灵活但容易跑偏。这个距离没有绝对的标准,需要根据你的底盘尺寸和运动需求来权衡。我的经验是万向轮安装在底盘前后中线上,距离驱动轮轴线的距离大约是底盘长度的一半左右,这样兼顾了稳定性和灵活性。
4. 电气系统连接:让电流走对路
4.1 电源分配方案的设计与走线规划
电气连接的第一步是规划电源分配。自主导航平台通常需要多路电源:主控板需要5V或3.3V,电机需要更高的电压(比如12V或24V),传感器可能需要5V或3.3V。如果所有设备都从一个电源取电,要注意总电流不能超过电源的额定输出,否则会烧电源或者导致电压不稳。我习惯用一块主电池经过分电板,分出多路给不同的子系统,每一路加上独立的保险丝或限流保护。
走线规划要在动手接线之前就想好。线束的走向要尽量避开运动部件,比如轮子和电机轴,防止线材被卷入或者磨破。信号线和电源线最好分开走,平行走线的时候保持一定距离,减少电磁干扰。如果实在避不开交叉,尽量垂直交叉而不是平行。线束用扎带固定在车架上,固定点之间的距离不要太远,防止线材在运动过程中晃动。我一般每隔5到8厘米就固定一个点,线束看起来整齐,可靠性也高。
4.2 主控板与电机驱动器的接线要点
主控板和电机驱动器之间的接线是电气连接的核心。首先确认主控板的引脚定义和驱动器的接口定义是否匹配,包括电源引脚、地线、信号线。电源正负极绝对不能接反,接反的瞬间驱动器就可能烧掉。我习惯在接线之前用万用表确认一下电源的输出极性,然后再接到驱动器上。信号线包括PWM调速线和方向控制线,这些线的接法取决于你用的驱动器和主控板型号,但原则是信号线的地线要和主控板共地,否则信号电平没有参考点,驱动器可能无法正确识别。
电机线一般比较粗,因为电流大。接线的时候要确保接头牢固,焊接的话要焊透,用端子的话要压紧。我见过有人用杜邦线接电机,跑一会儿线就发热变软,最后接头融化导致短路。电机线的截面积要根据电机的额定电流来选,一般1平方毫米到2.5平方毫米之间,具体看电机功率。接线完成之后,先不要装轮子,用手转动电机轴感受一下有没有阻力异常,然后用万用表测一下电机线的通断,确认没有虚接。
4.3 传感器供电与信号线的抗干扰处理
传感器的供电和信号线处理是电气连接里最容易被忽视的部分。很多传感器对电源质量很敏感,比如激光雷达和摄像头,电压波动会导致数据异常甚至设备重启。我建议给传感器单独一路电源,或者在电源和传感器之间加一个滤波电容。信号线方面,I2C和SPI这类数字信号线对干扰比较敏感,线长尽量短,如果必须走长线,考虑用屏蔽线或者双绞线。
走线的时候,传感器的信号线不要和电机线捆在一起,电机换向时会产生很大的电磁干扰,可能导致传感器数据跳变。如果实在避不开,至少保持几厘米的距离,或者用铝箔包裹信号线做屏蔽。我遇到过一次编码器信号被电机干扰的情况,轮子转速读数每隔几秒就跳一个异常值,后来把编码器线单独走线并加了屏蔽层才解决。这种问题在组装阶段多花十分钟处理好走线,比后面花几个小时排查要划算得多。
5. 传感器安装:位置和角度差一点都不行
5.1 激光雷达的安装高度与水平校准
激光雷达是自主导航的核心传感器,它的安装位置直接影响建图和定位的精度。安装高度要考虑几个因素:太高的话,雷达扫描面可能扫不到地面的障碍物;太低的话,可能扫到自己的底盘或者轮子。一般来说,雷达安装在底盘上方10到20厘米的位置比较合适,具体取决于你的底盘高度和障碍物类型。安装的时候要确保雷达的扫描面水平,倾斜会导致扫描数据变形,建出来的地图会有系统性偏差。
校准水平的方法很简单,把底盘放在水平桌面上,用手机上的水平仪应用放在雷达顶部,调整安装座的垫片直到水平仪显示水平。如果没有水平仪,也可以用一把直尺放在雷达顶部,观察气泡水平仪的气泡位置。校准完成之后,用手轻轻转动雷达,确认它不会碰到其他零件,也不会被线材挡住扫描面。我见过有人把雷达装在车架边缘,结果扫描面被轮子挡住了一部分,建图的时候总是缺一块,排查了半天才发现是安装位置的问题。
5.2 惯性测量单元的安装方向与减振
惯性测量单元(IMU)用来测量加速度和角速度,它的安装方向必须和车体坐标系一致。大多数IMU模块上会标注X、Y、Z轴的方向,安装的时候要让X轴指向车体前方,Y轴指向左侧,Z轴指向上方。如果装反了,导航算法解算出来的姿态和实际完全对不上,车子会往错误的方向走。安装之前仔细看一下模块的丝印标注,不确定的话查一下数据手册。
IMU对振动非常敏感,电机转动和轮子颠簸产生的振动会耦合到加速度数据里,导致姿态解算漂移。我建议在IMU和车架之间加一层减振材料,比如橡胶垫或者海绵双面胶。减振材料不要太厚太软,否则IMU会跟着车体晃动,反而引入低频噪声。我的经验是用1到2毫米厚的橡胶垫,既能滤掉高频振动,又不会让IMU产生明显的位移。安装螺丝不要拧得太紧,稍微带一点弹性反而减振效果更好。
5.3 编码器的安装间隙与信号检查
编码器用来测量轮子的转速和转动方向,它的安装精度直接影响里程计数据的准确性。如果是光电编码器,码盘和传感器的间隙要控制在零点几毫米,太大会导致信号丢失,太小会摩擦甚至卡死。安装的时候可以用一张纸片作为间隙规,把纸片夹在码盘和传感器之间,然后固定传感器,抽掉纸片之后间隙就差不多了。如果是磁编码器,磁铁和传感器的距离也要控制好,一般在1到3毫米之间,具体看传感器规格。
编码器装好之后,不要急着装轮子,先用手转动电机轴,同时用万用表或者示波器观察编码器的输出信号。正常的编码器输出应该是干净的高低电平切换,如果信号波形有毛刺或者占空比明显不对,可能是间隙不合适或者接线有问题。我习惯在组装阶段就把编码器的计数方向确认好,往前转轮子的时候计数增加,往后转计数减少,这样后面调试里程计的时候就不用再改代码了。
6. 上电前的最后检查:别让一个小失误烧掉整块板子
6.1 用万用表做一遍通断和短路检查
所有线接完之后,不要直接上电,先用万用表做一遍检查。第一步是测电源正负极之间的电阻,确认没有短路。正常的电阻值应该在几百欧姆以上,如果接近零欧姆,说明有短路,必须排查。第二步是测各路电源的输出电压,确认分电板输出的电压和极性正确。第三步是测信号线的通断,确认从主控板到驱动器和传感器的每一根线都导通,没有虚接。
这一步花不了几分钟,但能避免很多烧板子的事故。我见过有人接完线直接上电,结果电机驱动器的电源正负极接反了,啪的一声一股青烟,驱动器直接报废。还有一次是信号线的地线没接,主控板能收到信号但电平不对,折腾了半天才发现是共地的问题。万用表检查是最便宜也最有效的保险,千万别省这一步。
6.2 分级上电:先逻辑后动力
检查通过之后,上电也要分步骤。我习惯先只给主控板和传感器上电,不接电机电源。观察主控板的指示灯是否正常,传感器是否被识别,通过串口或者调试接口看一下数据是否正常。这一步确认逻辑部分没问题之后,再给电机驱动器上电。给驱动器上电的时候,最好先用限流电源或者串联一个功率电阻,万一有短路也不会瞬间烧掉。
电机上电之后,先不要给控制信号,听一下有没有异常的声音,摸一下驱动器有没有发热。正常的情况下驱动器应该是安静的,温度也只是微温。如果听到啸叫或者驱动器很快发烫,立刻断电检查。确认无误之后,再通过主控板发送一个很小的速度指令,看电机是否按照预期的方向和速度转动。如果方向反了,调换电机线或者改代码里的方向设置。
6.3 第一次通电后的基础功能验证
上电成功只是第一步,还要验证各个子系统的功能是否正常。我一般会按照这个顺序检查:先看主控板能不能正常读取IMU数据,用手转动车体,观察姿态角的变化是否合理;然后看编码器数据,用手转动轮子,观察计数是否正确;接着看激光雷达数据,在雷达前面放一个障碍物,观察距离读数是否准确;最后给电机一个小速度指令,看轮子是否转动,转速是否和指令匹配。
这个验证过程不需要写复杂的代码,用现成的调试工具或者简单的测试脚本就能完成。关键是每一步都要确认数据合理,不要跳过。我见过有人组装完之后直接跑导航算法,结果车子原地打转或者撞墙,回头排查发现是IMU装反了或者编码器方向不对。如果在组装阶段就把这些基础功能验证好,后面调试算法的时候会顺利很多。
7. 组装完成后的整理与文档记录
7.1 线束整理与标识
功能验证通过之后,把线束整理好。用扎带把松散的线材固定到车架上,注意不要拉得太紧,留一点余量防止运动时扯断。每一根线最好贴上标签,标明它的功能,比如“左电机电源”“右编码器信号”“雷达数据线”。标签可以用标签打印机打,也可以用不同颜色的热缩管区分。这样后面如果出问题需要排查,不用一根一根去追线。
线束整理还有一个作用是减少故障率。松散的线材在运动过程中会晃动,长期下来可能导致接头松动或者线材内部断裂。把线束固定好之后,整个平台看起来也整洁很多,给人一种靠谱的感觉。我习惯在整理完线束之后拍几张照片,记录走线方式,后面如果拆装或者维修,可以对照照片恢复。
7.2 关键参数的测量与记录
组装完成之后,有一些关键参数需要测量并记录下来,这些参数后面配置导航算法的时候会用到。比如轮子的直径、轮距(左右轮中心之间的距离)、轴距(前后轮中心之间的距离)、编码器的线数、IMU的安装高度和偏移量、激光雷达的安装高度和水平偏移。这些参数如果测不准,导航算法算出来的里程计和实际运动会有偏差。
测量轮距和轴距的时候,用卷尺或者卡尺量轮子中心到中心距离,多测几次取平均值。轮子直径可以用卡尺量外径,或者在地上滚一圈量行驶距离再除以圈数。编码器线数查数据手册,IMU和雷达的安装位置用卡尺量它们到车体中心的距离。把这些参数记在一个文档里,标注测量日期和测量方法,后面调试的时候直接查,不用重新量。
7.3 组装过程中的经验教训记录
最后一点,也是我觉得最有价值的一点:把组装过程中遇到的问题和解决办法记下来。比如哪个螺丝容易松,哪个接口接触不良,哪个传感器对振动敏感,这些信息在后面的使用和维护中非常有用。我习惯用一个简单的表格记录,列出问题现象、可能原因、解决办法和最终结果。这个记录不仅帮自己记住,也能在团队协作的时候快速传递经验。
组装自主导航平台是一个不断迭代的过程,第一次装可能花两三天,第二次装可能半天就搞定,因为你知道哪里容易出问题,哪里需要特别注意。这些经验不是看教程能学到的,必须自己动手做一遍才能积累。所以不要怕犯错,但一定要从错误中学习,把每一次组装都当成一次提升的机会。