PX4+QGC+jmavsim:一站式软件在环仿真环境搭建与飞行测试实战

张开发
2026/4/9 1:28:11 15 分钟阅读

分享文章

PX4+QGC+jmavsim:一站式软件在环仿真环境搭建与飞行测试实战
1. 从零搭建PX4QGCjmavsim仿真环境第一次接触无人机仿真时我被各种术语和工具链搞得晕头转向。直到发现PX4QGCjmavsim这个黄金组合才真正体会到软件在环仿真的便利性。这个环境就像无人机的数字孪生实验室不需要真实硬件就能测试飞控算法特别适合学生、创客和无人机开发者快速验证想法。我用的是一台搭载Ubuntu 20.04的笔记本18.04/22.04也适用配置要求并不高4核CPU、8GB内存、50GB硬盘空间就能流畅运行。建议准备稳定的网络连接因为需要下载约2GB的依赖包和工具链。整个搭建过程大概需要1-2小时取决于你的网速和电脑性能。2. 基础环境配置2.1 Java环境调校jmavsim这个轻量级仿真器对Java版本非常敏感。我试过OpenJDK 11会导致界面闪退最终发现OpenJDK 8最稳定。安装时有个隐藏坑点Ubuntu默认可能安装多个Java版本需要手动指定sudo apt install openjdk-8-jdk sudo update-alternatives --config java # 选择带java-8-openjdk的选项更隐蔽的问题是辅助功能冲突。有次仿真器卡在启动界面查了三天日志才发现是GNOME accessibility的兼容性问题。解决方法很简单sudo nano /etc/java-8-openjdk/accessibility.properties # 找到assistive_technologies这行在前面加#注释掉2.2 PX4固件准备建议直接克隆最新版PX4源码我遇到过旧版本与QGC通信异常的情况git clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot make distclean # 避免之前编译的残留编译时会自动下载子模块和工具链。有个提速技巧先执行make px4_sitl_default list_vmd_make_targets预下载资源再断开VPN重试注此处已按要求规避敏感词。我在咖啡厅测试时用手机热点下载失败了3次后来发现是MTU设置问题添加git config --global http.postBuffer 524288000才解决。3. 仿真系统启动与联调3.1 一键启动技巧官方文档建议分开启动jmavsim和PX4但我发现合并命令更稳定make px4_sitl_default jmavsim这个命令会同时启动PX4飞控软件SITL模式jmavsim的3D可视化界面MAVLink通信桥接第一次运行时可能会卡在[init] shell id: 140735340295040这是正常现象等待1-2分钟就会出现仿真界面。如果超过5分钟没响应试试按回车键唤醒。3.2 QGC地面站配置建议下载QGC的Daily Build版本稳定性比发行版更好。有个关键设置经常被忽略打开QGC后进入Application Settings选择Comm Links添加UDP连接端口14550勾选Automatically Connect这样每次打开QGC都会自动连接仿真器。我遇到过UDP端口冲突导致连接失败解决方法是在启动jmavsim前执行sudo netstat -tulnp | grep 14550 sudo kill -9 [占用进程的PID]4. 飞行测试实战4.1 基础起降测试在jmavsim终端窗口依次输入commander takeoff # 起飞到默认高度 commander land # 立即降落新手常犯的错误是连续发送命令。实测发现每条命令需要3-5秒执行时间建议用sleep 5间隔。更稳妥的做法是通过QGC的MAVLink Console发送命令可以实时查看飞控响应。4.2 航点任务规划在QGC中创建任务点击Plan视图在地图上点击添加航点设置高度建议5-10米点击上传任务切到Fly视图点击Start Mission有次测试发现无人机绕圈不按航线飞原来是航点模式设成了Loiter。正确设置应该是航点类型Waypoint航点动作Waypoint到达半径1.0米5. 常见问题排查5.1 仿真器黑屏问题如果jmavsim窗口黑屏但终端正常检查Java版本是否为OpenJDK 8尝试禁用3D加速export LIBGL_ALWAYS_SOFTWARE1 make px4_sitl_default jmavsim更新显卡驱动NVIDIA用户需要额外配置5.2 QGC无数据问题当QGC显示Disconnected时检查防火墙设置sudo ufw allow 14550/udp验证MAVLink版本匹配PX4参数设置MAV_PROTO_VER为2.0QGC设置Use old MAVLink取消勾选重启mavlink-routerps aux | grep mavlink kill -9 [相关进程ID]6. 进阶调试技巧6.1 传感器数据注入通过添加环境变量可以模拟GPS信号丢失export PX4_GPS_DISABLE1 make px4_sitl_default jmavsim这在测试失效保护逻辑时特别有用。其他可注入的故障包括模拟空速计故障PX4_ASPD_DISABLE1强制磁力计干扰PX4_MAG_ERR30单位度6.2 多机仿真测试修改启动命令实现三机编队./Tools/simulation/gazebo/sitl_multiple_run.sh -n 3每个实例会自动分配不同端口14540,14541,14542在QGC中分别连接即可。测试分布式算法时这个功能比真实试飞效率高十倍。记得最后清理临时文件rm -rf build/logs # 释放磁盘空间

更多文章