Improved Dynamic Discovery

本文详细介绍了如何在ROS2中配置动态发现功能,包括控制节点间通信范围的参数ROS_AUTOMATIC_DISCOVERY_RANGE和指定静态对等节点的ROS_STATIC_PEERS。教程提供了各种组合示例,帮助开发者根据需求定制发现行为。

您正在阅读开发版本的文档。 有关最新发布的版本,请查看 Iron

改进的动态发现

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

教程级别:高深

时间:15分钟

概述

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

配置参数

  • ROS_AUTOMATIC_DISCOVERY_RANGE:控制 ROS 节点尝试发现彼此的距离。

    有效选项包括:

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

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

    • OFF意味着节点不会发现任何其他节点,即使在同一台计算机上也是如此。

    • SYSTEM_DEFAULT表示“不更改任何发现设置”。

  • ROS_STATIC_PEERS:是 ROS 应尝试发现节点的分号 () 分隔的地址列表。 这允许连接到特定计算机上的节点(只要其发现范围未设置为 )。;OFF

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

A 表示节点 A 和 B 不会发现彼此并进行通信。 A 表示节点 A 和 B 将相互发现并通信。XO

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

同一主机

节点 B 设置

无静态对等体

使用静态对等体

关闭

本地主机

关闭

本地主机

节点 A 设置

无静态对等体

关闭

X

X

X

X

X

X

本地主机

X

O

O

X

O

O

X

O

O

X

O

O

使用静态对等体

关闭

X

X

X

X

X

X

本地主机

X

O

O

X

O

O

X

O

O

X

O

O

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

不同的主机

节点 B 设置

无静态对等体

使用静态对等体

关闭

本地主机

关闭

本地主机

节点 A 设置

无静态对等体

关闭

X

X

X

X

X

X

本地主机

X

X

X

X

O

O

X

X

O

X

O

O

使用静态对等体

关闭

X

X

X

X

X

X

本地主机

X

O

O

X

O

O

X

O

O

X

O

O

例子

例如,以下命令将限制 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值