Ubuntu 22.04 下基于 ROS2 Humble 的 PX4 仿真环境搭建
前言
本教程基于 ROS2,在开始之前请确保已安装配置好 ROS2、QGC 等基础环境。相比 ROS1,ROS2 下的资料相对较少,但它是未来的趋势。本文以 PX4 v1.14.0 为例,配合 Ubuntu 22.04 和 ROS2 Humble 进行讲解。
1. 准备
1.1 下载 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
1.2 安装仿真依赖
进入工具目录运行官方脚本。如果网络较慢,建议提前配置清华源。
sudo apt install ros-dev-tools
cd ~/PX4_Firmware/Tools/setup
chmod +x ubuntu.sh
./ubuntu.sh --no-nuttx --no-sim-tools
注意:--no-nuttx 表示不安装交叉编译环境(除非你需要烧录固件),--no-sim-tools 表示不安装仿真环境。这里我们主要需要仿真依赖,所以后续步骤会单独处理。
1.3 安装 Gazebo
Ubuntu 22.04 默认支持 Gazebo Ignition(现更名为 Gazebo)。Gazebo 提供了高度逼真的物理模拟环境,包括动力学、碰撞检测以及传感器模型。
cd ~/PX4_Firmware/Tools/setup
./ubuntu.sh --no-nuttx
验证安装是否成功:
gz sim
2. 安装 Micro XRCE-DDS Agent
在 ROS2 中,PX4 使用 uXRCE-DDS 中间件来发布和订阅 uORB 消息,这比 MAVROS 更适合 ROS2 的 DDS 架构。它提供了 PX4 和 ROS2 之间快速可靠的集成。
git clone -b v2.4.2 https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/
如果遇到 Fast DDS 版本错误,修改 fastdds-gitclone.cmake 中的版本号:
sed -i 's/checkout 2\.12\.x --/checkout v2.12.1 --/' ./fastdds/tmp/fastdds-gitclone.cmake


