mavros udp url

fcu_url:飞控的地址,有的飞控有网口连接。

gcs_url:一个额外的mavlink流转发模块,把从fcu_url收到的每条消息都转发到这个地址,并把从这个地址收到的消息全部转发给飞控。主要用于转发给地面站QGC。

注意fcu_url和gcs_url是mavros里两个独立的模块,fcu_url的remote应当是飞控,而gcs_url的远端是想转发到的对象(一般是QGC所在电脑)

fcu_url和gcs_url里udp url格式

bash 复制代码
udp://bind_ip:bind_port@remote_ip:remote_port

这是mavros自己定义的格式,靠@和:来区分字符串。

其中都可以空着不写,但是@符号必须有,默认值分别为:

bind_ip: 0.0.0.0 (本机所有网卡IP)

bind_port: 14555

remote_ip: "" (默认是空,此时不发送mavlink流到remote)

remote_port: 14550 (QGC默认监听这个端口)

注意:remote_ip:remote_port只是建议值,mavros会通过bind_ip:bind_port收到的消息来源重新设置remote_ip:remote_port,这就是为什么remote_ip可以空着的原因。

各项作用

bind_ip:bind_port的作用:mavros监听这个端口,一旦收到消息,会把收到的消息来源重新设置remote_ip:remote_port (这个行为有点像一个服务器)

remote_ip:remote_port的作用:mavros向这个远端IP端口发送mavlink消息(remote_ip不为空的时候)

特殊情况

udp-b://@ 等效于

udp-b://0.0.0.0:14555@255.255.255.255:14550

一般用于gcs_url在不知道QGC ip的时候连接第一个打开的QGC,注意这里remote_ip不管你写什么都会被改为255.255.255.255(也就是向子网内所有设备的14550端口广播发送mavlink消息),直到0.0.0.0:14555端口收到消息(QGC回应),然后和上面一样,remote_ip:remote_port会被置为当前QGC的实际IP:14550,从而从广播转为了单播。后续再有别的QGC打开也不会连上了,因为已经转成了单播。

不建议用udp-b://@,因为没有QGC打开时,此时的广播行为会很占据带宽,所有子网内设备即使没有监听14550端口,也会收到发来的udp包(不过被丢弃了)。

更推荐用 udp://0.0.0.0:bind_port@ ,此时mavros像一个udp服务器,等待QGC来主动连接它的IP:bind_port,然后mavros的remote_ip和remote_port会自动获取QGC的IP和端口。就是需要QGC手动设置去连接udp server稍微麻烦点。

udp-pb://@基本和udp-b://@一样,唯一不同是固定永远为广播,即使有QGC连上也不会转为单播,这样可以同时连多个QGC(但是仍然不建议,广播大量mavlink流是非常占带宽和路由器CPU的!)

相关推荐
折哥的程序人生 · 物流技术专研20 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
专注VB编程开发20年21 小时前
c#Modbus上位机开发-一次读10个地址和100个地址速度一样
网络·网络协议·tcp/ip
2601_961963381 天前
技术解剖:哈希值、区块链与CA认证如何守护电子合同安全?
网络·人工智能·安全·区块链·智能合约·政务
2601_961963381 天前
从“电子化”到“自动化”:2026年智能合约与电子合同融合的技术逻辑与法律适配
网络·人工智能·区块链·智能合约·政务
不吃土豆的马铃薯1 天前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
dog2501 天前
网络可用性,扩展性,性能的统计本质
网络
嵌入式-老费1 天前
esp32开发与应用(再谈wifi的使用)
网络·智能路由器
米丘1 天前
HTTP/3 传输层 QUIC 协议
网络协议·http3
YJlio1 天前
《Sysinternals实战指南》16.5 Ctrl2Cap 工具详解:把 Caps Lock 变成 Ctrl 的键盘改造与回退方法
linux·运维·服务器·网络·python·学习·计算机外设
wangxixi5221 天前
OTN 以太网业务接入全流程详解
网络