保姆级教程在Ubuntu 20.04上从零搞定PX4 SITL与Gazebo 11联合仿真无人机开发领域仿真环境搭建往往是新手面临的第一道门槛。本文将手把手带你完成PX4 SITLSoftware In The Loop与Gazebo 11在Ubuntu 20.04上的完整部署特别针对常见编译错误提供详细解决方案确保你能顺利迈出无人机算法开发的第一步。1. 环境准备与系统配置在开始之前请确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端执行以下命令进行系统更新sudo apt update sudo apt upgrade -y关键依赖安装是后续步骤的基础需要特别注意以下组件sudo apt install -y \ git \ cmake \ python3-pip \ python3-dev \ python3-numpy \ python3-jinja2 \ python3-empy \ python3-yaml \ python3-argparse \ python3-serial \ python3-tk \ python3-matplotlib \ python3-pygame \ python3-setuptools \ python3-wheel \ python3-psutil提示建议为PX4开发单独创建一个工作目录避免权限问题。例如mkdir ~/px4_ws cd ~/px4_ws2. Gazebo 11安装与配置Gazebo作为PX4官方推荐的高保真仿真环境其安装需要特别注意版本兼容性。以下是经过验证的安装步骤添加Gazebo官方源sudo sh -c echo deb http://packages.osrfoundation.org/gazebo/ubuntu-stable lsb_release -cs main /etc/apt/sources.list.d/gazebo-stable.list添加密钥并更新wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - sudo apt update安装Gazebo 11完整套件sudo apt install -y gazebo11 libgazebo11-dev安装完成后验证Gazebo版本gazebo --version预期输出应显示Gazebo multi-robot simulator, version 11.x.x3. PX4开发环境搭建PX4源码获取与初始化是搭建仿真环境的核心环节git clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot make distclean git submodule update --init --recursive常见问题解决方案表错误类型解决方案验证命令librust-gstreamer缺失sudo apt install librust-gstreamer-base-sysdefault-devmake px4_sitl gazeboOpenCV相关错误sudo apt install libopencv-dev libgstreamer-opencv1.0-0pkg-config --modversion opencvGStreamer开发包缺失sudo apt install libgstreamerd-3-devgst-inspect-1.0 --version4. 编译与运行联合仿真完成上述准备后可以开始编译PX4 SITLcd ~/PX4-Autopilot make px4_sitl gazebo首次编译可能需要较长时间约15-30分钟取决于硬件配置。如果编译成功你将看到Gazebo自动启动并加载Iris无人机模型。启动参数优化使用特定机型make px4_sitl gazebo_iris启用GUI调试make px4_sitl gazebo_iris___gdb无头模式运行HEADLESS1 make px4_sitl gazebo5. QGroundControl连接与配置QGroundControlQGC是PX4生态中重要的地面站软件下载安装最新稳定版wget https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGroundControl.AppImage chmod x QGroundControl.AppImage ./QGroundControl.AppImage连接仿真环境时确保选择正确的通信协议在QGC中点击Q图标选择Application Settings → Comm Links添加新的UDP连接端口号为145506. 高级调试技巧当仿真环境运行异常时可以尝试以下排查方法日志分析命令# 查看PX4运行日志 less /root/.ros/log/latest/px4-*.log # Gazebo详细日志模式 GAZEBO_MASTER_URIhttp://localhost:11345 gzserver --verbose性能优化建议关闭不必要的图形效果echo export LIBGL_ALWAYS_SOFTWARE1 ~/.bashrc使用轻量级窗口管理器sudo apt install xfce4调整Gazebo物理引擎参数修改~/PX4-Autopilot/Tools/sitl_gazebo/worlds/iris.world7. 典型问题解决方案在实际操作中你可能会遇到以下问题Gazebo黑屏或无响应检查显卡驱动nvidia-smi或glxinfo | grep OpenGL尝试软件渲染export LIBGL_ALWAYS_SOFTWARE1PX4编译失败清理编译缓存make clean更新子模块git submodule update --recursive检查依赖完整性./Tools/setup/ubuntu.sh --no-nuttxQGC无法连接验证UDP端口netstat -anu | grep 14550检查防火墙设置sudo ufw allow 14550/udp经过这些步骤你应该已经建立起完整的PX4仿真开发环境。在实际项目中我发现最常出现的问题是依赖版本冲突建议保持开发环境的纯净必要时可以使用Docker容器隔离不同项目。