ROS_DISCOVERY_SERVER
是一个环境变量,用于配置 DomainParticipant 如何连接到发现服务器。这个变量主要在使用简单(SIMPLE)、服务器(SERVER)或备份(BACKUP)发现协议时有效。
关键点解析:
环境变量的作用:
- 当设置了
ROS_DISCOVERY_SERVER
,如果 DomainParticipant 的发现协议是 SIMPLE,则 Fast DDS 将其配置为指定服务器的客户端。 - 如果协议是 SERVER 或 BACKUP,则该变量用于添加远程服务器。
- 当设置了
地址格式:
- 可以使用 IPv4 或 IPv6 地址,TCP/UDP 协议,以及 DNS 名称来指定服务器地址。
- 示例地址形式包括:
- IPv4 地址:
192.168.2.23
- 带端口的IPv4地址:
192.168.2.23:35665
- IPv6 地址:
[1080::8:800:200C:417A]:35665
- DNS 名称:
eprosima.com
- 带端口的DNS名称:
eprosima.com:35665
- IPv4 地址:
多个服务器:
- 要设置多个服务器地址,可以用分号分隔,如
export ROS_DISCOVERY_SERVER="server1;server2"
。
- 要设置多个服务器地址,可以用分号分隔,如
默认端口:
- 默认情况下,UDP 使用端口 11811,而 TCP 使用端口 42100。
动态更新:
- 在运行时可以通过
FASTDDS_ENVIRONMENT_FILE
从环境文件加载新的远程服务器,允许对现有 CLIENT、SERVER 或 BACKUP 进行更新。
- 在运行时可以通过
示例
在 Linux 上,可以使用如下命令设置环境变量:
export ROS_DISCOVERY_SERVER="84.22.259.329:8888;localhost:1234"
在 Windows 上,可以使用以下命令:
set ROS_DISCOVERY_SERVER=84.22.259.329:8888;localhost:1234
注意事项
- 确保提供的 IP 地址或域名是有效的,并且能够被正确解析。
- 对于 DNS 名称,应确保它们能解析为有效的 IPv6 地址,否则会抛出错误。
内容由零声教学AI助手提供,问题来源于学员提问