一、核心角色与关系

角色 定位与作用
飞控硬件 物理载体(如Pixhawk),负责承载固件、连接传感器/电机,是无人机的“硬件基础”。
固件(PX4/ArduPilot) 无人机的“大脑”(运行于飞控硬件),解析MAVLink指令、控制硬件、生成状态数据,决定飞行逻辑。
MAVLink协议 地面站与固件的“通用语言”,定义消息格式(如控制指令、状态数据),确保双方能理解彼此。
QGC(地面站) 人机交互终端,负责“发送指令”(如解锁、航点)和“展示状态”(如位置、电量),是用户操作的入口。

二、QGC与无人机的交互流程

  1. 建立连接:通过USB/无线数传/WiFi形成物理通道,QGC与固件通过MAVLink“握手”(确认设备信息、协议版本);
  2. 发送指令:用户在QGC操作(如点击“返航”)→ QGC将操作编码为MAVLink标准消息(如MAV_CMD_NAV_RETURN_TO_LAUNCH)→ 消息通过物理通道传给固件;
  3. 执行与反馈:固件解析MAVLink消息→执行对应逻辑(如启动返航)→ 实时采集传感器数据→打包成MAVLink状态消息(如GLOBAL_POSITION_INT)→ 回传给QGC;
  4. 展示数据:QGC解析状态消息→在UI上可视化展示(如地图标位置、仪表盘显姿态),让用户实时掌握无人机状态。

三、QGC二次开发(UI修改+简单功能)的边界

  1. 无需修改的部分
    • 无需改固件:固件已能处理所有MAVLink标准消息,简单功能无需动底层控制逻辑;
    • 无需改MAVLink协议:标准消息(如解锁、位置回传)可覆盖90%以上基础需求,无需自定义协议。
  2. 核心修改范围(类似TCP的“读写”)
    • “写”(发送端):自定义“何时发、发什么标准消息”——比如新增UI按钮,点击后发送“悬停”指令(调用MAVLink标准消息MAV_CMD_NAV_LOITER_UNLIMITED);
    • “读”(接收端):自定义“如何解析、如何展示”——比如将固件回传的“电池电压”数据,从数字显示改为进度条可视化。

四、关键结论

QGC的核心价值是“人机交互桥梁”:它不直接控制无人机硬件,也不定义通信规则,而是通过调用MAVLink标准消息实现与固件的交互。对于UI修改和简单功能开发,你只需聚焦“如何通过QGC的代码,更好地发送标准指令、展示状态数据”,无需触碰固件和MAVLink协议本身,开发门槛低且兼容性有保障。

关于固件

关于固件(尤其是无人机飞控固件,如PX4、ArduPilot)的核心要点总结如下:

一、固件的本质

固件是嵌入在硬件中的专用软件,对飞控系统而言,它是连接飞控硬件(如Pixhawk)与上层控制逻辑的“中间层”,相当于无人机的“操作系统+大脑”。

  • 形式:由C/C++等底层语言编写,经编译后生成二进制文件(如.px4、.hex格式),可被飞控硬件直接执行。
  • 核心作用:驱动硬件工作、处理传感器数据、运行飞行控制算法、响应地面站指令,是无人机实现自主飞行的核心。

二、飞控固件(如PX4、ArduPilot)的核心功能

  1. 硬件驱动与管理
    直接控制飞控板上的传感器(加速度计、陀螺仪、GPS等)、处理器、电机接口、通信模块(如数传),确保硬件正常工作。
  2. 飞行控制逻辑
    • 基于传感器数据(如姿态、位置、速度),通过PID等控制算法计算电机输出,维持无人机稳定(如悬停、平衡)。
    • 支持多种飞行模式(手动控制、自动悬停、航线规划、返航等),并根据模式切换控制策略。
  3. 通信与交互
    内置MAVLink协议解析模块,接收地面站(如QGC)发送的指令(如解锁、起飞、航点),并实时回传无人机状态数据(位置、电量、故障信息等)。
  4. 安全与故障保护
    包含低电量返航、遥控器信号丢失应急处理、传感器异常报警等机制,保障飞行安全。

三、固件与飞控硬件、地面站的关系

  • 与飞控硬件:固件必须适配硬件(如Pixhawk系列),不同硬件的芯片架构、接口布局不同,需对应不同版本的固件(如同一款PX4固件,需针对Pixhawk 4和Pixhawk 6分别编译)。
  • 与地面站(如QGC):固件通过MAVLink协议与地面站通信,地面站不直接修改固件,仅通过发送标准指令(如“解锁”)与固件交互,固件则回传状态数据供地面站展示。

四、固件的安装与更新(以QGC为例)

  1. 获取固件:QGC通过官方服务器下载预编译的二进制固件(或用户导入自定义编译的固件)。
  2. 进入刷机模式:QGC触发飞控硬件的Bootloader(底层引导程序),使硬件进入“可写入状态”。
  3. 写入过程:擦除旧固件→分块写入新固件→校验数据完整性,完成后飞控重启并加载新固件。

五、固件的定制与开发

开源固件(PX4、ArduPilot)支持二次开发:

  • 开发者可修改源码(如添加自定义传感器支持、优化控制算法),重新编译为二进制文件。
  • 定制固件需通过QGC或专用工具刷入飞控,需确保与硬件兼容,避免影响飞行稳定性。

总结

固件是无人机的“核心控制系统”,它连接硬件与软件、实现自主飞行逻辑、支撑与地面站的通信。对于用户而言,固件是“黑箱”级的存在(无需了解底层代码即可使用);对于开发者而言,它是可定制的开源框架,可通过修改源码扩展无人机功能。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