跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

开源飞控 Pix 无人机装调与测试指南

详细讲解了基于开源 Pixhawk 飞控的无人机硬件组装、固件烧录、参数配置及飞行调试流程。涵盖 PX4 与 ArduPilot 两大主流固件体系,包括 RTK 模块设置、地面站使用、传感器校准、PID 调参及日志分析等核心环节。针对常见解锁失败、定位漂移、振动干扰等问题提供了排查思路与解决方案,适合希望深入掌握无人机装调技术的开发者与爱好者参考。

CryptoLab发布于 2026/4/9更新于 2026/10/25106 浏览
开源飞控 Pix 无人机装调与测试指南

前言

本文面向希望深入掌握无人机装调技术的飞手、开发者及学习者。内容涵盖基于开源 Pixhawk 飞控的硬件组装、固件烧录、参数配置及飞行调试全流程,重点讲解 PX4 与 ArduPilot 两大主流固件体系。

硬件使用说明

RTK 模块配置

以 Hyper982 为例,作为移动站使用时,需通过串口助手配置参数。配置指令为 ASCII 格式,每条发送后需回车换行,最后务必发送 SAVECONFIG 保存,否则断电后配置失效。

连接与驱动 将模块通过 USB 连接电脑,若未识别端口,请安装 CH340 驱动。

串口配置示例 打开串口助手,波特率默认 115200,进入多条发送模式。清除设置并恢复出厂:

freset 

配置为移动站:

mode rover 

设置串口 1 波特率为 230400:

config com1 230400 

开启常用语句输出(GGA, THS, HDT, RMC 等),间隔设为 0.05 秒(20Hz):

gpgga com1 0.05 
gpths com1 0.05 
gphdt com1 0.05 
gprmc com1 0.05 
UNIHEADINGA com1 1 0.05 
AGRICA com1 1 0.05 

保存设置:

saveconfig 

注意:USB 口对应模块串口 2,修改波特率后需同步调整串口助手波特率再保存。

飞控参数设置

ArduPilot 固件

老版本 (4.6.0 以前)

  • 修改 GPS_TYPE 为 25。
  • 设置串口协议,如接 TELEM2 口:SERIAL2_BAUD 设为 RTK 波特率,SERIAL2_PROTOCOL 设为 GPS。
  • 天线偏移设置:先设 GPS_MB1_TYPE 为 1 并重启,随后设置主天线位置坐标(前右下坐标系,单位米)及更新频率。

新版本 (4.6.0 以后)

  • 修改 GPS1_TYPE 为 25。
  • 串口配置同上。
  • 天线偏移:设 GPS1_MB_TYPE 为 1 重启,配置 GPS1_MB_OFS_X/Y/Z 及更新频率(单位 ms)。

PX4 固件

建议使用新版固件(1.13+),旧版对 UM982 支持不完善。假设模块接 GPS1 口:

  • GPS_1_CONFIG 设为 GPS1 或手动输入 201。
  • GPS_1_PROTOCOL 设为 NMEA 或 6。
  • SER_GPS1_BAUD 设为 230400。
  • 使能双天线航向:勾选 EKF2_GPS_CTRL 第四个选项。
  • 设置航向偏移 GPS_YAW_OFFSET(主天线在前为 0 度,在右为 90 度等)。

4G 图数传

使用 HyperLte 4G 模块时,需配合 MQTT 服务器实现远程连接。地面站需添加 MQTT 连接,4G 模块需配置服务器地址、端口及订阅发布主题。云服务器端建议部署 EMQX 等 MQTT Broker,并配置安全组开放 1883/18083 端口。

资源说明

文中涉及的地面站软件、固件及源码可通过官方渠道获取。推荐使用 QGroundControl 进行固件下载与参数配置,Mission Planner 适用于 ArduPilot 固件。源码编译需注意依赖环境,建议优先使用预编译好的虚拟机镜像以减少环境配置时间。

一、无人机基本常识

硬件组成

  1. 飞控:核心大脑,集成 IMU、气压计等,负责姿态解算与控制输出。
  2. GPS:室外定位关键,建议搜星 10 颗以上再使用。
  3. 接收机:传输遥控信号,常见协议 PPM/SBUS/PWM。
  4. 电调:控制电机转速,支持 PWM/DShot 协议。
  5. 电机与螺旋桨:提供升力,注意 CW/CCW 转向匹配。
  6. 电池:注意充电电压(单节 4.2V)、放电倍率及存储电量(50-60%)。
  7. UBEC:稳压模块,为机载设备供电。

选型建议

轴距与桨叶尺寸关联紧密,例如 450mm 轴距通常配 9-10 寸桨。需综合考量载重、续航与速度需求。

二、QGC 地面站使用

