PX4 SITL
使用Gazebo仿真模拟器
首先,我们将使用控制台环境构建一个模拟目标。这使我们 能够在进入真实硬件和 IDE 之前验证系统设置。
进入到 PX4-Autopilot 目录并使用以下命令 启动 Gazebo SITL :
make px4_sitl gz_x500
如果您安装了 Gazebo Classic 使用以下命令启动Gazebo Classic SITL :
make px4_sitl gazebo-classic
这将打开 PX4 控制台:

您可能需要先启动 QGroundControl 才能继续操作,因为默认的 PX4 配置要求在起飞前建立地面控制连接。您可以 从此处下载 。
输入以下命令即可让无人机飞行(如上图控制台所示):
pxh> commander takeoff
飞行器将会起飞,您将在 Gazebo 模拟器 UI 中看到以下内容:

可以通过输入让无人机降落,并且可以通过按 CTRL+C (或输入 shutdown) commander land 来停止整个模拟。
使用地面控制站进行模拟飞行更接近飞行器的实际操作。在飞行器飞行(起飞飞行模式)时,点击地图上的某个位置并启用滑块。这将重新定位飞行器。

SITL重要概念解释
在 PX4 使用 Gazebo 进行软件在环仿真(SITL, Software-In-The-Loop)的流程中,GZ_VERSION、px4_gz_bridge、ros_gz_bridge和SDF是四个核心概念,分别对应版本管理、跨模块通信和仿真模型定义,以下是详细解析:
一、PX4 Gazebo Version:GZ_VERSION
GZ_VERSION 是 PX4 构建系统中用于指定 Gazebo 版本的环境变量,核心作用是解决 “PX4 与 Gazebo 版本兼容性” 问题 —— 不同 PX4 版本对 Gazebo 的支持范围不同,需通过该变量明确编译目标版本,避免编译失败或功能异常。
1. 核心背景:Gazebo 的版本演进与 PX4 支持
Gazebo(现归属于 Open Robotics)经历了多个重要版本迭代,PX4 对其支持具有明确的 “版本绑定” 特性,主要分为两大系列:
- 传统 Gazebo(Gazebo Classic):如 Gazebo 9、11(PX4 v1.13 及之前版本的主流支持版本);
- Gazebo Fortress/Edifice(新一代 Gazebo):从 PX4 v1.14 开始逐步迁移,现成为主流(命名从 “Gazebo X” 改为 “GZ-XXX”,如 GZ-Fortress 对应版本号 12)。