跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

ROS2+Gazebo+PX4 仿真环境搭建与无人机起飞指南

综述由AI生成详细记录了在 Ubuntu 系统下构建 ROS2 Humble、Gazebo Classic 及 PX4 飞控的仿真环境全过程。内容涵盖 PX4 源码克隆与子模块更新、依赖项自动化安装、SITL 仿真模型编译、QGroundControl 地面站配置、Micro-XRCE-DDS-Agent 通信桥接器部署以及 ROS2 工作空间初始化。通过多终端协同启动仿真与 Offboard 控制节点,实现了无人机在 Gazebo 中的虚拟起飞,为后续自主飞行算法验证奠定基础。

KernelLab发布于 2026/4/6更新于 2026/5/2228 浏览

环境搭建

前置环境

  • ROS2 Humble
  • Gazebo Classic (11)

1. 下载 PX4 源码

在 Home 目录下,使用 Git 克隆 PX4 代码仓库并更新所有子模块。

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

注意: 源码包含许多子模块,不建议直接下载 GitHub 主页的 zip 包解压,以免缺失依赖。国内网络克隆速度较慢,建议使用网络代理加速。

2. 运行自动安装脚本

PX4 提供自动化脚本以安装编译和仿真环境所需的所有依赖。

cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh

若仅需仿真且无需与硬件交互,可选择不安装固件/编译环境以节省时间:

cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh --no-nuttx

3. 编译并运行示例

在 PX4-Autopilot 目录下执行以下命令:

make px4_sitl gazebo-classic_iris

首次编译耗时较长属正常现象。启动成功后,Gazebo 将弹出并显示黑色无人机模型。

文章配图

4. 安装并配置 QGC(地面站)

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

5. 安装 Micro-XRCE-DDS-Agent(ROS2 与 PX4 通信桥梁)

# 安装依赖
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/

注意: 编译过程对网络要求较高,国内用户建议开启网络代理,耐心等待编译完成。

6. 配置 PX4 的 ROS2 接口

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 的消息包。

7. 启动流程

# 终端 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

参考资源

  • PX4 飞控官网:https://docs.px4.io/main/zh/
  • QGC 地面站:https://qgroundcontrol.com/

目录

  1. 环境搭建
  2. 前置环境
  3. 1. 下载 PX4 源码
  4. 2. 运行自动安装脚本
  5. 3. 编译并运行示例
  6. 4. 安装并配置 QGC(地面站)
  7. 将用户添加到 dialout 组以便访问 USB 设备
  8. 移除 ModemManager,避免干扰串口通信
  9. 安装 GStreamer 相关库以支持视频流
  10. 5. 安装 Micro-XRCE-DDS-Agent(ROS2 与 PX4 通信桥梁)
  11. 安装依赖
  12. 编译 Micro-XRCE-DDS-Agent
  13. 6. 配置 PX4 的 ROS2 接口
  14. 安装 Python 依赖
  15. 创建工作空间
  16. 克隆 PX4 消息包
  17. 编译
  18. 7. 启动流程
  19. 终端 1:启动 Micro-XRCE-DDS-Agent(通信桥接)
  20. 终端 2:启动 Gazebo 仿真
  21. 其他机型可选:gazebo-classicirisdepthcamera, gazebo-classiciris_vision 等
  22. 终端 3:启动 QGroundControl(可选,用于监控)
  23. 终端 4:进入工作空间后启动 Offboard 控制,实现起飞
  24. 参考资源
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 第十五届蓝桥杯省赛 Java A 组 Q1~Q3 题解
  • AI产品经理入门指南:核心职责、技能体系与实战路径
  • Arduino BLDC 自主巡逻机器人:避障与路径规划实战
  • Midjourney 进阶:色调详解(上)
  • PyTorch 生成式人工智能:MuseGAN 详解与实现
  • C/C++ 常见错误处理机制与实战指南
  • ClawdBot 本地部署实战:vLLM 后端与设备授权全链路解析
  • vLLM、SGLang 与 llama.cpp 深度对比及选型指南
  • 无人机航拍图像处理:目标跟踪与场景重建
  • AI 写作辅助平台评测:炼字工坊与蛙蛙写作深度解析
  • Linux 系统编程实践:手动实现 Shell
  • Linux 匿名管道通信:原理与代码实战
  • 机器人系统架构详解:2026 年最新技术路线
  • 深入理解 Linux 网络 I/O 模型:从阻塞到纯异步的演进
  • C++ STL 核心基础:迭代器、auto 与范围循环
  • VS Code Copilot 接入第三方 OpenAI 兼容模型实战
  • Python+Agent 入门实战:0 基础搭建可复用 AI 智能体
  • Django REST Framework 企业级 API 架构设计与实战
  • LeetCode 290. 单词规律:多种解法与性能对比
  • FF 宣布 FX Super One 二季度交付,目标成美国头部 AI 机器人公司

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online