Ubuntu 22.04 基于 ROS2 Humble 搭建 PX4 无人机仿真环境
本教程基于 ROS2,在开始之前请确保 ROS2、QGC 等基础环境已安装配置完成。相比 ROS1,ROS2 下的资料相对较少,上手需要更多耐心。
准备阶段
下载 PX4 源码
推荐直接从 GitHub 获取源码,虽然对网络有一定要求:
sudo apt install git
git clone https://github.com/PX4/PX4-Autopilot.git # 下载源码
mv PX4-Autopilot PX4_Firmware # 更改目录名
cd PX4_Firmware
git checkout v1.14.0 # 切换版本
git submodule update --init --recursive # 更新子模块
若网络受限,也可从其他渠道获取解压后的源码包,进入目录后执行初始化脚本:
cd PX4_Firmware
wget https://gitee.com/tyx6/mytools/raw/main/px4/set_executable.sh
chmod +x set_executable.sh
./set_executable.sh
安装仿真依赖
进入工具目录运行官方脚本。注意脚本会根据网络情况耗时不同,建议耐心等待。
sudo apt install ros-dev-tools
cd ~/PX4_Firmware/Tools/setup
chmod +x ubuntu.sh
./ubuntu.sh --no-nuttx --no-sim-tools
说明:脚本支持两个可选参数。
--no-sim-tools不安装仿真环境,--no-nuttx不安装交叉编译环境(如需自行编译固件烧录到飞控,则需保留交叉编译环境)。安装完成后建议重启系统。
安装 Gazebo
Gazebo 是机器人学研究中常用的 3D 仿真软件,提供物理模拟、碰撞检测及传感器模型。Ubuntu 22.04 及以上版本默认支持 Gazebo Ignition(现更名为 Gazebo),旧版 Gazebo Classic 已逐渐停止维护。
cd ~/PX4_Firmware/Tools/setup
./ubuntu.sh --no-nuttx
验证安装是否成功:
gz sim
启动成功后再次重启系统以确保环境变量生效。
安装 Micro XRCE-DDS Agent
在 ROS2 中,PX4 使用 uXRCE-DDS 中间件来允许在配套计算机上发布和订阅 uORB 消息,就像它们是 ROS2 话题一样。这提供了 PX4 和 ROS2 之间快速可靠的集成。
与 MAVROS 相比,Micro XRCE-DDS Agent 更轻量且适合分布式场景,但学习成本稍高。以下是安装步骤:
- 下载源码
git -b v2.4.2 https://github.com/eProsima/Micro-XRCE-DDS-Agent.git


