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

相关推荐
你驴我15 分钟前
WhatsApp Cloud API 速率限制下的令牌桶与退避策略实践
网络·后端·python
Eloudy30 分钟前
QSFP28、RoCEv2、RFSoC-4x2 数据传输与器件链路
网络·fpga开发·rocev2
平生幻1 小时前
基于优先级的流量控制PFC
网络
yeflx1 小时前
基于 ROS2 bag 的多激光雷达外参标定(无标定板方案)
网络
上海云盾-高防顾问2 小时前
SD-WAN 跨境加速,真实日常使用体验
网络·网络安全
2401_873479403 小时前
SOC告警日志中IP归属不明怎么办?部署IP离线库三步提升响应效率
网络·网络协议·tcp/ip
Multipath7123 小时前
多链路聚合 + 宽带自组网 + 卫星便携站,构筑应急通信“铁三角”乾元通多链路聚合路由破局“三断”绝境,重构应急通信生命线
网络·5g·安全·智能路由器·实时音视频
nVisual3 小时前
机柜PDU安装位置与空间建模方案
大数据·网络·数据库·信息可视化·数据中心基础设施管理
许彰午4 小时前
09-媒体访问控制
网络