ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Pixhawk飞控改装差速无人车:从接线到Mission Planner配置全指南

Pixhawk飞控改装差速无人车:从接线到Mission Planner配置全指南 手头有一块Pixhawk 2.4.8除了拿来飞四轴还能干什么我给的答案是把它装到一台两个电机驱动的差速底盘上配合Mission Planner地面站通过遥控器就能操控一辆无人车前后行驶、左右转弯。这篇文章记录的就是这个项目从接线到配置、从解锁到路测的完整过程。我尽量把每一步为什么这么做、怎么做、踩了什么坑都写清楚目标是让一个刚接触飞控的新手拿着这篇文章就能复现出一台属于自己的差速无人车底盘。1. 项目定位与差速方案解析1.1 飞控在无人车里的角色Pixhawk本质上是一个开源自动驾驶控制器核心芯片是STM32F427跑的是ArduPilot或PX4固件。很多人以为它只能控制四旋翼其实ArduPilot旗下有ArduCopter多旋翼、ArduPlane固定翼、ArduRover车辆/船等多套固件只要刷入ArduRover固件飞控的角色就从“飞行控制器”切换为“车辆控制器”。我选择Pixhawk 2.4.8而不是一块Arduino或树莓派来做车主要原因有三个。一是稳定飞控内置三冗余IMU三套加速度计和陀螺仪即使其中一套数据异常飞控也能自动切换这是自己买传感器拼单片机很难做到的事情。二是生态Mission Planner地面站提供了完整的调参、校准、日志分析和故障诊断界面新手不需要自己写上位机配置过程基本点点鼠标就行。三是可扩展性无论是后面加GPS做航线追踪加数传做实时状态监控还是加传感器做避障Pixhawk都有现成接口和固件支持。1.2 差速底盘的控制逻辑所谓差速底盘就是“左右两侧轮子各由一个电机驱动没有转向舵机”的车。它的转向原理是左右轮速度一样就直行左快右慢就向右转弯左慢右快就向左转弯两侧转速相反就能原地转圈。这种结构在机器人领域非常常见像扫地机器人、仓储AGV基本都是差速驱动。在ArduRover固件里差速模式被称为Skid Steering滑移转向。飞控内部会把遥控器的“油门通道”和“转向通道”换算成左右两个电机的目标转速。具体换算关系是目标左轮速度 油门值 转向值目标右轮速度 油门值 - 转向值正负方向可以调。所以配置的关键就是让飞控知道哪个输出接的是左轮、哪个输出接的是右轮以及电调信号的范围是多少。1.3 Pixhawk 2.4.8硬件盘点2.4.8是Pixhawk 1代系列的兼容版本市面上大量存在价格比3代、4代便宜很多用来入门非常合适。它的主要资源包括8路主输出MAIN OUT用于电机/电调/PWM设备8路辅助输出AUX OUT通常用于云台、舵机等一个RC输入接口两个串口TELEM1、TELEM2通常接数传模块一个USB口一个POWER电源接口以及I2C、CAN等扩展总线。需要提醒的是2.4.8并非大疆原厂产品而是开源硬件方案的第三方复刻质量参差不齐。常见的问题有芯片贴片虚焊导致IMU数据跳变、USB接口脱落、电压检测分压电阻批次差异导致电压读不准。所以在买的时候尽量选有销量和评价的店铺到手后先在Mission Planner里看“传感器检查”页面确认三套IMU的数据都正常再上车。2. 硬件准备与接线避坑2.1 整套硬件清单这一次项目的硬件清单如下车架带差速底盘我用的是铝合金底盘加两个直流减速电机两块电调电子调速器负责把PWM信号变成电机的电压输出Pixhawk 2.4.8飞控一套含减震泡沫和电源模块遥控器加接收机航模用的至少4通道3S锂电池11.1V和对应充电器UBEC一个5V/3A降压模块给飞控独立供电Mission Planner地面站装在Windows电脑上杜邦线、XT60插头、热缩管、扎带这套配置下来除了车架和电机大部分硬件都能从航模配件里凑出来总成本可以控制在800到1200元之间主要看电机和车架档次。如果家里有旧四轴拆下来的Pixhawk和电池成本还能再低一截。2.2 电机与电调的搭配要点差速车底盘最常用的是“直流减速电机 有刷电调”也有用“无刷电机 双向无刷电调”的方案。新手做第一台车我强烈建议用直流减速电机比如常见的370、540、550级别的电机配上减速箱和编码器12V或24V供电。原因很简单控制简单、接线直观、坏了好换。电调方面要注意一个关键点差速车需要倒车所以必须选“双向电调”可正反转单向电调只能前进不能倒车。电调的电流规格要和电机匹配比如一个峰值电流15A的电机就选20A甚至30A的电调留出余量。如果电机在不平整的路面堵转电流会飙升电调选小了很容易烧。电调之间的BEC5V电源输出我也建议不要给飞控供电理由放在接线一节里说。2.3 飞控接线图解与供电设计Pixhawk 2.4.8的接线其实不复杂我把关键链路整理成下面这张表部件接到飞控哪里说明右侧电机电调MAIN OUT 1信号线插1通道正负极按电调说明左侧电机电调MAIN OUT 3信号线插3通道和右侧区分开接收机RC INPPM或SBUS信号线插到RC输入口数传模块TELEM1 / TELEM2可选没有就先USB连接UBEC输出飞控的AUX口或POWER口给飞控提供5V供电电池电调输入端、电源模块输入端动力电源从这里进为什么用MAIN OUT 1和MAIN OUT 3而不是1和2因为在ArduRover的默认通道规划里SERVO2经常被分配给转向舵机虽然差速车没有舵机但为了以后扩展方便也为了遵循官方文档的习惯驱动输出分别用1和3这个不冲突的组合。两个电调的信号线插好后地线必须和飞控共地否则PWM信号可能不稳定造成电机抽搐。供电方案这里特意说明一下。最优做法是把两个电调自带的BEC输出红线全部断开用退针器把插头里的红线退出来或者剪断后用热缩管包好然后用一个独立的UBEC给飞控供电。原因是两个电调的BEC输出电压会有微小差异同时给飞控供电时可能产生倒灌电流严重时会烧毁稳压芯片。用独立UBEC之后飞控的供电由UBEC统一提供电调只管动力输出互不干扰排查故障时也省心得多。2.4 新手接线的几个关键提醒接线是最容易出问题的一步我在实际操作中总结了几个教训。第一所有接线在通电前必须用万用表蜂鸣档量一遍正负极确认没有短路。尤其是从电调接出来的XT60插头焊点如果虚焊车辆运行震动后可能脱落瞬间造成动力中断非常危险。第二Pixhawk的RC IN接口不一定能直接容纳传统PWM接收机的多根信号线。我的接收机支持SBUS输出所以只接了一根信号线加正负极就完成了通道传输。如果你的接收机只有PWM输出需要确认它是否有PPM模式或者使用一个PPM编码器转换否则飞控识别不到信号。第三电机线先不要固定死第一次通电测试时电机如果反转直接交换电机两根线就能改方向比调参数更直观。后续正式上车电机线的每一个接头都要用热缩管包好防止户外行驶时脱落打火。3. Mission Planner配置与固件调校3.1 安装Mission Planner并连接飞控Mission Planner是Windows平台上的ArduPilot地面站官网和GitHub都可以下载。下载完成后解压把整个文件夹加入Windows Defender的白名单因为部分版本会被误报为病毒实际上它是正常的开源软件。然后插上Pixhawk的USB线系统一般会自动安装驱动如果识别不了需要在设备管理器里手动更新驱动。打开Mission Planner点击右上角的COM口下拉框选择飞控对应的端口波特率选115200USB连接一般自动识别点击“连接”。连接成功后主界面的姿态仪表盘会开始转动左上角会出现飞控的固件版本和运行时间。这一步如果连不上90%是驱动问题或者是USB线质量太差换一根带磁环的数据线往往就能解决。3.2 刷入ArduRover固件Pixhawk出厂一般默认装了某一版固件比如ArduCopter所以要做差速车第一步是刷入ArduRover。在Mission Planner顶部菜单找到“初始设置”进入“安装固件”页面页面里会列出各种机型对应的固件图标。选择并点击“固定翼/车船”图标ArduRover软件会询问是否确定点击“加载固件”开始下载并刷写。刷写前最好把SD卡从飞控上拔掉刷完再插回去。插着SD卡刷机不是不行但偶尔会因为文件系统占用导致刷机失败或日志异常拔掉最省事。刷写过程大概需要几分钟期间不要断开USB线不要开关飞控。刷完后飞控会自动重启Mission Planner会提示固件版本号。此时再去“安装固件”页面如果已经能显示Rover相关的参数就说明刷写成功了。3.3 遥控器通道校准固件刷好之后先对遥控器。进入“初始设置 → 必要的硬件 → 遥控器校准”把遥控器所有开关都拨到默认位置然后点击“校准摇杆”。这时候依次拉动油门、方向、升降、副翼等摇杆到极限位置再把开关逐一拨一遍目的是让飞控记录每个通道的最小值、最大值和中位值。校准完成后观察通道值按油门摇杆时RC3通道数值应该从1100左右变化到1900左右打方向时RC1通道对应变化。如果油门通道在Mission Planner里对应的是不正确的摇杆也不用急先在遥控器端把通道顺序调成正确的映射。有些遥控器后面板有通道映射选项比如固定翼模式THRO对应油门AIL对应方向通道。这个没有标准答案只要你在校准页面里能确认“油门杆影响RC3方向杆影响RC1”就行。3.4 输出通道与差速模式配置这是整个配置过程的重点。进入“配置”菜单找到“全部参数表”或者直接搜索SERVO。在差速小车里需要设置两个输出通道的功能SERVO1_FUNCTION设为ThrottleLeft左油门SERVO3_FUNCTION设为ThrottleRight右油门。这一步的目的是告诉飞控“1号输出负责左轮3号输出负责右轮”。这里特别注意旧教程里常让SERVO1和SERVO3都设为Throttle依赖飞控自动区分左右但在新版本固件里两种方式都能工作然而设置成名字明确的ThrottleLeft和ThrottleRight更直观也方便后面调方向。设置完输出通道后找到FRAME_TYPE参数设为2Skid Steering差速转向。这个参数告诉飞控车辆采用差速模型左右轮的期望速度由油门和方向计算得出。设置完毕后点击“写入参数”飞控保存重启。如果Mission Planner的版本较旧可能看到的是SKID_STEER_OUTPUT参数把它设为2也能起到类似效果。两种参数都涉及同一个控制模型选择当前固件支持的那个即可。3.5 电调校准与电机测试电调校准的目的是让电调知道“油门信号最小值对应零转速最大值对应满转速”。不同电调的校准方法略有差异但原理相同。比较稳妥的流程是先拆下两个轮子确保车辆不会在测试中窜出去然后在Mission Planner里选择“电机测试”逐个测试电调通道。我这里推荐用遥控器校准法先把遥控器油门推到最高保持在这个位置给飞控和电调上电听到电调发出类似“滴”的一声长鸣后快速把油门拉到最低电调会发出几声短音表示校准完成。这个过程需要两个人配合或者有助手因为一个人要拿遥控器又要看电调比较紧张。校准后在“电机测试”页面分别给1通道和3通道发送5%和10%的油门指令确认两个电机都能顺利启动且没有异响。4. 解锁、路测与常见问题排查4.1 先架起来空转再落地新车调试的步骤一定是“先架空再落地”。我见过不少新手直接放到地上试车结果电机突然反转车直接冲上墙。架空测试非常简单用两个纸箱或几本书把车架垫起来让轮子离地然后连接Mission Planner点击主界面的“解锁”按钮或者用遥控器执行“油门最低 方向舵右满舵保持2秒”的解锁动作。解锁成功后飞控会发出提示音Mission Planner主界面的状态会从“Disarmed锁定”变成“Armed已解锁”。这时慢慢推油门观察两个轮子是否同时旋转再打方向观察左右轮是否出现差速。测试时如果发现轮子转向和遥控器方向不一致就先落地前改过来改法在下一节说。整个过程中手指尽量不要离开遥控器的油门杆一有异常立刻把油门拉到零并拨动解锁开关锁定飞控。4.2 方向反了怎么办差速车方向反了通常分为两种情况。第一种是整个电机转向反了也就是推油门时前后反向这种最简单直接交换那一个电机的两根电机线即可。第二种是左右电机转向相反推油门时左轮正转右轮反转车会在原地打转这种可以把其中一个电机的两根线对调也可以去飞控输出参数里把对应通道的方向调反。注意在ArduPilot中修改通道方向有两个层面。SERVO1_REVERSED / SERVO3_REVERSED控制的是输出通道方向即电调PWM范围反向RC1_REVERSED之类参数控制的是输入通道方向。如果你发现“打方向时转向是反的”优先在遥控器端或者RC参数修正如果发现“电机在给定指令下转速方向错了”则优先改SERVO_REVERSED。用Mission Planner的“舵机方向测试”功能可以在不推油门的情况下检查每个通道的输出方向是否正常即使经验老道的玩家也建议每次都做这一步。4.3 解锁失败的常见原因飞控保护机制很完善解锁之前会做一系列自检。如果自检不通过Mission Planner会显示红色报错信息。我遇到过最频繁的几种报错分别是RC not calibrated遥控器没校准重新进入遥控器校准页面完成校准并写入。No GPS fix没有GPS定位Rover手动模式不强制要求GPS但如果固件处于某些自动模式解锁会被禁止。把模式切换到手动舵模式或者临时把GPS断开也没有关系。PreArm: ESC not detected电调未检测到检查电调信号线是否接触良好电机线是否完好。PreArm: Bad IMU dataIMU数据异常多半是飞控硬件问题先重新校准加速度计和罗盘再不行就怀疑飞控本身了。看到报错不要慌Mission Planner的报错信息已经写得比较直白了。用翻译软件逐句看一遍90%的问题都能定位。4.4 常见问题速查表我把调试过程中容易踩的坑整理成了表格方便现场对照现象可能原因处理方式推油门电机不转未解锁 / 电调没校准 / 油门通道中位不对先解锁再电调校准检查RC3值电机抖动但不转电机线接触不良 / 电调信号线共地不良检查接线和插头重新焊接左右电机转向相反电机线顺序接反交换单侧电机线或改SERVO_REVERSED遥控器没反应接收机未对频 / RC输入类型不支持重新对频检查PPM/SBUS设置打方向反应太灵敏转向通道增益太大调低转向相关增益参数解锁时提示GPS错误自动模式需要GPS切到手动模式或等GPS定位Mission Planner连不上驱动没装 / 波特率不对 / 线不好更新驱动检查端口和波特率表格里的每一条基本都是我实际踩过的。尤其是“电机抖动但不转”我在第一台车上排查了很久最后发现是电调信号线的杜邦头没有插紧造成PWM信号时断时续。后来我把所有信号线都用扎带固定在飞控外壳上再没出现过这个现象。5. 参数调优与未来扩展5.1 油门响应与速度斜坡车落地能跑之后很多人会嫌它“一冲一冲的”这是因为默认参数下油门响应比较直接。ArduRover有一组加减速限制参数名字通常以MOT_ACCEL_MAX和MOT_DECEL_MAX开头单位是油门百分比每秒。适当降低加速限制车就能平稳起步降低减速限制车减速时就不会点头那么明显。具体调整时我习惯每次只改一个参数改完后跑一段直道感受起步和刹车的平顺度。不要同时改两个参数再上路否则无法区分是哪个参数带来的变化。这个原则在所有参数整定里都是通用的一次只动一个变量。5.2 转向手感与差速灵敏度差速车的转向手感主要受转向速率上限影响。如果觉得转向太灵敏稍微动一下方向杆车就猛转可以降低转向速率限制如果觉得转向太肉转弯半径太大则调高。在Mission Planner的“配置”菜单里搜索STEER开头的参数逐个尝试。另外遥控器上如果设了“指数曲线”EXP也能让方向杆在中心附近更柔和。很多新手不知道最柔顺的操控手感不是靠飞控参数硬调出来的而是先在遥控器端把转向通道的EXP设成30%左右再配合飞控里的转向增益两个一起调才能兼顾高速稳定和低速灵活。我试过直接在飞控端把转向增益调得很低结果高速变道时转向不够低速时又太灵敏最后是遥控器EXP和飞控增益配合才达到理想手感。5.3 这个底盘还能往哪升级差速底盘只是一个起点。Pixhawk的优势在于后续扩展极其方便加一个GPS模块Mission Planner就能给车辆规划航点实现简单的自动巡航加一个数传模块可以在电脑上实时看到车辆的位置、速度和姿态跑远也不怕丢再加个激光雷达或超声波模块通过配套的避障代码车辆就有了基础的避障能力。我自己的下一步计划是给这台车加一个云台摄像头然后用数传链路在电脑端查看第一视角画面。整个项目做下来最大的体会是Pixhawk的玩法并不局限于“飞”ArduRover固件让轮式机器人的入门门槛低了很多。如果你正准备做一个有自动导航功能的无人车项目用这块飞控起步绝对比从单片机底层开始省力得多。最后再分享一个小技巧给你的飞控起一个固定的名字每次连接后用Mission Planner的“日志下载”功能保存一份行驶数据。等出问题的时候翻一翻日志往往能比现场排查多找到不少线索。这个习惯我从飞四轴一直保留到现在救过我很多次。
返回列表