NextPilot 飞控系统技术文档
1. 安装指南
1.1 硬件准备
NextPilot支持多种开源硬件平台,包括:
- CUAV Pixhawk V5+ (FMUv5)
- CUAV Pixhawk V6X (FMUv6x)
- Holybro Pixhawk V5X (FMUv5X)
- Holybro Pixhawk V6X (FMUv6X)
- NextPilot自研硬件(fcs-v1/ins-v1/ads-v1)
1.2 开发环境搭建
支持以下开发工具链:
-
Keil MDK:
- 安装Keil MDK 5.30+
- 安装STM32F7系列支持包
-
ARM GCC + VSCode:
- Windows平台:NextPilot Windows工具链
- Ubuntu平台:NextPilot Ubuntu工具链
- 安装VSCode及C/C++扩展
2. 项目使用说明
2.1 系统启动流程
- 硬件上电后执行Bootloader
- 加载RT-Thread实时操作系统内核(v5.0.2)
- 自动初始化机制启动各功能模块
- 根据airframe配置加载对应机型参数
2.2 飞行模式说明
支持多种飞行模式:
- 基础模式:手动(Manual)、增稳(Stabilized)、定高(Altitude)、定点(Position)
- 高级模式:任务(Mission)、返航(RTL)、跟随(Follow)、Offboard
2.3 安全机制
包含多重安全保护:
- 地理围栏(Geofence)
- 低电量保护
- GNSS信号丢失处理
- 遥控信号丢失处理
- 数据链路中断处理
3. 项目API使用文档
3.1 uORB通信机制
// 发布消息示例
#include <uORB/uORB.h>
struct sensor_combined_s data = {0};
orb_advert_t pub = orb_advertise(ORB_ID(sensor_combined), &data);
// 订阅消息示例
int sub = orb_subscribe(ORB_ID(sensor_combined));
orb_copy(ORB_ID(sensor_combined), sub, &data);
3.2 参数系统API
#include <param/param.h>
// 参数定义
PARAM_DEFINE_FLOAT(MC_PITCH_P, 6.5f);
// 参数访问
param_t handle = param_find("MC_PITCH_P");
float value;
param_get(handle, &value);
3.3 模块开发接口
// 模块声明
#include <module/module.h>
extern "C" __EXPORT int module_main(int argc, char *argv[]);
// 任务入口函数
int module_main(int argc, char *argv[]) {
// 模块初始化代码
return 0;
}
4. 项目安装方式
4.1 源码获取
git clone https://github.com/nextpilot/nextpilot-flight-control.git
cd nextpilot-flight-control
git submodule update --init --recursive
4.2 编译配置
- 使用menuconfig配置系统参数:
scons --menuconfig
- 选择目标硬件平台:
- FMUv5:
bsps/px4/fmu-v5 - SITL:
bsps/sitl/qemu
4.3 编译与烧录
# 编译命令
scons -j8
# 烧录到硬件(以FMUv5为例)
scons --target=mdk5 # 生成Keil工程
# 或使用J-Link烧录
scons --upload
4.4 仿真环境搭建
- SITL仿真:
cd bsps/sitl/qemu
./qemu.sh start
- HITL仿真:
- 连接STM32硬件
- 启动SIH仿真模型
5. 技术支持
如需技术支持,可通过以下方式联系:
- GitHub Discussions社区讨论
- 扫描文档中的二维码加入技术支持群
- 发送邮件至nextpilot@qq.com
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



