1. 项目概述与方案选型
1.1 这个项目到底在做什么
先说结论:这套东西做出来,是一架既能像多旋翼一样垂直起降、悬停,又能像固定翼一样平飞巡航的VTOL固定翼。它用APM或PIXhawk飞控板作为大脑,跑Ardupilot或PX4固件,通过QGC或Mission Planner地面站完成全部调试。之所以写这个系列,是因为我自己在从零装这架飞机、调通软硬件的过程中踩了不少坑,很多资料分散在官方Wiki、论坛帖子和各种群聊记录里,系统性不够,而且绝大多数教程只讲了多旋翼的调试流程,VTOL固定翼的安装调试细节几乎没人讲透。这个系列就是补这个空白的。
适合看这篇文章的人,我大致分三类:
- 已经飞过自组多旋翼、对Pixhawk或APM的接线和校准流程有基本概念,想进阶做VTOL固定翼的玩家。
- 有一定固定翼飞行经验,但没接触过开源飞控,想通过开源飞控实现垂直起降和自动航线功能的朋友。
- 做毕设、竞赛或行业应用项目,需要从零搭建一套可复现的VTOL载机平台的学生或工程师。
不管你是哪一类,只要手里有板子、有飞机,跟随这个系列的步骤走完,就能得到一架可以在Mission Planner里解锁、手动起飞、切换固定翼模式平飞的VTOL。
1.2 为什么选Ardupilot/PX4这个组合,不选成品飞控
市面上成品飞控,比如大疆的N3、A3,或者一些商业垂起飞控,确实开箱体验好,但有两个问题:一是贵,二是黑盒。VTOL垂直起降固定翼这种机型,气动布局千差万别,过渡速度、转换逻辑、倾转舵机混控比这些参数,必须要能自己调、自己改,黑盒飞控很难做到。而Ardupilot和PX4这两大开源固件阵营,在VTOL支持上都相当成熟,特别是Ardupilot的QuadPlane框架,已经迭代了很多年,稳定性在圈子里有口皆碑。
选型上的逻辑,我拆开说:
- Ardupilot的QuadPlane:把多旋翼和固定翼融合在一套代码里,起飞、降落、平飞、转换都在一个模式内完成,参数体系统一,Mission Planner地面站功能极强。适合绝大多数DIY玩家和行业应用开发者。
- PX4的VTOL框架:对标准VTOL(尾座式、倾转旋翼、复合翼)都有支持,代码结构更工程化,适合有嵌入式开发背景、希望深度定制固件的人。
- APM和PIXhawk硬件:APM 2.8是入门的老将,性能有限但皮实耐用,适合预算紧张、飞小型VTOL的场合;Pixhawk系列(包括Pixhawk 2.4.8、Pixhawk Cube、Holybro的Pixhawk 4等)性能强、接口丰富,是绝大多数VTOL项目的合理选择。
我在自己的项目里选的是Pixhawk 2.4.8硬件的烂大街版配Ardupilot QuadPlane固件,原因很简单:这个组合的资料最多、社区最活跃、出问题好排查。如果你用PX4,那文章里的很多校准时序依然通用,只是地面站换成QGroundControl,参数名和模式名称略有差异。
1.3 硬件选配清单与避坑建议
VTOL固定翼的硬件架构是两个系统的叠加:固定翼的推力系统(电机、电调、舵面)加多旋翼的升力系统(通常4个垂直电机,也有2个或6个的布局)。这就意味着硬件清单比纯固定翼或纯多旋翼都要复杂。我按实际项目里用的配置列出清单供参考:
- 飞控:Pixhawk 2.4.8(8M/4G版本均可,我用的是8M稳定版),配I/O PWM扩展板,确保有足够的PWM输出通道。注意:VTOL至少需要8个PWM输出通道,4个给垂直电机、1-2个给固定翼电机、2-4个给舵面。
- 固定翼动力:朗宇X2814 900KV电机,配40A电调,用11寸或12寸折叠桨。VTOL固定翼的巡航电机不需要大拉力,重点在效率和巡航速度的匹配。
- 垂直起降动力:富斯或银燕的2204/2206电机配20A电调,带1045或8045桨。垂直电机的选择标准是:整机重量的一半以上拉力,才能保证垂直起降有足够余量。
- 舵机:固定翼副翼、升降舵、方向舵各一个,用9g金属齿舵机即可,倾转机构如果是倾转旋翼布局,则需要更大扭力的舵机。
- 传感器:GPS模块(我用的是M8N,带罗盘),空速计(固定翼必备,用于过渡速度和失速保护判断),数传模块(3DR 433MHz或915MHz均可,看当地频段许可)。
- 电池:4S 5200mAh锂电池,既要满足垂直起降的大电流放电需求,又要照顾巡航时的能量密度。
装机时有几个坑我提前说:电调给飞控供电时,BEC输出一定要统一电压标准,不要让垂直电调和固定翼电调的BEC同时给飞控供电,容易烧板载稳压;GPS模块必须远离电源线和电机,磁罗盘干扰会导致解锁后乱转;空速管要装在机身侧面或机翼下表面,不能在螺旋桨滑流区域内。
2. 固件烧录与地面站环境搭建
2.1 固件选择:Ardupilot还是PX4,不要纠结
选固件前,先搞清楚自己的需求。Ardupilot和PX4都能驱动VTOL,但设计哲学和操作方式完全不同。我站在“以最低成本、最高效率完成首飞”的角度,建议新手选Ardupilot,原因如下:
- Ardupilot的QuadPlane过渡逻辑是“自动判断空速+高度”,只要参数配置正确,过渡过程完全是固件自动完成的,你只需要在遥控器上切换模式。
- Mission Planner(简称MP)的图形化校准向导极其友好,传感器校准、遥控器校准、电调校准都一步步引导,对首次接触飞控的人几乎没有门槛。
- 参数体系是集中式的,CTUN、Q_ENABLE、Q_A_RAT_RLL_P这类命名规则清晰,社区里QuadPlane参数模板资源非常多,抄作业很方便。
PX4的优势在于代码结构清晰、支持多机仿真(Gazebo)、适合算法开发和学术研究,同时QGroundControl配合PX4 SITL仿真,可以在电脑上跑通整个VTOL任务流程。如果你要发论文或者做嵌入式二次开发,PX4更合适。
我的建议是:如果你要载机去实操、去试飞、去完成任务,选Ardupilot;如果你要做开发、做仿真、做代码定制,选PX4。这两个固件在装机阶段的物理接线是完全一样的,区别只在固件烧录后用哪个地面站去校准参数。下文以Ardupilot为主详细展开,PX4用户可以参考步骤,把MP换成QGC、把参数名对照着查即可。
2.2 Mission Planner安装与固件烧录步骤
Mission Planner是Windows下最顺手的Ardupilot地面站,安装包从官网下载,这里强调几个细节:
- 安装路径不要有中文和空格。MP的驱动程序和地面站软件会读取配置文件路径,中文路径经常导致驱动安装失败或地面站连接报错。
- 先装驱动再连飞控。在MP安装完成后,用USB线连接Pixhawk,Windows第一次识别会提示安装驱动。如果识别不了,打开MP的“安装驱动”按钮,或者用Zadig工具手动给飞控装上“libusb-win32”驱动。这个坑几乎每个新手都会踩,我在帮朋友装的时候遇到最多的问题就是“设备管理器里能看到端口,但MP连接不上”,原因就是驱动不对。
- 烧录固件:连接飞控后,进入MP的初始设置→安装固件界面,选择你的板型(Pixhawk1),再选择“ArduPlane”(注意不是ArduCopter,VTOL在Ardupilot体系里是固定翼固件中的QuadPlane模块)。点击上传,固件会自动烧录。
烧录时注意:不要断开USB、不要断电,烧录完成后飞控会自动重启,此时USB需要重新枚举一次,可能要等10-20秒。如果烧录失败,大多数情况是驱动问题,少数情况是飞控板本身bootloader损坏,需要重新刷bootloader。
2.3 初次连接与固件版本确认
固件烧好后,重新连接MP,在顶部状态栏选择正确的COM口和波特率,我习惯用115200,连接后MP会语音播报“Connected”。这时进入“初始设置→基本设置→飞机型号”页面,确认固件版本。Ardupilot的版本号通常在4.1.x、4.2.x、4.3.x之间,不同版本的参数名和默认值可能有差异。我用的是4.2.0,稳定性在VTOL机型上经过了大量验证,如果追求新功能可以用4.3.x,但建议等社区验证过再上。
确认固件版本后,第一件事是在MP的“配置→全参数列表”里,找到Q_ENABLE这个参数,把它设为1。Q_ENABLE是Ardupilot QuadPlane模式的总开关,不打开这个参数,飞控始终以纯固定翼逻辑运行,后面所有VTOL相关参数都不会生效。这一步是很多照着别人教程抄参数的玩家容易遗漏的,参数没生效,后面一堆问题。
3. 机架组装与硬件接线细节
3.1 机架布局设计和电机方向确认
VTOL固定翼的布局,最常见的是复合翼构型:固定翼机身+机翼,机翼上装4个垂直电机座(前二后二或前二后一),机尾或者机头再加一个推进电机。这种布局的优势是结构简单、改装容易,不需要倾转机构,过渡时只通过飞控逻辑(停垂直电机、启固定翼电机、舵面接管)完成。另一种是倾转旋翼构型,机翼上的电机可以向前倾转90度,巡航时作为拉力桨使用,效率和速度都更好,但机械结构复杂度高、调试难度大。首飞项目用复合翼构型最稳妥。
电机方向的多旋翼部分按X型或十字型定义:我用的Pixhawk,默认多旋翼是X型四旋翼定义,机身箭头方向朝机头,左前电机逆时针、右前电机顺时针、左后电机顺时针、右后电机逆时针(从机背向下看)。方向盘在MP的“初始设置→机架类型”里选“X”型,如果你装的是+型,那就选“+”。
舵机接线顺序要记住:Pixhawk的OUT1-OUT8分别对应不同的功能。对固定翼和QuadPlane来说,默认的PWM输出分配是:OUT1固定翼副翼(Aileron)、OUT2升降舵(Elevator)、OUT3方向舵(Rudder)、OUT4固定翼油门(Throttle,接推进电调信号线)、OUT5-8垂直电机1-4(按X型顺序)。不同固件版本的输出定义可能略有差异,在MP的“配置→全部参数→SERVO”相关参数表里可以查看到或修改SERVOx_FUNCTION。
3.2 供电系统与安全开关
VTOL的供电系统比普通固定翼要多一层考虑:垂直电机和固定翼电调的电流叠加,峰值电流可能达到5-60A。我用的是Pixhawk的电源模块(PM)同时给飞控供电和检测电压电流。电源模块串联在主电池和所有电调之间,PM的输出端给飞控的POWER端口供电,同时Pixhawk还有一个独立的“备用电源”接口,可以接一个BEC或者备用电池,避免主电源模块故障导致飞控掉电失控。
安全开关这一步我不能省:Pixhawk的安全开关是一个外接按钮,上电后飞控进入待解锁状态,必须按一下安全开关,飞控状态指示灯变为双闪后才能通过遥控器或地面站解锁。这在VTOL机型上尤其重要,因为VTOL的电机多、总功率大,误解锁的后果非常严重。我在装机时会把安全开关固定到机身的侧面,方便地面操作,同时每次起飞前习惯性确认安全开关状态灯是否正常。
3.3 空速计、GPS与罗盘的安装规范
空速计对固定翼来说不是可选项,是必选项。Ardupilot的QuadPlane在判断“是否达到过渡速度”时,依赖空速值来判断能否安全地进行模式转换。空速计安装在机翼下方或机身侧面,要求前方气流不受螺旋桨滑流影响,且空速管进气管不能被遮挡。接线用I2C连接到Pixhawk的I2C接口(有的空速计是模拟接口,接在ADC口,要注意区分)。装好后在MP里“初始设置→必要硬件→空速计”里选择对应类型并做零点校准。
GPS模块尽量安装在机身最高点,远离电机、电池和电源线。特别提醒:很多Pixhawk 2.4.8的GPS模块是GPS+罗盘二合一的,这个内置罗盘在装机时非常方便,但也意味着如果GPS位置离飞控很近且飞控内部磁场被干扰,罗盘数据就废了。我的做法是GPS安装在机翼上方支架上,高出机翼表面20厘米以上,同时用MP的罗盘校准界面查看磁场干扰值,如果场强超过正常范围就移位置。罗盘校准的流程是:连接飞控→初始设置→必要硬件→罗盘计,选择“现场校准”,然后按提示把机架在空中旋转多个角度,每个面停留数秒。这个校准对VTOL至关重要,因为VTOL有8个电机同时大电流放电,磁场环境比一般固定翼恶劣得多。
4. 传感器校准与遥控器设置详解
4.1 加速度计、水平仪校准
传感器校准是整个调试流程里最不能跳过的环节。我在实际测试中发现,很多首飞炸机的案例,根本原因就是校准不规范:要么没有在水平面上校准,要么校准时机架被风吹动了,要么使用了不正确的机架方向。
加速度计校准步骤(MP):初始设置→必要硬件→加速度计,点击“校准加速度计”。选择机架方向为“None”(Pixhawk默认机头朝前,平放),然后按MP提示,依次把机架摆在以下六个位置,每个位置点击“校准”:
- 水平平放(机背朝上)
- 左侧朝下(右机翼朝上)
- 右侧朝下(左机翼朝上)
- 机头朝下
- 机头朝上
- 机背朝下(倒扣)
每个位置保持静止,等待进度条走完。水平仪校准则是在加速度计校准完成后,点击“校准水平仪”,此时机架必须处于水平状态,飞控会记录当前姿态为水平基准。这里有个人人都会犯的错误:水平仪校准的“水平”是以机架本身的水平为基准,不是以桌面水平为基准。如果机架装在机身里时装歪了,校准后悬停就会漂。装机的物理水平比校准时的水平更关键。
结束后,在MP飞行数据页面切换到“姿态”视图,慢慢转动飞机,观察地平线指示是否跟随机身同步变化。如果某个方向反了,多数是加速度计方向设置不对,也可能是飞控安装方向参数AHRS_ORIENTATION设置错误。
4.2 罗盘校准与磁场干扰排查
罗盘校准的完整流程分三步:
- 外接罗盘选择:如果GPS模块带罗盘且正确接线,MP的罗盘列表里会出现两个罗盘(飞控内置和外接)。正确做法是启用外接罗盘(通常为COMPASS_PRIMARY=0或1,取决于哪个是主罗盘),禁用内置罗盘,避免两者数据冲突。
- 现场校准:点击“罗盘计→现场校准”,将机架按各个方向旋转。注意要大范围转动所有面,包括上下翻转,然后点击完成。如果校准过程中MP界面上的干扰指数超过红色阈值,说明环境有强磁场源,需要找到并远离。
- 检查干扰:校准完成后,在MP的数据页面看罗盘航向值,缓慢转动飞机,观察航向是否平滑跟随。如果数值跳变严重,可能是电机大电流或电源线形成的磁场干扰。
本来这块就很值得展开,我的经验是,在机架未装电机前先做一次罗盘校准,再装好电机后重做一次,如果两次校准数据差异过大(超过50),说明电机或电源走线对罗盘的影响很大,需要优化布局或者把GPS罗盘移到更高更远的位置。
4.3 RC遥控器校准、飞行模式通道设置与解锁测试
遥控器校准在MP的“初始设置→必要硬件→遥控器校准”里,按提示操作。关键是:测试过程中,发射机油门、方向、副翼、升降各通道的行程范围要正常显示,拨动开关时对应通道的值要变化。如果某个通道没反应,多半是接收机接线问题或PWM通道定义不对。
接下来设置飞行模式切换通道。VTOL通常用遥控器的一个两段或三段开关来切换模式。在MP的“初始设置→飞行模式”页面,把Mode1设为“QLoiter”(垂直起降悬停模式)、Mode2设为“FBWA”(手动增稳固定翼模式)、Mode3设为“QStabilize”(备用模式),然后指定“选择选项”为RCx(通常是一个辅助通道)。这里有很关键的技巧:VTOL的默认起飞模式是QLoiter,降落推荐用QRTL(自动返航垂直降落)。在遥控器上不要设置成纯固定翼的Auto模式,否则飞控会自动进入固定翼巡航逻辑,而不会执行垂直降落。
解锁测试是不上电螺旋桨的情况下做的:把遥控器油门放最低,按安全开关,听到飞控“滴”一声模拟解锁,然后推动油门看MP的频道监视器里的通道值是否响应。如果报无法解锁,最常见的原因是“遥控器油门通道方向反”,或者“安全开关没有闭环”,以及“罗盘未校准”。这些在MP的HUD页面会以红色文字提示原因,按提示逐个解决就好。
5. 电调校准与电机出力方向测试
5.1 电调校准的两种方式与操作细节
电调校准是VTOL装机里最容易被忽视却最容易出事的环节。Ardupilot提供了两种方式:
方式一:通过飞控做电调校准断开螺旋桨,用USB连接飞控,在MP的“初始设置→必要硬件→电调”里选择“PWM校准”或“油门校准”,按照提示操作。飞控会依次给电调发出最大、最小油门信号,电调会伴随提示音完成范围记录。这种方式适合所有电调都接在飞控PWM输出口的情况。要注意:VTVOL的垂直电机电调和固定翼电调最好同时校准,否则两者油门响应范围不一致,起飞时某个电机先转、某个后转,飞控会认为出力不平衡,产生疯狂修正甚至翻机。
方式二:直接通过接收机油门通道校准把每个电调信号线单独接到接收机油门通道,用遥控器油门最高、上电、听提示音,再把油门最低、确认提示音,完成单只电调的校准。这种方式适合混合布局中个别电调用了BEC且无法被飞控接管的情景,效率低但可靠。
我校准完后的检查习惯是:第一次给垂直电机通电时,手拿一根小木棍轻轻触碰电机座,感受电机的启动时机和转速变化是否平滑。如果电机有抖动、异响、转速跳变,八成是电调校准不正确,或者电机三根线相序接错导致反向。电机反向时不需要换线,在MP的参数列表里找到对应电机的“MOT_x_REVERSED”或“SERVOx_REVERSED”参数,把值改为1即可。
5.2 电机出力方向验证:一次都不能省
在装螺旋桨之前,用MP的“电机测试”功能(初始设置→必要硬件→电机测试),每个通道逐一单独转动,确认:
- 垂直电机的旋转方向与机架定义一致(前右逆时针、前左顺时针等,以X型定义为准)。
- 固定翼推进电机的方向是向后吹风(从机尾看逆时针),确保拉力向前。
- 如有异常,先检查电调接线和电机相序,再查参数是否有反转设置。
这里特别提醒:全程装螺旋桨测试是非常危险的行为。我见过有人在桌子上一晚上测试电机,不小心碰到油门把手,螺旋桨直接切到手臂。所有电调校准和电机测试,一定卸掉螺旋桨。装桨后的第一次通电测试,要把机架用扎带固定在重物上,或者用绳索绑在测试台架上,人站在机头侧面,做好心理准备随时断开电池。
5.3 舵机行程量设置与方向检查
VTOL固定翼的舵面控制从解锁的那一刻起就开始生效,所以舵机方向和行程量必须在地面就完成验证。在MP的“初始设置→必要硬件→舵机测试”里,可以手动拨动各通道,观察舵面运动方向:
- 副翼:拨动副翼摇杆向右,右副翼应上翘、左副翼应下压(让机翼向右滚转)。
- 升降舵:拉杆(往后拉摇杆),升降舵应上翘(机头向上)。
- 方向舵:踩右舵(摇杆右),方向舵应向右偏转。
如果方向反了,在对应SERVOx_REVERSED参数里反转,或者直接调换舵机信号线的正负极极性(注意:部分舵机不能通过反接改变方向,需要改参数)。
检查完方向后,设置舵机行程量(SERVOx_MIN、SERVOx_TRIM、SERVOx_MAX)。常规9g舵机行程约±60度,实际舵面偏转按机型的舵面效率和稳定性需求调整,一般副翼设定±20度、升降舵±15度、方向舵±20度。参考机型的设计手册或相似机型的参数,不要盲目调最大,容易造成舵面在大速度下阻滞失速。
6. 完成首装后的自检流程与常见报错处理
6.1 上位机解锁前的完整自检清单
首装完成后,不要急于解锁。我一般会做下面这个自检流程,大约10分钟,可以在很大概率上避免第一次通电时的各种意外:
- 电源检查:电压在2S-6S范围内,MP显示电压和实测电压误差在0.2V以内。
- GPS状况:室外空旷处上电,等待GPS定位,MP显示卫星数量至少10颗以上,水平定位精度HDOP小于1.0。
- 罗盘检查:旋转机架,航向角变化平稳,与机头实际指向一致,罗盘干扰指数低于30。
- 空速检查:空速计读数在0附近(允许±1m/s的小波动),大于±3m/s说明管路漏气或传感器故障。
- 遥控器全面测试:把每个通道反复大幅度运动10次以上,观察MP里的通道监视数据没有跳变、漂移和迟滞。特别注意油门通道在最低位时MP显示“油门微调已设置”。
- 电机转向测试:已卸桨,用电机测试功能逐个转电机,确认转向、有无异响。
- 舵面运动:在FBWA模式下拨动各个摇杆,确认舵面方向、舵量正常。
这个过程建议录屏或者拍照存档,尤其是第一次调试镜头里的舵面方向和电机转向视频。后面调参时如果要回溯问题,对比初始状态记录能省不少时间。
6.2 常见的解锁报警与针对性排查
我整理了调试过程中高频出现的预解锁报警,都附了排查思路:
| 报警信息 | 含义 | 排查方向 |
|---|---|---|
| PreArm: RC not calibrated | 遥控器未校准 | 重做遥控器校准;确认油门在最低位 |
| PreArm: Compass not healthy | 罗盘异常 | 检查GPS罗盘接线;重新罗盘校准;更换罗盘位置 |
| PreArm: GPS not healthy | GPS无定位 | 挪到室外重新搜星;确认GPS类型和波特率正确 |
| PreArm: Airspeed not healthy | 空速计未就绪 | 检查空速管连接;重新执行空速零点校准 |
| PreArm: Check Board Voltage | 板载电压异常 | 检查电源模块接线;更换电源线 |
| PreArm: Motors not armed | 电机未解锁 | 检查安全开关状态;确认电调已上电;检查PWM输出正常 |
| PreArm: INS not calibrated | 惯性传感器校准异常 | 重做加速度计和水平仪校准 |
| PreArm: Need 3D Fix | GPS未3D定位 | 等GPS解析到3D定位或更改GPS模式 |
如果解锁时MP提示多条报警,不要一条条硬解,先通读所有报警信息,往往它们指向同一个根源。比如GPS没定位和罗盘异常同时出现,大概率是GPS/罗盘一体模块的接线问题,而不是两个故障。
6.3 装机调试中的物理安全注意事项
VTOL机型的装机调试涉及8个动力输出通道,整体功率输出远大于普通固定翼。我给自己定的几条安全规则:
- 调试现场必须有第二人在场,特别是首次通电测试,一个人操作、一个人在断电开关旁边待命。
- 安装螺旋桨前后必须有明显的状态区分,比如卸桨时在机头放一块红色抹布,装桨后再收起。
- 电机测试时人是站立姿态且位于机身侧面,不能蹲在机头正前方。
- 电池电压低于3.7V/片后立刻停止所有通电测试,电池过放会坏。
- 锂电池充电和存放用专业防爆袋,远离易燃物。
这些都是常规操作,但在实际调试中,人一忙就容易忽略。我吃过这方面的教训:有一次测试垂直电机时忘了卸桨,遥控器放在桌面,误触油门,瞬间整架机在桌面上跳起来切断了三根束线带,还好人不在正面。后来我的调试场地划定了一个“动力区”,只有装了桨、电池固定、遥控器握在手里时才允许在这个区域通电。
7. 写在最后:调参之前的准备
这篇写完,装机和基础校准的流程基本就全了。硬件装好、固件烧好、传感器校准完、电调电机正常、遥控器映射正确——到这里,你的VTOL已经达到可以上电试车的状态了。下一篇我会重点讲QuadPlane的核心调试内容,包括Q_ENABLE参数组、垂直悬停PID整定、过渡速度设置、姿态转换逻辑和自动航线的完整调参流程。这些参数调好了,VTOL才能真正从“能解锁”变成“好飞”。
最后再分享一个我个人的体会:装机调试的阶段最容易让人着急,总觉得多旋翼一晚上就装好了、VTOL怎么这么繁琐。但VTOL本来就是一个两套飞行系统叠加的复杂平台,硬件和固件层面多花一个星期,后面试飞和调参会省出一个月的返工。耐心做完每一步校准和检查,尤其是传感器校准和电机方向确认,再去碰参数,首飞成功率会高很多。