航路规划

  • 地形高度:标红航点表示高度不可达,需调整相对高度或改为地形跟随模式。
  • 手动打点:先设置起飞点(Takeoff),再添加航点(Waypoint)。可设置返回(RTL)、降落(Land)等动作类型。
  • 矩形测绘:使用图案功能勾画多边形,设置间隔、角度及转弯距离。相机禁用时可切换单位为米。

安全保护

  • 地理围栏:定义禁入/禁出区域,越界触发故障保护。无 GPS 时需关闭围栏解锁。
  • 低电量保护:设置警告、降落、返航阈值。
  • 遥控丢失:设置超时后的动作(返航/降落/保持)。

遥测数据流

PX4 遥测流固定,APM 可在地面站设置数据流速率。勾选'所有控制流由载具设置控制'则遵循飞控参数。

三、PX4 基础配置

固件下载

通过 QGC 连接飞控 USB 端口,选择载具设置 - 固件下载。默认最新稳定版,也可选 Master 分支(可能有 Bug)。若无法弹出页面,检查设备管理器端口或尝试刷写 Bootloader。

机型选择

四旋翼设置为 Generic Quadcopter,应用并重启后确认概览信息。

传感器校准

  1. 罗盘:确保内外置罗盘方向一致,按提示旋转至绿色完成。
  2. 陀螺仪:水平静止放置,点击确定。
  3. 加速度计:按屏幕提示翻转至各个方向直至完成。
  4. 地平线:水平放置,校准进度条满。
  5. 遥控器:校准各通道行程,确认映射正确。

控制分配

PX4 1.13.3+ 支持 Control Allocate。设置 CONTROL_ALLOCATE_ENABLE 为 1,在 Actuators 页面绑定电机通道。PWM 电调需校准最小输出,DShot 无需校准。

四、装机教程(以 E300 为例)

焊接与安装

  1. 分电板:正负极焊接牢固,万用表检查短路。
  2. 电机:螺丝长度适中避免顶线圈,正反桨对应安装。
  3. 飞控:箭头指向机头,电流计供电,信号线接 AUX 口。
  4. 接收机:SBUS 线序 GND-RX-TX-VCC,天线分开固定防遮挡。
  5. GPS:箭头对齐机头,接 GPS 口。

校准与调试

参照第三章流程校准传感器及遥控器。

五、飞行模式与实操

模式切换

  • 位置模式:新手推荐,摇杆中位悬停抗风,适合定点飞行。
  • 定高模式:无 GPS 时使用,保持高度但可能漂移。
  • 自稳模式:摇杆回中自动改平,需手动抗风。
  • 特技模式:角速率控制,机动性强,难度高。
  • 环绕模式:绕指定中心点飞行,支持遥控调整半径高度。
  • Offboard 模式:外部计算机控制,需 >2Hz 设定值流。

起飞与降落

  • 起飞:油门超 62.5% 解锁起飞,注意离地速度参数。
  • 降落:自动检测地面落锁,可设置降落速度及延迟加锁时间。

六、日志分析

工具准备

  • ulog2csv:Python 库,用于转换二进制日志。
  • FlightPlot:Windows/Linux 下分析日志波形。
  • PlotJuggler:跨平台可视化分析工具。

操作步骤

  1. 下载 .ulog 文件。
  2. 转换 CSV 或在 FlightPlot 中直接加载。
  3. 添加曲线(如位置、姿态、IMU 数据)。
  4. 分析 FFT 频谱图判断振动源。

自定义日志

在代码中声明 uORB 消息,在 logged_topics.cpp 中添加 Topic ID,即可记录到日志中供分析。

七、常用参数解析

解锁检查

  • Kill switch:刹车开关状态检查。
  • Power redundancy:电源冗余检查,可设 COM_ARM_DISARM 相关参数绕过。
  • USB 连接:CBRK_USB_CHK 允许插 USB 解锁。
  • 传感器一致性:COM_ARM_IMU_ACC/GYR 调整阈值。

安全设置

  • 低电量:设置电压阈值与动作。
  • 地理围栏:圆柱体范围限制。
  • 返航模式:设置爬升高度、着陆行为。

任务航点

  • NAV_ACC_RAD:航点置信半径。
  • MIS_DIST_WPS:航点最大间距保护。
  • MPC_YAW_MODE:偏航控制模式。

室内视觉定位

  • EKF2_AID_MASK 设为 24(视觉定位 + 航向)。
  • EKF2_HGT_MODE 设为 Vision。

八、参数调试

滤波参数

震动来源包括桨叶动平衡、机架刚性、部件松动。软件上通过低通滤波器(IMU_GYRO_CUTOFF)和陷波滤波器(IMU_GYRO_NF0_FRQ)抑制噪声。根据 FFT 频谱图调整截止频率,尖峰处用陷波。

