mavros中的gcs_url和fcu_url的含义
参考:mavros中的gcs_url:=“udp://:14556@192.168.1.106:14551“含义
MAVLink 实战一:通过UDP发送MAVLink消息
1.参数的含义
UDP URL 通用配置说明
udp://[bind_host][:port]@[remote_host][:port][/?ids=sysid,compid]
- bind_host:本地绑定 IP(默认
0.0.0.0
,建议留空) - port:本地监听端口(自定义,但需避免冲突)
- remote_host:目标主机 IP(
localhost
为本地,192.168.1.106
为远程设备) - remote_port:目标端口(需与对端程序配置一致)
- 可选参数:
?ids=sysid,compid
用于指定 MAVLink 系统 ID 和组件 ID
1. GCS_URL 配置:udp://:14556@192.168.1.106:14550
udp://[bind_host][:port]@[remote_host][:port]
↓ ↓ ↓
udp://:14556@192.168.1.106:14550
- FCU_URL 配置:
udp://:24540@localhost:34580
udp://:24540@localhost:34580
↓ ↓ ↓
本地端口24540 远程主机localhost 远程端口34580
- FCU_URL 配置:
:/dev/ttyTHS0:230400
/dev/ttyTHS0:230400
↓ ↓
串口设备路径 波特率
2. 配置示例(launch 文件)
<launch>
<!-- 配置MAVROS节点 -->
<node pkg="mavros" type="mavros_node" name="mavros" clear_params="true">
<param name="gcs_url" value="udp://:14556@192.168.1.106:14550" />
<param name="fcu_url" value="udp://:24540@localhost:34580" />
<!-- 其他参数... -->
</node>
</launch>
三种连接配置对比表
配置类型 | 示例 URL / 参数 | 协议 | 结构解析 | 适用场景 | 波特率 / 端口 | 特点 |
---|---|---|---|---|---|---|
串口连接 | fcu_url:/dev/ttyTHS0:230400 |
串口 | /dev/ttyTHS0 (设备路径):230400 (波特率) |
本地硬件直连(如 Jetson) | 230400 bps | 稳定低延迟,需物理线缆 |
UDP 连接 1 | gcs_url:="udp://:14556@192.168.1.106:14550" |
UDP | udp:// (协议):14556 (本地端口)@192.168.1.106 (目标 IP):14550 (目标端口) |
远程 GCS 连接(如地面站) | 14556/14550 | 无线通信,适合局域网内控制 |
UDP 连接 2 | <arg name="fcu_url" default="udp://:24540@localhost:34580"/> |
UDP | udp://:24540 (本地端口)@localhost (本地 IP):34580 (目标端口) |
PX4 SITL 仿真(本地) | 24540/34580 | 仿真环境专用,无需硬件 |
2.gcs_url 参数的非必须性
在硬件在环仿真的时候,USB 直连电脑和飞控时, gcs_url 参数并 “不重要” 。
- QGC 的自动检测机制
QGC 通过系统串口枚举(如 Linux 下的/dev/ttyUSB*
设备)自动发现飞控硬件,无需依赖启动命令中的gcs_url
配置。只要飞控通过 USB 正确连接电脑并被系统识别,QGC 即可直接建立通信。 - gcs_url 的适用场景
gcs_url
主要用于 非 USB 通信场景(如 UDP 网络通信),例如:- 飞控与地面站通过无线数传模块通信时,需配置
gcs_url
为数传的 UDP 地址(如 `udp://:14556@192.168.1.106:14550)。 - 仿真环境中通过网络模拟飞控与地面站的通信链路时,需明确
gcs_url
的网络地址。
- 飞控与地面站通过无线数传模块通信时,需配置
3.在QGC中创建udp连接
注意,一般QGC在启动的时候会自动监听14550端口,不需要自己创建udp连接,如果需要的话可按此操作建立udp与别的端口的通信。