news 2026/4/21 12:53:35

【避坑指南】Ubuntu20.04下PX4开发环境一站式部署与Gazebo仿真实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【避坑指南】Ubuntu20.04下PX4开发环境一站式部署与Gazebo仿真实战

1. 环境准备:Ubuntu20.04基础配置

刚接触PX4开发的朋友们,我强烈建议使用虚拟机来搭建环境。实测下来,物理机和WSL2都可能遇到各种玄学问题,特别是Gazebo图形界面无法显示这种头疼的情况。我自己用的是VMware Workstation 16 Pro + Ubuntu20.04 LTS的组合,稳定性非常好。

第一步必须是换源!这个看似简单的操作能帮你避开90%的依赖安装失败问题。打开Ubuntu的"软件和更新"设置,在"下载自"下拉菜单里选择阿里云或清华源。记得换完源后一定要执行:

sudo apt update && sudo apt upgrade -y

这里有个细节要注意:如果你之前安装过其他版本的Gazebo,建议先彻底卸载干净。我遇到过新旧版本冲突导致PX4无法启动仿真的情况,可以用这个命令清理:

sudo apt remove '^gz-.*' '^ignition-.*' '^ros-.*' --purge

2. 工具链安装全流程

2.1 获取PX4源代码

官方推荐用--recursive参数克隆仓库,这样可以自动下载所有子模块。但国内直接克隆GitHub仓库可能会非常慢,这里分享两个实测有效的加速方法:

git clone https://gitee.com/mirrors/PX4-Autopilot.git --recursive

或者先克隆主仓库再手动更新子模块:

git clone https://github.com/PX4/PX4-Autopilot.git cd PX4-Autopilot git submodule update --init --recursive

2.2 运行安装脚本

执行官方提供的ubuntu.sh脚本时,经常会卡在某个依赖项。这时候不要急着重试,先看看报错信息。常见问题有:

  • 缺少Python3-pip:sudo apt install python3-pip
  • 网络超时:换手机热点试试
  • 权限问题:记得在普通用户下执行,不要用root

完整安装命令如下:

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

看到Relogin or reboot computer提示就说明成功了,这时候必须重启才能生效。

3. Gazebo仿真器配置

3.1 安装Gazebo Garden

新版Gazebo Garden的物理引擎更精确,但安装过程容易出问题。先添加官方源:

sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

安装时如果报依赖错误,可以尝试这个组合命令:

sudo apt update && sudo apt install gz-garden -y --fix-missing

3.2 图形界面问题排查

如果Gazebo启动后黑屏或者闪退,大概率是显卡驱动问题。先用这个命令检查:

glxinfo | grep "OpenGL renderer"

如果是LLVMpipe软件渲染,需要安装闭源驱动。N卡用户可以这样操作:

sudo ubuntu-drivers autoinstall sudo reboot

4. 首次仿真测试

进入PX4目录执行:

make px4_sitl_default gazebo

第一次编译会比较慢,可能要20-30分钟。如果卡住可以按Ctrl+C中断后重试。成功后会看到Gazebo界面中的iris无人机模型。

让无人机起飞的正确姿势是:

  1. 先等QGC地面站自动连接(约30秒)
  2. 在终端输入:commander takeoff
  3. 降落用:commander land

5. 常见问题解决方案

Q:make时出现Python包缺失错误A:手动安装缺失的包:

pip3 install --user numpy toml pandas jinja2 pyyaml

Q:Gazebo模型加载缓慢A:提前下载模型包:

wget http://gazebosim.org/models/gazebo_models.tar.bz2 tar -jxvf gazebo_models.tar.bz2 -C ~/.gazebo/

Q:PX4无法连接QGCA:检查用户组权限:

sudo usermod -a -G dialout $USER sudo reboot

6. 进阶调试技巧

想要修改无人机参数?试试:

make px4_sitl_default gazebo___iris param show param set MPC_Z_VEL_MAX_UP 2.0

想测试其他机型?PX4支持多种仿真模型:

  • 固定翼:make px4_sitl_default gazebo___plane
  • 无人车:make px4_sitl_default gazebo___r1_rover

遇到Segmentation fault错误时,先清理编译缓存:

make clean make distclean git submodule foreach --recursive git clean -xfd
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 12:50:40

比迪丽ComfyUI工作流分享:自动触发bdl+风格强化节点封装

比迪丽ComfyUI工作流分享:自动触发bdl风格强化节点封装 1. 从WebUI到ComfyUI:为什么你需要这个工作流 如果你用过比迪丽(Videl / Bidili)的WebUI,可能会觉得它简单直接:输入提示词,点击生成&a…

作者头像 李华
网站建设 2026/4/21 12:50:06

3分钟掌握跨平台资源下载神器:res-downloader完全使用指南

3分钟掌握跨平台资源下载神器:res-downloader完全使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字…

作者头像 李华
网站建设 2026/4/21 12:49:40

保姆级教程:用Python+ddddocr搞定条形码查询网站的验证码识别

Python实战:用ddddocr突破条形码查询网站验证码的完整方案 每次爬取商品条形码数据时,那个烦人的验证码是不是总让你抓狂?作为爬虫开发者,我们最熟悉这种场景——好不容易构建好请求参数,却卡在小小的验证码识别上。传…

作者头像 李华