保姆级教程:在Ubuntu 20.04上搞定PX4固件下载与Gazebo仿真(附国内镜像加速方案)
国内开发者专属Ubuntu 20.04下PX4仿真环境高效搭建指南如果你正在为PX4固件下载和Gazebo仿真环境的搭建而头疼尤其是身处国内网络环境下频繁遭遇连接超时、速度缓慢等问题那么这篇文章就是为你量身定制的。我们将从零开始一步步带你绕过所有常见的坑用国内镜像加速方案快速完成环境搭建。1. 环境准备与依赖安装在开始PX4固件下载前我们需要确保系统环境已经准备就绪。Ubuntu 20.04作为长期支持版本是运行PX4仿真的理想选择。以下是你需要首先安装的基础依赖sudo apt update sudo apt upgrade -y sudo apt install -y git zip qtcreator cmake build-essential genromfs ninja-build对于Python依赖国内用户最常遇到的就是PyPI源连接超时问题。我们可以使用豆瓣源来加速安装pip3 install --user -i https://pypi.douban.com/simple/ \ pandas jinja2 empy toml numpy pyquaternion \ packaging serial pyserial cerberus提示如果遇到证书验证错误可以添加--trusted-host pypi.douban.com参数常见问题及解决方案错误Retrying after connection broken by ConnectTimeoutError解决检查网络连接确保使用的是国内镜像源错误pip not found解决安装python3-pipsudo apt install python3-pip2. PX4固件下载与镜像加速直接从GitHub克隆PX4固件对国内用户来说往往速度极慢。以下是使用国内镜像的优化方案git clone https://github.com.cnpmjs.org/PX4/Firmware.git cd Firmware git checkout v1.11.0-beta1 # 切换到稳定版本对于子模块更新需要特别注意.gitmodules文件的修改sed -i s/github.com/github.com.cnpmjs.org/g .gitmodules git submodule sync git submodule update --init --recursive如果遇到子模块路径错误可以尝试删除对应文件夹后重新更新rm -rf Tools/jMAVSim git submodule update --init --recursive3. Gazebo仿真环境配置Gazebo是PX4仿真的核心组件以下是完整的安装和配置步骤sudo apt install -y gazebo11 libgazebo11-dev sudo apt install -y libgstreamer-plugins-base1.0-dev对于Ignition Gazebo的配置需要修改fuel配置文件mkdir -p ~/.ignition/fuel echo servers: - name: osrf url: https://api.ignitionrobotics.org ~/.ignition/fuel/config.yaml常见Gazebo问题解决方案问题现象解决方案CMake找不到gazebosudo apt install libgazebo11-devGSTREAMER相关错误sudo apt install libgstreamer-plugins-base1.0-devGazebo启动崩溃export SVGA_VGPU1004. 编译与运行PX4仿真完成环境配置后可以开始编译PX4固件make px4_sitl_default gazebo编译成功后启动Gazebo仿真环境source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:$(pwd) export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo roslaunch px4 mavros_posix_sitl.launch常见运行问题及解决错误Resource not found: gazebo_ros解决sudo apt install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control错误RLException: [indoor1.launch] is neither...解决确保正确设置了ROS_PACKAGE_PATH环境变量5. 高级配置与优化技巧为了获得更好的仿真体验可以考虑以下优化措施性能调优在VMware中关闭3D加速分配更多CPU核心和内存给虚拟机使用export GAZEBO_MODEL_DATABASE_URI禁用在线模型下载网络优化配置git全局使用镜像git config --global url.https://github.com.cnpmjs.org/.insteadOf https://github.com/对于ROS包可以使用国内镜像源sudo sh -c . /etc/lsb-release echo deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ lsb_release -cs main /etc/apt/sources.list.d/ros-latest.list开发工具配置QtCreator配置make px4_sitl_default gazebo_qmake qtcreator ./build/px4_sitl_default使用ccache加速编译sudo apt install ccache export PATH/usr/lib/ccache:$PATH在实际项目中我发现最耗时的往往是子模块的更新过程。通过预先修改.gitmodules文件和使用国内镜像可以节省大量等待时间。另外保持固件版本与Gazebo版本的兼容性也非常重要建议使用PX4官方推荐的稳定版本组合。