ROS2 + Gazebo Classic + PX4 仿真环境搭建
本文记录在 Ubuntu 环境下配置 ROS2 Humble、Gazebo Classic 及 PX4 飞控的完整流程,涵盖从源码编译到地面站联调,最终实现仿真无人机起飞。
前置准备
确保系统已安装以下基础环境:
- ROS2 Humble
- Gazebo Classic (版本 11)
1. 获取 PX4 源码
在用户主目录下克隆 PX4-Autopilot 仓库。务必使用 --recursive 参数以同步子模块,避免后续编译报错。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
提示:国内网络访问 GitHub 可能较慢,建议开启代理加速。不要直接下载 ZIP 包,否则会丢失必要的子模块依赖。
2. 运行自动化安装脚本
进入 PX4 目录,执行官方提供的 Ubuntu 依赖安装脚本。由于本教程仅涉及软件在环(SITL)仿真,无需编译固件或 NuttX 环境,可跳过耗时较长的编译步骤。
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh --no-nuttx
3. 编译并启动仿真
在 PX4-Autopilot 根目录下执行编译命令。首次编译耗时较长,请耐心等待。
make px4_sitl gazebo-classic_iris
编译成功后,终端将自动弹出 Gazebo 窗口,并显示一架黑色 Iris 四旋翼模型,表示仿真环境就绪。

4. 配置 QGroundControl 地面站
QGroundControl (QGC) 用于监控和操控飞行器。在 Ubuntu 上运行前需进行几项系统配置,以确保串口通信和视频流正常。
4.1 系统权限与依赖
将当前用户加入 dialout 组以访问串口设备,移除可能干扰串口的 ModemManager,并安装视频流所需库。
sudo usermod -aG dialout "$(id -un)"
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libfuse2 -y
sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y
4.2 安装 QGC
前往官网下载 Linux 版本的 AppImage 安装包,移至主目录并赋予执行权限。
+x ./QGroundControl-x86_64.AppImage

