环境搭建
前置环境
- ROS2 Humble
- Gazebo Classic (11)
1. 下载 PX4 源码
在 Home 目录下,使用 Git 克隆 PX4 代码仓库并更新所有子模块。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
详细记录了在 Ubuntu 系统下构建 ROS2 Humble、Gazebo Classic 及 PX4 飞控的仿真环境全过程。内容涵盖 PX4 源码克隆与子模块更新、依赖项自动化安装、SITL 仿真模型编译、QGroundControl 地面站配置、Micro-XRCE-DDS-Agent 通信桥接器部署以及 ROS2 工作空间初始化。通过多终端协同启动仿真与 Offboard 控制节点,实现了无人机在 Gazebo 中的虚拟起飞,为后续自主飞行算法验证奠定基础。
在 Home 目录下,使用 Git 克隆 PX4 代码仓库并更新所有子模块。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
注意: 源码包含许多子模块,不建议直接下载 GitHub 主页的 zip 包解压,以免缺失依赖。国内网络克隆速度较慢,建议使用网络代理加速。
PX4 提供自动化脚本以安装编译和仿真环境所需的所有依赖。
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh
若仅需仿真且无需与硬件交互,可选择不安装固件/编译环境以节省时间:
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh --no-nuttx
在 PX4-Autopilot 目录下执行以下命令:
make px4_sitl gazebo-classic_iris
首次编译耗时较长属正常现象。启动成功后,Gazebo 将弹出并显示黑色无人机模型。

QGroundControl (QGC) 是用于监控和操控飞机的桌面软件。安装前需对 Ubuntu 系统进行配置以确保通信正常。
# 将用户添加到 dialout 组以便访问 USB 设备
sudo usermod -aG dialout "$(id -un)"
# 移除 ModemManager,避免干扰串口通信
sudo apt-get remove modemmanager -y
# 安装 GStreamer 相关库以支持视频流
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
从官方文档下载 Linux 版本安装包并将文件移至主目录: https://docs.qgroundcontrol.com/master/zh/qgc-user-guide/getting_started/download_and_install.html

赋予 AppImage 文件执行权限:
chmod +x ./QGroundControl-x86_64.AppImage
# 安装依赖
sudo apt install -y ros-humble-ros-base ros-humble-geometry-msgs ros-humble-sensor-msgs
# 编译 Micro-XRCE-DDS-Agent
cd ~
git clone 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/
注意: 编译过程对网络要求较高,国内用户建议开启网络代理,耐心等待编译完成。
cd ~/PX4-Autopilot
# 安装 Python 依赖
pip3 install --user -U empy pyros-genmsg setuptools
# 创建工作空间
mkdir -p ros2_ws/src
cd ros2_ws/src
# 克隆 PX4 消息包
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git
# 编译
cd ..
colcon build
注意: 安装 Python 依赖时若出现版本冲突,建议降级至稳定组合:
pip3 install --user empy==3.3.4 setuptools==59.8.0
每次创建 PX4 工作空间时,均需克隆 PX4 的消息包。
# 终端 1:启动 Micro-XRCE-DDS-Agent(通信桥接)
MicroXRCEAgent udp4 -p 8888
# 终端 2:启动 Gazebo 仿真
cd ~/PX4-Autopilot
make px4_sitl gazebo-classic_iris
# 其他机型可选:gazebo-classic_iris_depth_camera, gazebo-classic_iris_vision 等
# 终端 3:启动 QGroundControl(可选,用于监控)
./QGroundControl-x86_64.AppImage
# 终端 4:进入工作空间后启动 Offboard 控制,实现起飞
ros2 run px4_ros_com offboard_control

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online