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-.*' --purge2. 工具链安装全流程
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 --recursive2.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-missing3.2 图形界面问题排查
如果Gazebo启动后黑屏或者闪退,大概率是显卡驱动问题。先用这个命令检查:
glxinfo | grep "OpenGL renderer"如果是LLVMpipe软件渲染,需要安装闭源驱动。N卡用户可以这样操作:
sudo ubuntu-drivers autoinstall sudo reboot4. 首次仿真测试
进入PX4目录执行:
make px4_sitl_default gazebo第一次编译会比较慢,可能要20-30分钟。如果卡住可以按Ctrl+C中断后重试。成功后会看到Gazebo界面中的iris无人机模型。
让无人机起飞的正确姿势是:
- 先等QGC地面站自动连接(约30秒)
- 在终端输入:
commander takeoff - 降落用:
commander land
5. 常见问题解决方案
Q:make时出现Python包缺失错误A:手动安装缺失的包:
pip3 install --user numpy toml pandas jinja2 pyyamlQ: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 reboot6. 进阶调试技巧
想要修改无人机参数?试试:
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