PID 调参

  1. 角速率环:先调 P 项消除相位滞后,再调 I 项消除静差,最后 D 项抑制超调。D 项过大易导致电机发热抽搐。
  2. 姿态环:主要调节 P 项,过大振荡,过小迟钝。
  3. 自动调参:新版 QGC 支持 Hold 模式下自动调参,操作简便。

九、ArduPilot 基础配置

Mission Planner

安装后连接飞控,初始设置 - 安装固件。选择机型(四旋翼),依次校准加速度计、地平线、指南针、遥控器及电调。

常用参数

  • 避障:设置测距传感器类型(超声波/雷达)及避障行为(绕行/停止)。
  • 电子围栏:上传地图围栏并启用参数。
  • 循环航线:最后一个航点设为 Jump to Item,Item 设为 1,Repeat 设次数。

十、常见问题排查

  1. 手机 QGC 连接失败:检查蓝牙权限、密码(默认 1234)、波特率一致性。
  2. USB 连不上:查设备管理器端口,换线或驱动。
  3. 电调不转:检查 PWM 输出、接线顺序、安全开关状态。
  4. 起飞侧翻:检查电机转向、电调通道映射、重心。
  5. 原地转圈:航向不准,重新校准罗盘或检查 RTK 天线偏移。
  6. 飘移:GPS 信号弱或有干扰,检查定位来源。
  7. 解锁失败:检查解锁开关、电源检查、电子围栏条件。
  8. 日志无法记录:检查 SD 卡是否损坏或格式化。
  9. 数传带宽不足:降低 MAVLink 发送等级,优化空速与串口速率。
  10. RTK 航向不准:检查搜星数、天线偏移参数及 EKF 配置。

十一、补充知识

新版 PX4 参数

  • EKF2_EV_CTRL:视觉定位控制。
  • EKF2_GPS_CTRL:GPS 航向控制(双天线 RTK 需用)。
  • EKF2_HGT_REF:高度参考源。

常用硬件接入

  • 测深仪:NMEA 协议,设置端口协议与波特率。
  • UWB 模块:配置 TAG/ANCHOR 角色,标定基站坐标,飞控端设为 NMEA GPS 协议。
  • 光流测距:设置 FLOW_TYPE 与 RNGFND1_TYPE,调整 EKF 参数融合数据。

注:修改参数存在风险,请在理解含义后谨慎操作。

目录

  1. 前言
  2. 硬件使用说明
  3. RTK 模块配置
  4. 飞控参数设置
  5. ArduPilot 固件
  6. PX4 固件
  7. 4G 图数传
  8. 资源说明
  9. 一、无人机基本常识
  10. 硬件组成
  11. 选型建议
  12. 二、QGC 地面站使用
  13. 航路规划
  14. 安全保护
  15. 遥测数据流
  16. 三、PX4 基础配置
  17. 固件下载
  18. 机型选择
  19. 传感器校准
  20. 控制分配
  21. 四、装机教程(以 E300 为例)
  22. 焊接与安装
  23. 校准与调试
  24. 五、飞行模式与实操
  25. 模式切换
  26. 起飞与降落
  27. 六、日志分析
  28. 工具准备
  29. 操作步骤
  30. 自定义日志
  31. 七、常用参数解析
  32. 解锁检查
  33. 安全设置
  34. 任务航点
  35. 室内视觉定位
  36. 八、参数调试
  37. 滤波参数
  38. PID 调参
  39. 九、ArduPilot 基础配置
  40. Mission Planner
  41. 常用参数
  42. 十、常见问题排查
  43. 十一、补充知识
  44. 新版 PX4 参数
  45. 常用硬件接入

更多推荐文章

查看全部
  • Flutter 三方库 dart_webrtc 的鸿蒙化适配指南
  • 数据结构:二叉树基础概念与 C 语言实现
  • PostgreSQL 动态分区裁剪技术:查询性能优化解析
  • Java 集合常见问题总结(1)
  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  • GitHub 代码搜索实战:工具推荐与高级语法详解
  • 从零构建高可靠语音通话功能:WebRTC 实战与避坑指南
  • C++ 竞赛代码风格规范建议
  • Alas 脚本碧蓝航线自动化配置指南
  • 数据结构与算法:C++ 堆的实现与原理详解
  • ToolkenGPT:利用工具嵌入增强大型语言模型
  • NASA 火星任务软件测试:利用 AIGC 模拟极端环境攻击
  • 谷歌发布乒乓球 AI 机器人,实现正反手灵活转换与中级选手水平对抗
  • 前端文件下载实战:从原理到最佳实践
  • 饥荒联机版 Linux 云服务器搭建与 Mod 配置指南
  • AI Agent 基础架构与核心组件详解
  • C++11 核心特性:列表初始化与右值引用移动语义详解
  • Home Assistant Matter Hub 跨平台互联配置实战
  • 并发限流的常见实现方案与架构实践
  • 5 款开源 PPT 生成大模型实测对比:从技术原理到实战效果

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online