PX4从入门到精通:固件烧录与飞控配置完全指南
1. 引言
PX4是一款开源的自动驾驶仪软件,支持多旋翼、固定翼、垂直起降等多种无人机类型。搭配跨平台地面站QGroundControl(QGC),可以完成固件升级、参数设置、飞行监控等任务。本文将手把手带你完成PX4飞控的烧录和完整配置,让你快速上手无人机开发。
2. 准备工作
2.1 硬件清单
-
飞控:Pixhawk 4(或其他Pixhawk系列)
-
附件:
-
GPS+罗盘模块(如Here3、M8N)
-
电源模块(PM07、PM02等)
-
安全开关(部分飞控内置)
-
蜂鸣器(可选,用于状态提示)
-
-
外设:
-
遥控器(如FrSky Taranis X9D+)及兼容接收机(SBUS/PPM输出)
-
数传电台(可选,用于无线调试)
-
Micro USB数据线(至少1米,带磁环抗干扰)
-
-
其他:十字螺丝刀、扎带、双面胶、万用表(用于电池校准)
2.2 软件准备
-
下载QGroundControl
-
访问官网:https://docs.qgroundcontrol.com/master/zh/getting_started/download_and_install.html
-
根据操作系统选择对应安装包(Windows下载.exe,macOS下载.dmg,Linux通过Snap安装)。
-
安装完成后,首次启动可能需要允许网络访问。
-
-
驱动安装(Windows用户)
-
连接飞控前,确保已安装STM32 VCP驱动(可从飞控厂商官网获取)。
-
设备管理器应显示“USB Serial Device”或“COM端口”。
-
-
固件文件准备(可选)
-
若需自定义固件(如修改过源码),提前在Ubuntu下编译:
bash
cd ~/PX4-Autopilot make px4_fmu-v5_default # 以Pixhawk 4为例
生成的文件位于
build/px4_fmu-v5_default/px4_fmu-v5_default.px4。
-
3. PX4固件烧录
3.1 连接飞控
-
用USB线将飞控连接到电脑,不要插入安全开关(部分飞控需按住安全开关才能进入刷写模式,但现代飞控通常自动识别)。
-
观察飞控LED状态:
-
蓝色慢闪:无固件(首次使用或固件损坏)
-
黄色/紫色快闪:已有固件,正常启动
-
-
打开QGC,左上角应显示“Pixhawk 4”等型号,右上角提示“未连接”(此时已连接)。
3.2 进入固件刷写界面
-
点击左上角 Q图标 → 车辆设置(或直接点击顶部工具栏的齿轮图标)→ 左侧菜单选择 “固件”。
3.3 选择固件版本
QGC会自动检测飞控硬件型号,并提供固件选项:
-
PX4飞行栈:保持勾选(默认)。
-
固件版本:
-
稳定版 v1.13.x:推荐新手使用,经过充分测试。
-
每日构建版:包含最新功能,但可能存在未修复的Bug。
-
自定义固件文件:若你已编译或下载了特定版本的
.px4文件,点击“高级设置”上传。
-
⚠️ 注意:必须选择与飞控硬件匹配的固件版本,否则刷入后会提示“硬件不兼容”。例如Pixhawk 4对应
Holybro Pixhawk 4。
3.4 执行烧录
-
点击 “更新” 按钮。
-
进度条开始移动,飞控LED会短暂熄灭并重新闪烁(约1-3分钟)。
-
烧录成功后,飞控自动重启,QGC提示“已连接到飞控”,LED变为紫色慢闪(等待解锁)。
3.5 烧录故障处理
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 烧录到50%卡住 | USB线质量差、供电不足 | 更换带磁环的USB线,插到电脑原生USB口 |
| 提示“Bootloader版本过低” | 飞控bootloader过旧 | 需先用QGC更新bootloader(按住飞控BOOT按钮上电,进入DFU模式再刷) |
| 烧录后无法连接 | 固件与硬件不匹配 | 重新选择正确硬件型号再刷 |
| 飞控无反应 | 固件损坏 | 进入DFU模式(短接BOOT焊盘或按住BOOT键上电)强制刷写 |
4. 基础配置向导
烧录完成后,QGC会自动弹出初始设置向导。若未弹出,点击左上角 Q图标 → 车辆设置 手动进入。
4.1 机架选择
-
左侧菜单 “机架”。
-
选择无人机类型:
-
四旋翼 →
Quadrotor x→Generic Quadcopter -
六旋翼 →
Hexarotor x→Generic Hexarotor -
固定翼 →
Plane→Generic Fixed Wing -
垂直起降 →
VTOL Tiltrotor→Generic VTOL
-
-
点击 “应用并重启”,飞控自动重启并加载对应混控器。
💡 小提示:选择错误的机架会导致电机转向、序号错误,飞行时可能侧翻。务必对比图示确认。
4.2 传感器校准
4.2.1 加速度计校准
-
点击 “传感器” → “加速度计” → “开始校准”。
-
按照QGC动画提示,将飞控依次放置在6个方向:
-
① 水平(箭头朝前)
-
② 左侧立(箭头朝左)
-
③ 右侧立(箭头朝右)
-
④ 机头朝下(倒置)
-
⑤ 机尾朝下(倒立)
-
⑥ 机背朝上(翻转)
-
-
每个方向保持静止2秒,直到提示“校准成功”。
4.2.2 陀螺仪校准
-
自动进行,无需操作。保持飞控静止即可。
4.2.3 磁力计(指南针)校准
-
注意事项:
-
远离金属物体、钢筋水泥、手机、音箱等干扰源。
-
尽量在室外GPS信号好的地方进行。
-
-
操作步骤:
-
点击 “磁力计” → “开始校准”。
-
手持无人机,缓慢绕每个轴旋转360度:
-
绕Z轴(偏航):水平旋转一整圈
-
绕Y轴(俯仰):机头朝天再朝地
-
绕X轴(横滚):左右侧翻
-
-
校准进度条变绿后自动完成。
-
4.2.4 水平校准
-
将飞控放置在水平台面(如桌面)→ 点击 “水平校准”。
4.3 遥控器校准
4.3.1 接收机连接
-
将接收机的SBUS或PPM输出连接到飞控的RC IN接口(Pixhawk 4的RC IN为DSM/SBUS端口)。
-
确保接收机与遥控器对频成功。
4.3.2 校准步骤
-
点击 “遥控器” → “开始校准”。
-
按提示操作:
-
摇杆置中:所有摇杆回到中间位置(油门拉到最低)。
-
摇杆最大行程:依次将每个摇杆推到极限并保持2秒。
-
-
检查通道映射:
-
QGC界面会显示绿色移动条,与摇杆动作对应。
-
若映射错误(如油门控制横滚),需手动修改参数:
-
RC_MAP_ROLL:横滚通道号 -
RC_MAP_PITCH:俯仰通道号 -
RC_MAP_THROTTLE:油门通道号 -
RC_MAP_YAW:偏航通道号
-
-
可在 “参数” 页面搜索并修改。
-
4.4 飞行模式设置
-
点击 “飞行模式”。
-
确定模式切换通道:默认使用通道5(参数
RC_MAP_FLTMODE= 5)。 -
将遥控器开关的各个档位拖动到对应模式槽位:
-
常用模式组合:
-
开关1(2档):
Manual和Altitude -
开关2(3档):
Position、Mission、RTL
-
-
-
测试:切换遥控器开关,观察QGC右上角飞行模式显示是否同步变化。
4.5 电源与电池设置
-
点击 “电源”。
-
电池校准:
-
用万用表测量电池当前电压。
-
在QGC中输入测量的电压值(需先选择电池类型LiPo/LiHV和节数)。
-
点击 “校准”,飞控会记录电压分压系数。
-
-
设置低电量阈值(在参数页面调整):
-
BAT1_LOW_THR:低电量告警,默认3.0V/节(可改为3.3V以提早提醒) -
BAT1_CRIT_THR:严重低电量,默认2.7V/节(飞控会自动触发降落或返航) -
BAT_EMERGENCY_THR:紧急电量,默认2.5V/节(立即执行紧急动作)
-
4.6 安全与电调校准
4.6.1 安全开关设置
-
Pixhawk 4默认启用安全开关,需按下才能解锁。
-
若想禁用安全开关(危险!仅限调试),可将参数
CBRK_IO_SAFETY设为22027,重启后安全开关失效。
4.6.2 电调校准(仅PWM电调需要)
-
确保拆下螺旋桨!
-
飞控断电,将遥控器油门推到最高。
-
飞控上电,电调会发出连续的“哔哔”声(表示进入校准模式)。
-
听到电调发出确认音后,迅速将油门拉至最低,电调会发出“哔”声确认完成。
-
断电重启即可。
若使用DShot电调,无需此步骤,只需在参数中将
DSHOT_CONFIG设为对应值(如DShot150、DShot300),并执行ESC校准(QGC电机控制中有“校准ESC”按钮)。
5. 高级参数调优
5.1 基础飞行参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
MIS_TAKEOFF_ALT |
2.5 m | 自动起飞目标高度 |
RTL_RETURN_ALT |
15 m | 返航飞行高度(高于周围障碍物) |
RTL_DESCEND_ALT |
5 m | 返航后下降点高度 |
MPC_XY_VEL_MAX |
5 m/s | 水平最大速度(可依据飞行环境调整) |
MPC_Z_VEL_MAX_UP |
3 m/s | 最大上升速度 |
MPC_Z_VEL_MAX_DN |
1.5 m/s | 最大下降速度 |
NAV_ACC_RAD |
0.5 m | 航点到达误差半径 |
5.2 PID调参入门
当飞行中出现震荡或响应迟缓时,可微调PID参数。常用参数如下(以多旋翼为例):
-
MC_PITCHRATE_P:俯仰角速度控制P增益(默认0.15)-
增大可提高响应速度,但过大引起震荡。
-
减小可抑制震荡,但响应变慢。
-
-
MC_PITCH_P:俯仰角度控制P增益(默认6.5)-
影响姿态保持的刚性。
-
-
MC_ROLLRATE_P、MC_ROLL_P:类似,对应横滚轴。 -
建议每次只修改一个参数,幅度10%以内,试飞后观察效果。
5.3 EKF故障排查
若QGC提示“EKF 罗盘不一致”或“EKF 故障”:
-
检查磁力计安装方向:参数
CAL_MAGn_ROT(n为罗盘序号)应与实际安装方向一致(如ROTATION_NONE、ROTATION_YAW_90等)。 -
重新进行磁力计校准(必须在室外进行)。
-
若使用外置罗盘且质量优于内置罗盘,可禁用内置罗盘:将对应
CAL_MAGn_PRIO设为0(0表示禁用)。
6. 外设配置详解
6.1 GPS模块
-
连接:GPS模块接飞控
GPS1接口(通常是TELEM1端口复用,但Pixhawk 4有专用GPS口)。 -
检查:
-
参数
GPS_1_CONFIG设为102(对应TELEM1)或101(对应GPS1),默认自动识别。 -
在QGC主界面查看GPS卫星数,应≥10颗。
-
移动无人机,观察罗盘指针是否跟随旋转。
-
6.2 数传电台
-
将数传模块连接到飞控
TELEM1或TELEM2口。 -
在QGC中设置通讯连接:
-
点击顶部 “应用设置” → “通讯连接” → “添加”。
-
类型选 “串口”,端口选择数传对应的COM口(Windows)或
/dev/ttyUSB0(Linux),波特率设为57600(与飞控默认一致)。
-
-
点击 “连接”,信号强度条应变为绿色。
6.3 光流与激光雷达(室内定位)
-
常用光流模块:PX4Flow,HereFlow。
-
参数设置:
-
EKF2_AID_MASK:启用光流(bit 2,即数值加4,例如默认值为1时改为5)。 -
SENS_FLOW_ROT:光流安装方向(默认ROTATION_NONE)。 -
SENS_FLOW_MAXHGT:光流最大高度(建议2-3m)。
-
-
激光雷达(如TeraRanger One)连接至I2C或串口,参数设置参考官方文档。
7. 首次飞行检查与测试
7.1 飞行前检查清单
-
GPS已获得3D Fix(≥6颗卫星)
-
罗盘健康,无“不一致”警告
-
遥控器信号强度正常(RSSI > 50%)
-
电池电压充足(≥3.5V/节)
-
SD卡已插入(用于记录飞行日志)
-
螺旋桨安装正确(正反桨匹配电机转向)
-
所有螺丝紧固,机臂无松动
7.2 解锁测试
-
将无人机置于开阔、无人的区域。
-
按下安全开关(若启用),LED变为双闪。
-
执行解锁动作(油门最低 + 内八字/外八字,取决于遥控器设置)。
-
飞控LED变为绿色常亮,表示已解锁。
-
轻推油门,电机应均匀加速。
7.3 试飞流程
-
悬停测试(定高模式):
-
切换至Altitude模式,缓慢推油门至50%左右,无人机应稳定离地。
-
观察有无异常漂移、震荡。
-
-
模式切换测试:
-
依次切换Manual、Altitude、Position模式,观察响应。
-
在Position模式下,松手后无人机应悬停于原地(GPS模式下)。
-
-
失控保护测试(可选):
-
飞行中关闭遥控器,无人机应在5秒内触发返航(前提是已设置
NAV_RCL_ACT= 1)。 -
重新打开遥控器,可取消返航。
-
7.4 日志分析
-
飞行后,拔出SD卡,用读卡器导出
.ulog文件。 -
使用
FlightPlot或PlotJuggler打开日志,分析:-
振动水平:
IMU_ACCEL三轴均 ≤ 30 m/s² 为正常。 -
磁力计干扰:
MAG_X等应平稳波动。 -
姿态响应:检查设定值与实际值的跟随性。
-
8. 常见问题与解决方案
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 无法解锁 | 安全开关未按下 | 按下安全开关,直到LED变为双闪 |
| 解锁后电机不转 | DShot设置错误 | 参数 DSHOT_CONFIG 设为 0(PWM)或对应DShot值;检查电调供电 |
| 起飞侧翻 | 电机转向错误 | 检查电机旋转方向(用桨叶或纸片测试),交换任意两根电机线反转方向 |
| 悬停漂移严重 | 罗盘干扰、GPS精度差 | 重新校准磁力计,检查GPS天线安装位置,远离碳纤维干扰 |
| 数传无法连接 | 波特率不匹配 | 统一飞控和数传的波特率(通常57600或115200) |
| GPS搜星慢 | 首次定位时间长 | 放置GPS模块于空旷处,保持静态5-10分钟完成冷启动 |
| QGC提示“EKF 罗盘不一致” | 罗盘安装方向错误或干扰 | 检查 CAL_MAGn_ROT 参数,重新校准磁力计,禁用内置罗盘 |
9. 附录:常用参数速查表
| 参数名 | 默认值 | 功能说明 |
|---|---|---|
SYS_AUTOSTART |
0 | 自动加载机架配置(如4001=四旋翼X) |
CBRK_IO_SAFETY |
0 | 安全开关绕过码(设为22027禁用安全开关) |
RC_MAP_FLTMODE |
5 | 飞行模式控制通道 |
NAV_RCL_ACT |
0 | 遥控丢失动作(0=无动作,1=返航,2=降落) |
COM_FLT_TIME |
40 | 飞控启动等待时间(秒) |
BAT1_CAPACITY |
0 | 电池容量(mAh),用于电量估算 |
MPC_XY_CRUISE |
5 | 巡航速度(m/s) |
MPC_LAND_SPEED |
1 | 降落速度(m/s) |
MC_PITCHRATE_P |
0.15 | 俯仰角速度控制P增益 |
MC_PITCHRATE_I |
0.2 | 俯仰角速度控制I增益 |
MC_PITCHRATE_D |
0.001 | 俯仰角速度控制D增益 |
更多参数请查阅PX4官方参数参考:https://docs.px4.io/main/zh/advanced_config/parameter_reference.html
结语
本文从零开始,完整介绍了PX4飞控的固件烧录、配置及飞行测试流程,涵盖了常见硬件和软件设置。按照步骤操作,绝大多数用户都能成功完成首飞。如果在配置过程中遇到问题,欢迎在评论区留言交流,或查阅PX4官方文档。安全飞行,享受DIY乐趣!
更多推荐



所有评论(0)