保姆级教程:在Ubuntu 22.04上从零搭建PX4无人机仿真环境(含Gazebo模型避坑指南)

张开发
2026/4/9 14:17:55 15 分钟阅读

分享文章

保姆级教程:在Ubuntu 22.04上从零搭建PX4无人机仿真环境(含Gazebo模型避坑指南)
保姆级教程在Ubuntu 22.04上从零搭建PX4无人机仿真环境含Gazebo模型避坑指南当第一次接触PX4无人机仿真时很多人会被复杂的依赖关系和版本兼容性问题劝退。特别是Ubuntu 22.04这样的新版本系统官方文档往往来不及更新社区解决方案也参差不齐。本文将带你避开所有新版本特有的坑用最直接的方式完成环境搭建。1. 系统准备与依赖安装Ubuntu 22.04 LTS作为长期支持版本带来了更新的软件库但也引入了一些兼容性挑战。以下是必须完成的准备工作关键系统配置# 添加用户到dialout组 sudo usermod -a -G dialout $USER # 移除可能冲突的ModemManager sudo apt-get remove modemmanager -y建议先执行系统更新sudo apt update sudo apt upgrade -y基础依赖安装清单build-essential编译工具链ninja-build构建系统cmake跨平台构建git版本控制python3-devPython开发头文件安装命令sudo apt install -y \ build-essential \ ninja-build \ cmake \ git \ python3-dev \ python3-pip注意Ubuntu 22.04默认Python版本为3.10与PX4的Python工具链完全兼容无需额外配置。2. ROS 2 Humble安装指南PX4对ROS 2的支持已趋于成熟推荐使用ROS 2 Humble Hawksbill官方长期支持版本。设置软件源sudo apt install -y software-properties-common sudo add-apt-repository universe sudo apt update sudo apt install -y curl curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null完整安装ROS 2sudo apt update sudo apt install -y ros-humble-desktop环境配置echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc3. PX4开发环境配置源码获取与初始化git clone --recursive https://github.com/PX4/PX4-Autopilot.git ~/PX4-Autopilot cd ~/PX4-Autopilot针对国内用户可以使用镜像加速子模块更新git submodule sync --recursive git submodule update --init --recursive --depth 1依赖安装优化方案官方脚本可能会遇到网络问题可以分步执行cd ~/PX4-Autopilot/Tools/setup # 先安装基础工具链 ./ubuntu.sh --no-nuttx --no-sim-tools # 再单独安装仿真组件 ./ubuntu.sh --no-nuttx4. Gazebo仿真环境深度配置Ubuntu 22.04默认的Gazebo Fortress版本与PX4配合存在兼容性问题推荐以下配置方案专用Gazebo安装sudo apt install -y \ gazebo \ libgazebo-dev \ ros-humble-gazebo-ros-pkgs模型下载加速方案创建模型目录mkdir -p ~/.gazebo/models使用国内镜像下载基础模型包wget https://gitee.com/robin_shaun/gazebo_models/repository/archive/master.zip -O /tmp/models.zip unzip /tmp/models.zip -d ~/.gazebo/models关键环境变量设置echo export GAZEBO_MODEL_PATH$GAZEBO_MODEL_PATH:~/PX4-Autopilot/Tools/simulation/gazebo/sitl_gazebo/models ~/.bashrc echo export GAZEBO_RESOURCE_PATH$GAZEBO_RESOURCE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo/sitl_gazebo ~/.bashrc source ~/.bashrc5. MAVROS安装与配置二进制安装方案sudo apt install -y \ ros-humble-mavros \ ros-humble-mavros-extras地理数据集安装wget https://gitee.com/robin_shaun/geographiclib-datasets/raw/master/install_geographiclib_datasets.sh chmod x install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh验证MAVROS安装ros2 run mavros mavros_node --ros-args -p fcu_url:udp://:14540127.0.0.1:145576. QGroundControl地面站安装依赖解决sudo apt install -y \ libfuse2 \ libxcb-xinerama0 \ libxkbcommon-x11-0 \ libxcb-cursor0AppImage版本安装wget https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage -O ~/QGroundControl.AppImage chmod x ~/QGroundControl.AppImage桌面快捷方式创建cat ~/.local/share/applications/qgroundcontrol.desktop EOF [Desktop Entry] NameQGroundControl Exec$HOME/QGroundControl.AppImage Iconqgroundcontrol Terminalfalse TypeApplication CategoriesUtility; EOF7. 完整仿真流程测试启动PX4 SITLcd ~/PX4-Autopilot make px4_sitl gazebo-classic启动QGroundControl~/QGroundControl.AppImage验证MAVLink连接在QGC中检查连接状态应该能看到Vehicle Connected提示。同时可以尝试查看MAVROS节点状态测试基础指令发送验证传感器数据流常见问题速查表问题现象可能原因解决方案Gazebo黑屏显卡驱动问题安装专有驱动或切换集成显卡模型加载失败模型路径错误检查GAZEBO_MODEL_PATH环境变量MAVROS连接超时端口冲突检查14540和14557端口占用情况QGC无法识别设备权限问题确认用户已加入dialout组在完成所有配置后建议运行一个完整的任务测试ros2 launch px4_ros_com sensor_combined_listener.launch.py这个过程中如果遇到任何异常可以查看~/.ros/log目录下的日志文件进行诊断。

更多文章