1. 从零搭建一台步兵机器人硬件选型的底层逻辑很多人第一次接触RoboMaster这类机器人竞赛最容易犯的错误就是拿到规则手册就开始列物料清单看到别人用什么主控就跟着买什么结果装到一半发现供电对不上、通信协议不兼容、结构件干涉。我在前几年带新人做步兵机器人时几乎每一届都会遇到同样的问题底盘还没跑起来光是在硬件选型上就反复推倒重来两三次。硬件选型这件事本质上不是“买什么”的问题而是“先确定什么”的问题。一台步兵机器人涉及的核心模块无非几块主控与计算平台、电机与驱动、电源与配电、传感器、通信链路、结构承载。这些模块之间存在严格的依赖关系选型顺序错了后面全是返工。1.1 先定功率预算再谈其他一切我习惯把功率预算放在最前面因为整台车的重量、电池容量、电机型号、甚至结构材料的选择全都跟它挂钩。步兵机器人典型配置是四轮麦轮底盘加一个拨弹机构底盘电机通常选无刷直流电机单颗峰值功率在100W到200W之间四颗加起来峰值可能到600W以上。拨弹电机功率小一些但也要留出50W左右的余量。电池方面主流选择是6S锂聚合物电池标称电压22.2V容量在5000mAh到8000mAh之间。这里有个容易忽略的点电池的持续放电倍率必须覆盖整车的峰值电流。假设你的峰值功率是700W电池电压按22.2V算峰值电流大约31.5A。如果电池是5000mAh容量放电倍率至少要到10C才能稳定输出50A。很多人只看容量不看倍率结果一加速就触发低压保护车直接趴窝。提示功率预算不是拍脑袋估的建议把每个电机的堵转电流、额定电流、峰值电流都查清楚列一张表按最坏情况叠加。留20%到30%的余量是底线。1.2 主控平台的选择性能与生态的权衡主控这块目前常见的方案有两类一类是单片机方案比如STM32系列适合做实时控制另一类是嵌入式Linux方案比如树莓派或类似的计算平台适合跑视觉和决策。很多队伍会选择“双主控”架构STM32负责电机闭环、传感器采集和实时通信Linux板子负责视觉识别和上层决策两者通过串口或CAN总线交换数据。选STM32的时候重点看几个参数主频、定时器数量、CAN控制器数量、串口数量、ADC通道数。以STM32F4系列为例主频168MHz带两个CAN控制器对于四电机加拨弹电机的控制需求基本够用。如果要做更复杂的运动控制比如麦轮解算加PID闭环F4的计算余量还算充裕。但如果你打算把视觉也放在同一颗芯片上那就不现实了算力差着数量级。Linux板子的选择更看重接口丰富度和社区支持。需要关注的接口包括USB口数量接摄像头和调试设备、串口数量和STM32通信、网口调试和日志导出、GPIO用于外设控制。另外供电电压要匹配大多数Linux板子需要5V供电而电池是22.2V中间需要DC-DC降压模块。1.3 电机与驱动的匹配别让驱动器成为瓶颈无刷电机和驱动器的匹配是另一个高频踩坑点。电机的KV值、极对数、额定电流、峰值电流驱动器的持续电流、峰值电流、支持的最高电调频率这些参数必须一一对应。我见过有人买了一个持续电流20A的驱动器去带峰值电流40A的电机结果一上负载驱动器就过热保护。驱动器选型时持续电流至少要是电机额定电流的1.5倍峰值电流要能覆盖电机的堵转电流。另外驱动器的通信接口要和主控匹配常见的有PWM、CAN、UART。CAN总线在机器人上用得比较多因为抗干扰能力强布线也简单一根总线可以挂多个节点。注意驱动器固件版本不同支持的协议和参数范围可能不一样。批量采购前一定要拿样品实测确认通信协议和主控兼容。1.4 结构件与材料重量和刚性的博弈结构件这块碳纤维板是主流选择密度低、刚性高但价格贵、加工难度大。玻纤板便宜一些但重量上去了。铝合金件适合做承力结构比如电机座和云台支架但重量也不轻。实际做的时候通常是碳纤维板和铝合金件混用底盘大板用碳纤维电机座和受力节点用铝合金。结构设计时重心尽量低、尽量靠近几何中心这样底盘运动更稳定。麦轮布局的话四个轮子的中心距和轴距要匹配否则运动解算会出问题。拨弹机构的位置要考虑弹仓容量和供弹路径别等到装车了才发现弹道和云台干涉。2. 供电与配电机器人稳定运行的隐形基石供电系统是整台机器人最容易出问题、也最容易被忽视的部分。我见过太多队伍在调试时遇到莫名其妙的复位、通信中断、传感器数据跳变最后查来查去都是供电的问题。供电没做好后面所有的调试都是在沙子上盖楼。2.1 电池管理从选型到安全使用锂聚合物电池的使用有几个硬性规矩。第一绝对不能过放单节电压低于3.0V就可能永久损坏低于2.5V基本就废了。第二充电必须用平衡充每节电芯的电压差控制在0.05V以内。第三电池鼓包、破损、摔过之后坚决不能再用了。实际使用中建议在电池输出端加一个电压检测模块实时监测总电压和单节电压。如果主控能读到电压数据可以在低压时触发降功率或自动返航逻辑。另外电池的插头要选质量好的XT60或XT90都行但别用劣质插头接触电阻大了之后发热严重大电流下可能直接熔化。2.2 配电板设计别让一根线毁掉整台车配电板的作用是把电池的电分配到各个模块同时提供过流保护和电压转换。设计配电板时几个关键点第一主回路的走线宽度要够按峰值电流算1mm线宽大约走1A到2A留足余量。第二每个支路加保险丝或自恢复保险丝防止单个模块短路拖垮整条总线。第三大电流回路和小信号回路要分开走避免干扰。我自己的习惯是配电板上至少分出以下几路电机驱动供电大电流、主控供电5V或3.3V、传感器供电5V、通信模块供电5V或3.3V。每一路都加滤波电容电机回路加个大电容缓冲防止电机启动瞬间把电压拉低导致主控复位。2.3 电源转换DC-DC模块的选型与布局从22.2V降到5V或3.3V需要DC-DC降压模块。选型时关注几个参数输入电压范围、输出电压、最大输出电流、转换效率、纹波。输入电压范围要覆盖电池的满电电压6S满电是25.2V和截止电压一般设到19.8V左右。输出电流要按所有负载的峰值电流之和来算再留30%余量。布局上DC-DC模块尽量靠近负载减少线损和干扰。如果多个模块共用一个输入输入端加个共模电感能有效抑制相互干扰。输出端加LC滤波纹波能压到比较低的水平。实测下来纹波控制在50mV以内主控和传感器的工作会稳定很多。提示DC-DC模块的散热也要考虑尤其是大电流输出的场景。模块背面贴导热垫固定在金属结构件上能显著降低温升。3. 通信链路让各个模块说同一种语言机器人上的通信链路就像神经系统主控、驱动器、传感器、计算平台之间要实时交换数据。通信没调好轻则数据丢包重则整个系统失控。我见过因为CAN总线终端电阻没接导致电机指令时有时无车在原地抽搐的场面。3.1 CAN总线机器人内部通信的首选CAN总线在机器人上用得最多原因是抗干扰能力强、支持多节点、有优先级仲裁。标准CAN的速率可以到1Mbps对于电机控制和传感器数据采集来说够用了。接线的时候CAN_H和CAN_L要双绞终端接120欧姆电阻节点多了之后电阻要相应调整。实际调试时先用示波器看CAN_H和CAN_L的差分波形确认电平正常、没有明显反射。然后用CAN分析仪抓包看各个节点的报文ID和数据是否正确。如果某个节点一直不发数据先查供电再查波特率配置最后查终端电阻。3.2 串口通信简单但容易出幺蛾子串口通信简单直接但坑也不少。最常见的问题是电平不匹配STM32是3.3V电平有些模块是5V电平直接连可能烧接口。中间加个电平转换芯片或者选支持宽电压的串口模块。另一个问题是波特率误差。两个设备的波特率如果误差超过2%到3%通信就会不稳定。建议用外部晶振而不是内部RC振荡器精度更高。数据帧格式也要统一起始位、数据位、校验位、停止位两边必须一致。3.3 无线调试链路方便但不能依赖调试阶段无线链路能省很多事不用每次都插拔线。但无线链路的稳定性受环境影响大比赛现场2.4G频段可能很拥挤。我的建议是无线只用于调试和日志查看关键控制指令还是走有线。如果一定要用无线做控制加个超时保护信号丢了自动进入安全状态。4. 传感器与执行器感知与动作的闭环传感器和执行器是机器人跟物理世界交互的接口。传感器选型要看量程、精度、响应频率、接口类型。执行器选型要看扭矩、转速、控制精度、反馈方式。两者要匹配否则要么感知不到要么动作不到位。4.1 姿态传感器机器人的内耳IMU是机器人最核心的传感器之一用来感知姿态和角速度。选型时关注零偏稳定性、噪声密度、量程。零偏稳定性决定了姿态解算的长期漂移噪声密度影响短期精度。对于步兵机器人量程选±500度/秒左右就够用了太大精度差太小容易饱和。安装位置很关键IMU要固定在刚性好的结构件上远离电机和驱动器这些振动源。减震做得好数据质量能提升一大截。我试过用硅胶垫加配重块的方式效果比硬连接好很多。4.2 电机反馈编码器的分辨率与安装电机闭环控制离不开编码器。增量式编码器便宜、接口简单但断电后位置丢失。绝对式编码器贵一些但上电就知道位置。对于底盘电机增量式够用因为每次上电可以重新校准。对于云台和拨弹机构绝对式更方便。编码器安装时同心度很重要。偏心会导致读数周期性波动影响控制精度。联轴器选弹性联轴器能补偿一点安装误差。线缆要固定好别让编码器线跟着电机转容易断。4.3 拨弹机构从电机选型到卡弹处理拨弹机构是步兵机器人的特色模块负责把弹丸从弹仓送到发射机构。拨弹电机通常选带减速箱的直流电机扭矩要够转速不用太高。控制上用位置闭环加电流限幅防止卡弹时烧电机。卡弹是常见问题处理方式有两种一是检测电流异常后反转一下再正转尝试把卡住的弹丸挤过去二是加个振动电机卡弹时振一振。实测下来电流检测加反转的方式成功率比较高但要注意反转角度别太大否则弹丸会掉出来。5. 结构设计与装配从图纸到实车的最后一公里结构设计决定了机器人的下限装配质量决定了上限。图纸画得再好装配不到位车跑起来也是松松垮垮。我见过太多设计很漂亮但装出来一跑就散架的案例。5.1 底盘布局重心、轴距与轮距的平衡底盘布局的核心是重心位置。重心越低、越靠近几何中心运动越稳定。电池和主控这些重的模块尽量放在底盘中间偏下的位置。轴距和轮距的比例影响转向灵活性轴距短转向快但高速稳定性差轴距长则相反。步兵机器人一般轴距和轮距接近做成接近正方形的布局。麦轮的安装角度很关键四个轮子的辊子方向必须正确否则运动解算全错。装完之后用手推一下看车能不能沿直线走如果走斜线说明某个轮子装反了或者角度不对。5.2 走线与固定细节决定可靠性走线是装配中最繁琐但也最重要的环节。线缆要分类捆扎电源线和信号线分开走避免干扰。线缆长度留一点余量但别太长多余的线盘起来固定好。接插件要插紧最好用热熔胶或扎带做二次固定防止振动松脱。螺丝要加螺纹胶尤其是电机座和云台这些振动大的地方。我吃过亏云台螺丝没打胶跑了几分钟就松了云台直接歪掉。螺纹胶选中强度就行低强度容易松高强度拆不下来。5.3 防护与散热别让灰尘和温度毁了比赛机器人底部和侧面加防护板防止灰尘和弹丸碎屑进入内部。电机和驱动器加散热片大电流场景下加风扇。实测下来驱动器温度控制在60度以内比较安全超过80度就可能降频或保护。注意散热风扇的供电要独立滤波否则风扇电机的噪声会串到主控电源上导致通信异常。6. 上电调试与故障排查从冒烟到跑通第一次上电是最紧张的时刻搞不好就是一股青烟。我的习惯是上电前先用万用表把各路电源对地阻抗测一遍确认没有短路。然后分级上电先上主控再上传感器最后上电机。每上一级观察电流和温度确认正常再继续。6.1 分级上电流程与检查清单分级上电的具体步骤第一步不接电池用稳压电源限流供电电流限制设到100mA看各路电压是否正常。第二步接主控和传感器看通信是否正常数据是否合理。第三步接电机驱动器但不给电机指令看驱动器是否待机正常。第四步给电机小占空比指令看电机是否转动、方向是否正确。第五步逐步加大占空比观察电流和温度。每一步都要记录数据方便出问题时回溯。我习惯用一张检查表每完成一步打个勾没打勾的绝不进行下一步。6.2 常见故障的排查链路通信中断是最常见的故障。排查顺序先查供电用万用表测通信模块的电压再查接线看接插件是否松动、线序是否正确然后查配置波特率、终端电阻、报文ID是否匹配最后查干扰用示波器看波形是否干净。电机不转或抖动先查驱动器报错码再查编码器反馈是否正常然后查电机相线是否接错。如果编码器反馈正常但电机不转可能是驱动器使能没打开或者电流限幅设得太低。传感器数据跳变先查供电纹波再查安装是否松动然后查通信是否丢包。IMU数据跳变还可能是振动太大加减震垫试试。6.3 实战中的经验教训我踩过最大的坑是地线环路。主控和驱动器分别接地两个接地点之间有电位差导致通信误码率很高。后来改成单点接地所有模块的地线汇到一个点问题就解决了。另一个坑是电源时序。Linux板子和STM32同时上电Linux板子启动慢STM32已经开始发指令了Linux还没准备好导致数据错乱。后来加了个电源时序控制先给STM32上电延时500ms再给Linux上电就稳定了。还有一次是电机干扰导致IMU数据漂移。电机相线和IMU信号线捆在一起走电机换向时IMU数据就跳。后来把线分开走IMU线加屏蔽层问题消失。这些经验在教科书上找不到都是实际调试中一点点试出来的。硬件这东西理论是一回事实际是另一回事。多动手、多测量、多记录比看多少资料都管用。
阅读完成 · 觉得有帮助?