1. 环境准备与基础概念在开始跨平台联调之前我们需要先理解几个关键组件的作用。QGroundControlQGC是无人机领域最流行的开源地面站软件相当于无人车的方向盘而PX4 JMAVSim则是基于Java开发的轻量级无人机模拟器可以理解为虚拟飞行实验室。两者通过MAVLink协议通信就像用对讲机传递指令。我最近在Windows 11上运行QGC v4.2.4同时在Ubuntu 22.04上部署PX4 v1.13.2时发现官方文档对跨平台联机的说明比较分散。这里分享我的配置经验特别要注意的是两台设备必须在同一局域网段比如都连接192.168.1.xLinux端需要开放14550/14555等UDP端口Windows防火墙要放行QGC的入站规则安装QGC最简单的方法是直接下载官方编译好的Windows安装包。对于PX4环境推荐使用Ubuntu系统执行以下命令初始化环境git clone https://github.com/PX4/PX4-Autopilot --recursive bash ./PX4-Autopilot/Tools/setup/ubuntu.sh make px4_sitl_default jmavsim2. 网络配置实战2.1 局域网基础检测首先用ifconfigLinux或ipconfigWindows确认两台设备的IP地址。我的测试环境中Windows QGC主机192.168.31.45Linux模拟器主机192.168.31.72在Linux端测试连通性ping 192.168.31.45如果出现Destination Host Unreachable需要检查路由器设置或网线连接。有个容易忽略的细节——部分笔记本电脑的WiFi模块会启用AP隔离需要在路由器后台关闭此功能。2.2 MAVLink参数精调默认启动的JMAVSim只会监听本地回环127.0.0.1这就是为什么直接运行make px4_sitl_default jmavsim时看到提示MAVLink only on localhost。需要通过MAVLink模块的UDP模式暴露到局域网mavlink start -u 14556 -o 14550 -t 192.168.31.45 -p参数解读-u 14556设置本地接收端口-o 14550指定远程端口QGC默认监听14550-t指定目标IPQGC主机地址-p启用广播模式3. QGC连接配置技巧在Windows端的QGC需要特别注意三点进入Vehicle Setup → MAVLink设置将Comm Links类型改为UDP添加监听端口14550与模拟器-o参数对应如果连接失败可以尝试以下排查步骤在Linux端用netstat -anu | grep 14550确认端口监听状态在Windows端用PowerShell测试Test-NetConnection -ComputerName 192.168.31.72 -Port 14550临时关闭Windows Defender防火墙测试4. 高级调试与自动化4.1 多机通信配置当需要连接多个模拟器时可以给每个实例分配不同端口# 第一台模拟器 mavlink start -u 14556 -o 14550 -t 192.168.31.45 # 第二台模拟器 mavlink start -u 14557 -o 14551 -t 192.168.31.45然后在QGC中添加多个UDP连接分别对应不同端口。4.2 开机自启动方案在Linux端创建systemd服务实现开机自动运行# /etc/systemd/system/px4_jmavsim.service [Unit] DescriptionPX4 JMAVSim Service [Service] ExecStart/usr/bin/make -C /path/to/PX4-Autopilot px4_sitl_default jmavsim Restartalways Useryour_username [Install] WantedBymulti-user.target启动服务后通过journalctl查看日志sudo journalctl -u px4_jmavsim.service -f5. 常见问题解决手册连接时断时续检查两台设备的电源管理设置禁用网卡省电模式尝试更换网线或改用5GHz WiFi频段在MAVLink命令中添加-r 1000000限制带宽占用QGC显示连接但无数据在模拟器控制台输入mavlink status查看活跃连接检查是否遗漏-p广播参数尝试重置参数param reset MAV_*高延迟问题在QGC的MAVLink Settings中调整Link Quality降低视频流分辨率如果启用使用-m minimal模式减少数据传输量我在实际项目中遇到过Ubuntu防火墙突然阻止通信的情况后来发现是ufw服务更新后重置了规则。建议将以下命令写入脚本sudo ufw allow from 192.168.31.0/24 to any port 14550:14555 proto udp
跨平台实战:Windows QGC与Linux JMAVSim模拟器的局域网联调
发布时间:2026/5/15 19:45:32
1. 环境准备与基础概念在开始跨平台联调之前我们需要先理解几个关键组件的作用。QGroundControlQGC是无人机领域最流行的开源地面站软件相当于无人车的方向盘而PX4 JMAVSim则是基于Java开发的轻量级无人机模拟器可以理解为虚拟飞行实验室。两者通过MAVLink协议通信就像用对讲机传递指令。我最近在Windows 11上运行QGC v4.2.4同时在Ubuntu 22.04上部署PX4 v1.13.2时发现官方文档对跨平台联机的说明比较分散。这里分享我的配置经验特别要注意的是两台设备必须在同一局域网段比如都连接192.168.1.xLinux端需要开放14550/14555等UDP端口Windows防火墙要放行QGC的入站规则安装QGC最简单的方法是直接下载官方编译好的Windows安装包。对于PX4环境推荐使用Ubuntu系统执行以下命令初始化环境git clone https://github.com/PX4/PX4-Autopilot --recursive bash ./PX4-Autopilot/Tools/setup/ubuntu.sh make px4_sitl_default jmavsim2. 网络配置实战2.1 局域网基础检测首先用ifconfigLinux或ipconfigWindows确认两台设备的IP地址。我的测试环境中Windows QGC主机192.168.31.45Linux模拟器主机192.168.31.72在Linux端测试连通性ping 192.168.31.45如果出现Destination Host Unreachable需要检查路由器设置或网线连接。有个容易忽略的细节——部分笔记本电脑的WiFi模块会启用AP隔离需要在路由器后台关闭此功能。2.2 MAVLink参数精调默认启动的JMAVSim只会监听本地回环127.0.0.1这就是为什么直接运行make px4_sitl_default jmavsim时看到提示MAVLink only on localhost。需要通过MAVLink模块的UDP模式暴露到局域网mavlink start -u 14556 -o 14550 -t 192.168.31.45 -p参数解读-u 14556设置本地接收端口-o 14550指定远程端口QGC默认监听14550-t指定目标IPQGC主机地址-p启用广播模式3. QGC连接配置技巧在Windows端的QGC需要特别注意三点进入Vehicle Setup → MAVLink设置将Comm Links类型改为UDP添加监听端口14550与模拟器-o参数对应如果连接失败可以尝试以下排查步骤在Linux端用netstat -anu | grep 14550确认端口监听状态在Windows端用PowerShell测试Test-NetConnection -ComputerName 192.168.31.72 -Port 14550临时关闭Windows Defender防火墙测试4. 高级调试与自动化4.1 多机通信配置当需要连接多个模拟器时可以给每个实例分配不同端口# 第一台模拟器 mavlink start -u 14556 -o 14550 -t 192.168.31.45 # 第二台模拟器 mavlink start -u 14557 -o 14551 -t 192.168.31.45然后在QGC中添加多个UDP连接分别对应不同端口。4.2 开机自启动方案在Linux端创建systemd服务实现开机自动运行# /etc/systemd/system/px4_jmavsim.service [Unit] DescriptionPX4 JMAVSim Service [Service] ExecStart/usr/bin/make -C /path/to/PX4-Autopilot px4_sitl_default jmavsim Restartalways Useryour_username [Install] WantedBymulti-user.target启动服务后通过journalctl查看日志sudo journalctl -u px4_jmavsim.service -f5. 常见问题解决手册连接时断时续检查两台设备的电源管理设置禁用网卡省电模式尝试更换网线或改用5GHz WiFi频段在MAVLink命令中添加-r 1000000限制带宽占用QGC显示连接但无数据在模拟器控制台输入mavlink status查看活跃连接检查是否遗漏-p广播参数尝试重置参数param reset MAV_*高延迟问题在QGC的MAVLink Settings中调整Link Quality降低视频流分辨率如果启用使用-m minimal模式减少数据传输量我在实际项目中遇到过Ubuntu防火墙突然阻止通信的情况后来发现是ufw服务更新后重置了规则。建议将以下命令写入脚本sudo ufw allow from 192.168.31.0/24 to any port 14550:14555 proto udp