【ROS2】高级:改进的动态发现

目标:本教程将展示如何使用改进的动态发现配置。

 教程级别:高级

 时间:15 分钟

 目录

  •  概述

  • 配置参数

  •  示例

 概述

默认情况下,ROS 2 将尝试自动查找同一子网上所有主机上的所有节点。但是,可以使用以下选项来控制 ROS 2 的发现范围

配置参数

  • ROS_AUTOMATIC_DISCOVERY_RANGE :控制 ROS 节点尝试相互发现的距离

     有效选项是:

    • SUBNET 是默认值,对于基于 DDS 的中间件,它意味着它将发现任何通过多播可访问的节点

    • LOCALHOST 表示节点将只尝试发现同一台机器上的其他节点。

    • OFF 表示该节点不会发现任何其他节点,即使在同一台机器上也是如此。

    • SYSTEM_DEFAULT 意味着“不要更改任何发现设置”

  • ROS_STATIC_PEERS : 是一个由分号 ( ; ) 分隔的地址列表,ROS 应该尝试在这些地址上发现节点。这允许连接到特定机器上的节点(只要它们的发现范围未设置为 OFF )。

这两个环境变量的组合将启用和控制本地和远程节点的 ROS 2 通信发现范围。下表突出显示了可能组合的发现范围行为。

X 表示节点 A 和 B 将不会相互发现和通信。A O 表示节点 A 和 B 将相互发现和通信。

节点 A 和 B 在同一主机上运行

f2de558e4d662091c215f26703a6f59e.png

4e41a958abab041be55e632769a494f7.png

 相同主机   节点 B 设置     



 没有静态对等体

 与静态对等体




 关 本地主机 子网 关 本地主机 子网
 节点 A 设置 没有静态对等体 关XXXXXX


 本地主机XOOXOO


 子网XOOXOO

 与静态对等体 关XXXXXX


 本地主机XOOXOO


 子网XOOXOO

节点 A 和 B 在不同的主机上运行

c97a1da0e6422adcc9f3008ef8c350ba.png

70669663b3c764fa55d0b5fd842ebf8a.png

 不同的主机   节点 B 设置     



 没有静态对等体

 与静态对等体




 关 本地主机 子网 关 本地主机 子网
 节点 A 设置 没有静态对等体 关XXXXXX


 本地主机XXXXOO


 子网XXOXOO

 与静态对等体 关XXXXXX


 本地主机XOOXOO


 子网XOOXOO

 示例

例如,以下命令将仅限制 ROS 2 与本地主机和特定对等方的通信:

Linux: 

export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST
export ROS_STATIC_PEERS=192.168.0.1;remote.com

要在 shell 会话之间保持此设置,您可以将该命令添加到您的 shell 启动脚本中:

echo "export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST" >> ~/.bashrc
echo "export ROS_STATIC_PEERS=192.168.0.1;remote.com" >> ~/.bashrc

Windows:

set ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST
set ROS_STATIC_PEERS=192.168.0.1;remote.com

如果你想在 shell 会话之间使其永久化,还需要运行:

setx ROS_AUTOMATIC_DISCOVERY_RANGE LOCALHOST
setx ROS_STATIC_PEERS 192.168.0.1;remote.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值