概述
这里我们选择Ubuntu-22.04系统配置开发环境。
- 官方帮助文档
Setting up a Developer Environment (Toolchain) | PX4 Guide (main)
Windows Development Environment (WSL2-Based) | PX4 Guide (main)
- 如果官方网站不好打开,可以试试如下镜像网站:
安装编译工具
进入PX4项目目录后,运行官方提供的脚本进行自动化配置:
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh
如果遇到问题:module 'em' has no attribute 'RAW_OPT',那么改变下empy的版本
$ pip uninstall empy $ pip install empy==3.3.2
启动gazebo仿真
运行如下命令启动gazebo仿真:
cd /path/to/PX4-Autopilot
make px4_sitl gz_x500
仿真支持多种机型,对应的编译命令如下:
Vehicle | Command | PX4_SYS_AUTOSTART |
---|---|---|
Quadrotor(x500) | make px4_sitl gz_x500 | 4001 |
Quadrotor(x500) with Depth Camera | make px4_sitl gz_x500_depth | 4002 |
Quadrotor(x500) with Vision Odometry | make px4_sitl gz_x500_vision | 4005 |
VTOL | make px4_sitl gz_standard_vtol | 4004 |
Plane | make px4_sitl gz_rc_cessna | 4003 |
编程飞控固件
运行如下命令编译适配fmu-v5的固件:
cd PX4-Autopilot
make px4_fmu-v5_default
常用的 Pixhawk飞控版对应的编译如下:
- Holybro Pixhawk 6X (FMUv6X):
make px4_fmu-v6x_default
- Holybro Pixhawk 6C (FMUv6C):
make px4_fmu-v6c_default
- Holybro Pixhawk 6C Mini (FMUv6C):
make px4_fmu-v6c_default
- Holybro Pix32 v6 (FMUv6C):
make px4_fmu-v6c_default
- Holybro Pixhawk 5X (FMUv5X):
make px4_fmu-v5x_default
- Pixhawk 4 (FMUv5):
make px4_fmu-v5_default
- Pixhawk 4 Mini (FMUv5):
make px4_fmu-v5_default
- CUAV V5+ (FMUv5):
make px4_fmu-v5_default
- CUAV V5 nano (FMUv5):
make px4_fmu-v5_default
- Pixracer (FMUv4):
make px4_fmu-v4_default
- Pixhawk 3 Pro:
make px4_fmu-v4pro_default
- Pixhawk Mini:
make px4_fmu-v3_default
- Pixhawk 2 (Cube Black) (FMUv3):
make px4_fmu-v3_default
- mRo Pixhawk (FMUv3):
make px4_fmu-v3_default
(supports 2MB Flash) - Holybro pix32 (FMUv2):
make px4_fmu-v2_default
- Pixfalcon (FMUv2):
make px4_fmu-v2_default
- Dropix (FMUv2):
make px4_fmu-v2_default
- Pixhawk 1 (FMUv2):
make px4_fmu-v2_default
连接地面站
$ ./QGroundControl_v4.2.4.AppImage
如果出现如下错误:
/tmp/.mount_QGrounkE96Ul/QGroundControl: error while loading shared libraries: libpulse-mainloop-glib.so.0: cannot open shared object file: No such file or directory
则需要安装相关库,运行如下命令:
sudo apt-get install libpulse-mainloop-glib0
启动地面站后会默认开启UDP接收14550端口,建立无人机通信连接。
关于NextPilot飞控
NextPilot飞控系统是一款基于px4和rt-thread的国产开源自动驾驶仪,由NextPilot开发团队(nextpilot@qq.com)负责维护。它能够便捷的应用于教育、研究和工业等领域,让工程师专注于自己的擅长领域(比如嵌入式、控制算法、应用业务)进行高效的开发。
- 官方网站:https://www.nextpilot.org
- 开发指南:https://www.nextpilot.org/develop
- 用户手册:https://www.nextpilot.org/manual
- 开源仓库:https://github.com/nextpilot/nextpilot-flight-control
- 开发工具:https://github.com/nextpilot/nextpilot-windows-toolchain
- 联系我们:nextpilot@qq.com