1. 从零搭建一台自主导航小车为什么“组装”这一步决定了后面所有环节的上限很多人做自主导航项目最容易犯的一个错误就是把注意力全放在算法上觉得SLAM建图、路径规划、传感器融合才是“核心技术”组装嘛拧拧螺丝、插插线的事随便搞搞就行。我一开始也是这么想的直到我在这上面栽了跟头。组装这个环节表面上看是机械和电气的活儿实际上它直接决定了你后面所有软件调试的天花板。底盘装歪了轮速里程计就是错的SLAM建出来的图会扭曲IMU没固定牢振动噪声会让姿态解算发散激光雷达装高了或者装偏了扫描平面和实际地面不平行代价地图就会出各种莫名其妙的障碍物。这些问题在软件层面排查起来极其痛苦因为你会怀疑是算法参数不对、是标定不准、是代码有bug但根源其实在组装阶段就埋下了。这篇文章面向的是正在做或者准备做自主导航小车无论是差速底盘、阿克曼底盘还是麦轮底盘的朋友不管你是学生做毕设、工程师做原型验证还是爱好者自己折腾组装这一步的细节都值得你花时间认真对待。我会把整个组装流程拆开从底盘结构、驱动系统、传感器布局到线束管理把每个环节的“为什么”讲清楚让你少走弯路。2. 组装前的整体方案设计先想清楚再动手2.1 底盘构型的选择逻辑在动手组装之前你得先确定底盘的运动学构型。这不是一个随便选的事情它直接决定了你后面用什么运动控制模型、用什么标定方法、甚至用什么SLAM方案。差速驱动是最常见的选择两个驱动轮加一个或两个万向轮结构简单运动学模型成熟原地旋转能力强适合室内窄通道场景。阿克曼转向更像汽车转弯半径大但高速稳定性好适合室外或者大场景。麦轮和全向轮可以实现任意方向平移适合需要高机动性的场景但效率低、对地面要求高。我个人的建议是如果你是第一次做自主导航项目老老实实选差速底盘。原因很简单它的运动学模型最简单标定流程最成熟出问题的时候排查路径最短。等你把差速底盘的整套流程跑通了再换其他构型也不迟。2.2 核心部件的选型与匹配选型这件事最怕的就是“每个部件单独看都很好装在一起就不行”。我见过太多人买了一个大扭矩电机结果电池放电倍率不够一加速就掉压买了一个高精度IMU结果底盘振动太大数据全是噪声。选型的时候要抓住几个核心匹配关系电机与驱动器的匹配电机的额定电压、额定电流、峰值电流必须和驱动器匹配。驱动器的持续电流要大于电机额定电流的1.5倍以上峰值电流要能覆盖电机的堵转电流。否则要么驱动器烧掉要么电机发挥不出性能。电池与整个系统的匹配电池的放电倍率乘以容量就是最大持续放电电流这个值必须大于所有用电设备峰值电流之和的1.5倍。举个例子你的电机峰值电流是5A两个电机就是10A加上工控机、传感器、灯光的功耗总共可能到15A。那电池的最大持续放电电流至少要到22.5A。一块5000mAh、10C放电的电池最大持续放电就是50A够用。但如果你用的是一块2000mAh、5C的电池最大才10A那肯定不够。轮径与减速比的匹配轮径决定了每转一圈走多远减速比决定了电机输出扭矩放大多少倍。这两个参数共同决定了小车的最大速度和最大爬坡能力。我一般会先确定我想要的最大速度然后反推需要的轮径和减速比。注意选型阶段一定要留20%到30%的余量。电机不要跑到额定功率的100%电池不要跑到最大放电倍率的100%驱动器不要跑到持续电流的100%。余量是可靠性的保障。2.3 传感器布局的初步规划传感器布局这件事最好在组装之前就在纸上画出来。你需要考虑几个问题激光雷达装多高摄像头装在哪里IMU装在什么位置编码器怎么走线激光雷达的安装高度决定了它能扫到什么。装太低地面反射和地面上的小物体容易造成干扰装太高近处的障碍物扫不到。一般来说室内导航小车激光雷达装在离地20到40厘米比较合适。另外激光雷达的扫描平面必须和地面平行否则你建出来的地图会是斜的。IMU的安装位置要尽量靠近小车的旋转中心并且要刚性固定。IMU最怕的是振动和形变如果你把它装在一块软绵绵的亚克力板上电机一转板子跟着抖IMU数据就没法用了。摄像头如果是做视觉SLAM或者目标检测安装位置要保证视野不被遮挡同时要考虑光照条件。前向摄像头一般装在车头正中央高度和激光雷达差不多或者略高。3. 底盘机械组装精度是从这里开始积累的3.1 底盘框架的搭建与找平底盘框架是整个小车的骨架它的平整度和刚性直接决定了后续所有部件的安装精度。我见过有人用亚克力板做底盘轻是轻但刚性太差装上电机之后板子会变形四个轮子不在一个平面上跑起来一颠一颠的。如果你追求精度底盘材料首选铝合金板或者碳纤维板。铝合金加工方便、成本适中、刚性足够碳纤维更轻更强但价格贵、加工难度大。亚克力板只适合做轻负载的验证平台不适合长期使用。搭建框架的时候有几个细节要注意所有安装孔位要先划线定位再打孔不要凭感觉打。孔位偏了0.5毫米装上去可能就是1度的角度偏差。螺丝不要一次拧死先全部拧上调整好位置之后再逐个紧固。这跟装家具是一个道理。如果底盘是多层结构层与层之间的支撑柱要等高。你可以用游标卡尺量一下误差超过0.2毫米就要换。找平这件事最简单的办法是把底盘放在一块玻璃板上用手按四个角看有没有翘动。如果有翘动说明底盘不平需要调整支撑柱或者加垫片。3.2 驱动电机的安装与对中电机安装最核心的要求是电机轴和轮轴要对中不能有偏心。偏心会导致皮带或者联轴器受力不均跑起来会有周期性振动严重的话会磨损轴承。如果你用的是联轴器连接电机轴和轮轴安装的时候要先松开联轴器的夹紧螺丝让两根轴自然对齐然后再拧紧。不要硬拧硬拧会让联轴器内部产生应力时间长了会断裂。如果你用的是同步带传动带轮的平行度很关键。两个带轮的端面要在同一个平面上误差不要超过0.5毫米。你可以用一把直尺靠在两个带轮的端面上看有没有缝隙。有缝隙就说明不平行需要加垫片调整。电机的固定螺丝一定要加弹簧垫圈或者螺纹胶。电机振动很大不加防松措施的话跑一段时间螺丝就会松。我有一次就是因为电机螺丝松了电机歪了皮带掉了小车直接趴窝。3.3 从动轮与悬挂的调整从动轮看起来简单其实也有讲究。万向轮的安装高度要和驱动轮匹配保证底盘水平。如果万向轮比驱动轮高驱动轮承受全部重量摩擦力增大耗电增加如果万向轮比驱动轮低驱动轮可能打滑里程计不准。调整的方法是把底盘放在平地上用塞尺或者纸片测量每个轮子和地面之间的间隙。理想情况下所有轮子都应该刚好接触地面驱动轮稍微多一点压力。如果你的小车有悬挂系统调整悬挂的预压很重要。预压太小底盘会晃预压太大悬挂失去作用。我一般会把悬挂调到用手按下车身松手后车身回弹一次就稳定不要来回振荡。4. 电气系统组装线束是可靠性的生命线4.1 电源分配与保护设计电源系统是整个小车的血液设计不好轻则干扰严重重则烧板子。我建议电源分配按照“分级保护、独立供电”的原则来做。主电池出来之后先经过一个总保险丝或者断路器然后分成几路一路给电机驱动器一路给工控机或者主控板一路给传感器一路给外设。每一路都要有独立的保险丝或者限流保护。为什么要独立供电因为电机启动和停止的时候会产生很大的电流冲击和电压波动如果和传感器共用一路电源传感器的供电会被拉低导致数据异常甚至复位。我吃过这个亏激光雷达和电机共用一路电源电机一加速激光雷达就掉线排查了好久才发现是电源问题。如果你的传感器对电源质量要求高可以考虑加一个DC-DC隔离模块把传感器供电和动力供电完全隔离开。虽然成本高一点但稳定性提升非常明显。4.2 电机驱动器的接线与配置电机驱动器的接线最核心的原则是动力线和信号线分开走不要捆在一起。动力线上有大电流高频开关噪声会耦合到信号线上导致控制信号出错。驱动器的电源输入线要尽量短粗减少线路压降。线径的选择可以参考这个经验值持续电流10A以下用1.5平方毫米10到20A用2.5平方毫米20到30A用4平方毫米。不要觉得线粗了浪费线细了发热严重压降大电机出力不足。驱动器的控制信号线如果是PWM和方向信号最好用双绞线或者屏蔽线。屏蔽层单端接地不要两端都接否则会形成地环路。配置驱动器的时候有几个参数必须设置正确参数说明常见设置电流限制限制电机最大电流额定电流的1.5到2倍加速时间从0到最大速度的时间0.5到1秒太短会过流减速时间从最大速度到0的时间0.3到0.5秒死区时间防止上下桥臂直通根据驱动器手册设置注意驱动器参数设置完之后一定要先空载测试确认电机转向正确、调速平滑再装上轮子。带载测试如果发现异常立刻断电检查。4.3 传感器与主控的连线规范传感器连线最怕的是“看起来接对了实际上接触不良”。我建议所有信号线都用带锁扣的连接器比如JST-XH或者杜邦线加锁扣。普通的杜邦线插上去振动几下就松了。走线的时候要遵循几个原则信号线远离动力线至少保持5厘米以上的距离。如果实在避不开交叉走不要平行走。线束要用扎带或者螺旋管固定不要让线悬空晃动。留出适当的余量不要拉得太紧但也不要留太多导致缠绕。IMU的连线要特别注意I2C或者SPI的线不要太长一般不要超过20厘米。线太长会导致信号质量下降数据出错。如果IMU必须装得离主控远考虑用CAN或者RS485接口的IMU。编码器的线也要用屏蔽线并且屏蔽层要接到主控的地。编码器信号是脉冲信号容易受到干扰干扰之后里程计就会跳变。5. 传感器安装与标定数据质量的决定性一步5.1 激光雷达的安装与水平校准激光雷达的安装最重要的就是水平。如果雷达倾斜了扫描出来的点云就不是一个平面而是一个斜面。你建出来的地图会有坡度导航的时候会出各种奇怪的问题。校准水平的方法很简单把小车放在水平地面上用一把水平尺放在雷达的安装面上看气泡是否居中。如果不居中在雷达和支架之间加垫片调整。调整到水平尺气泡居中为止。雷达的安装高度也要注意。太高了近处盲区大太低了地面反射严重。我一般会把雷达装在离地25到35厘米的位置这个高度既能扫到地面上的小障碍物又不会因为太低而扫到自己的底盘。另外雷达的扫描平面最好稍微向下倾斜1到2度。这样可以让雷达扫到更多的地面信息同时减少远处墙壁的反射干扰。但不要倾斜太多否则地面点云太多会增加计算负担。5.2 IMU的安装与初始校准IMU的安装位置要尽量靠近小车的旋转中心并且要刚性固定。什么叫刚性固定就是IMU和底盘之间不能有弹性形变。如果你用双面胶粘那不行双面胶有弹性电机一转IMU就会晃。正确的做法是用螺丝把IMU模块拧在一个金属或者硬塑料支架上支架再拧在底盘上。IMU安装的方向也很重要。一般来说IMU的X轴指向小车前方Y轴指向左方Z轴指向上方。安装的时候要确保这个方向正确否则后面的姿态解算会出错。安装完之后要做初始校准。校准的内容包括零偏校准和尺度因子校准。零偏校准就是让IMU静止放置一段时间采集数据计算陀螺仪和加速度计的零偏。尺度因子校准需要把IMU放在已知角速度或者已知加速度下对比输出值和真实值。对于大多数消费级IMU零偏校准是必须的尺度因子校准可以用出厂参数。校准的时候要注意IMU要放在水平、无振动的台面上校准时间至少30秒取平均值。5.3 轮速里程计的标定方法轮速里程计是最基础也是最容易被忽视的传感器。它的标定精度直接影响SLAM的建图质量和导航的定位精度。标定的核心参数是两个轮径和轮距。轮径决定了每转一圈走多远轮距决定了差速转向时的角速度计算。标定轮径的方法在地面上画一条直线让小车走一段距离比如5米记录编码器的脉冲数。然后计算轮径 距离 / (脉冲数 / 每转脉冲数) / π。重复三次取平均值。标定轮距的方法让小车原地旋转360度记录左右轮的脉冲数。然后计算轮距 (左轮距离 - 右轮距离) / 旋转角度。同样重复三次取平均值。注意标定的时候要保证地面平整、轮胎气压正常、负载和实际使用一致。负载变了轮胎的压缩量变了轮径也会变。6. 整机联调与常见问题排查6.1 上电前的安全检查清单在第一次上电之前一定要做一遍完整的检查。我整理了一个清单每次组装完新机器都会过一遍电源正负极有没有接反用万用表量一下。所有保险丝是否安装正确额定电流是否匹配电机驱动器使能信号是否处于关闭状态所有连接器是否插紧有没有松动线束有没有短路风险特别是裸露的焊点。底盘上有没有遗留的螺丝、垫片等金属异物上电的时候建议用可调电源限流供电先设置一个很小的电流限制比如0.5A看有没有异常。如果没有异常再逐步放开电流限制。6.2 电机转向与编码器方向的匹配电机转向和编码器方向必须匹配否则会出现“正反馈”现象你让电机正转编码器读数减小控制器以为电机没转继续加大输出最后电机飞车。检查方法给电机一个小的正转指令观察编码器读数是否增加。如果减小说明编码器方向反了需要把编码器的A、B两相接线对调或者在软件里取反。两个电机的转向也要匹配。左轮正转时小车前进右轮正转时小车也应该前进。如果右轮反转把右轮电机的两根动力线对调。6.3 常见问题速查表现象可能原因排查方法上电后无反应电源未接通、保险丝熔断万用表量电压、检查保险丝电机不转使能信号未给、驱动器故障检查使能引脚、量驱动器输出电机抖动不转缺相、霍尔线接错检查电机线、霍尔线顺序编码器读数跳变干扰、接触不良检查屏蔽线、更换连接器IMU数据噪声大振动、固定不牢加固IMU支架、加减震垫激光雷达掉线供电不足、线缆松动独立供电、检查连接器小车跑偏轮径不一致、电机转速不匹配重新标定轮径、校准PID原地旋转时里程计不准轮距标定错误重新标定轮距6.4 振动与噪声的抑制经验振动是自主导航小车的隐形杀手。它会影响IMU数据、导致螺丝松动、加速线缆磨损。抑制振动要从源头和传播路径两方面入手。源头方面电机要做动平衡联轴器要选弹性联轴器轮胎要选软硬适中的橡胶轮。传播路径方面电机和底盘之间加橡胶减震垫IMU和底盘之间加减震球线束用软性固定。我试过在电机支架和底盘之间加一层3毫米厚的橡胶垫IMU数据的高频噪声明显降低。但要注意减震垫不能太软太软了电机会晃反而影响传动精度。7. 组装完成后的验证与记录7.1 静态验证项目组装完成之后不要急着跑算法先做静态验证。静态验证包括称重记录整机重量和设计值对比偏差超过10%要检查。尺寸测量记录轴距、轮距、离地间隙和设计值对比。电气检查量各路电压、静态电流确认在正常范围。通信检查确认主控和所有传感器通信正常数据刷新率符合预期。这些数据要记录下来后面调试的时候有参考。比如你发现小车跑起来电流比静态大很多那可能是传动阻力太大需要检查。7.2 动态验证项目静态验证通过之后做动态验证。动态验证从简单到复杂直行测试让小车走直线看跑偏多少。5米跑偏超过10厘米就要检查。旋转测试让小车原地转360度看里程计角度和实际角度差多少。爬坡测试让小车爬一个已知坡度的斜坡看能不能上去电流多大。制动测试让小车全速前进然后急停看制动距离和稳定性。这些测试的数据同样要记录。我一般会建一个表格每次修改组装或者参数都记录一次方便对比。7.3 组装文档的整理最后别忘了整理组装文档。包括物料清单、装配图纸、接线图、参数配置、测试记录。这些东西当时觉得麻烦后面维护或者复制的时候就知道有多重要了。我自己的习惯是用一个文件夹里面放BOM表Excel、接线图用draw.io画的、测试记录Markdown表格、照片和视频。每次改动都更新版本号管理。组装这一步说到底是给后面的算法调试打地基。地基打得牢后面调参就是锦上添花地基没打好后面就是无休止的填坑。我踩过的坑包括但不限于电机螺丝松了导致皮带脱落、IMU用双面胶粘导致数据全是噪声、激光雷达和电机共用电源导致频繁掉线、轮径标定错误导致建图扭曲。每一个坑都让我多花了好几天时间排查。所以如果你正在做自主导航项目我的建议是在组装上多花一天时间把每个螺丝拧紧、每根线固定好、每个传感器校准到位。这一天的时间会在后面的调试中十倍百倍地还给你。