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的!)

相关推荐
ACP广源盛139246256734 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
Empty-Filled4 小时前
AI生成测试用例功能怎么测:一个完整实战案例
网络·人工智能·测试用例
码云数智-大飞5 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
jinanwuhuaguo5 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
汤愈韬6 小时前
三种常用 NAT 的经典案例
网络协议·网络安全·security
等风来不如迎风去6 小时前
【win11】最佳性能:fix 没有壁纸,一直黑屏
网络·人工智能
Harvy_没救了6 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
汤愈韬7 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
2401_873479407 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
7ACE8 小时前
Wireshark TS | TLP 超时时间
网络·网络协议·tcp/ip·wireshark·tcpdump