ZBLOG

11.4. ROS_DISCOVERY_SERVER Warning The environment variable is only used in the case where discovery protocol is set to SIMPLE, SERVER, or BACKUP. In any other case, the environment variable has no effect. Setting this variable configures the D...

ROS_DISCOVERY_SERVER 是一个环境变量,用于配置 DomainParticipant 如何连接到发现服务器。这个变量主要在使用简单(SIMPLE)、服务器(SERVER)或备份(BACKUP)发现协议时有效。

关键点解析:

  1. 环境变量的作用

    • 当设置了 ROS_DISCOVERY_SERVER,如果 DomainParticipant 的发现协议是 SIMPLE,则 Fast DDS 将其配置为指定服务器的客户端。
    • 如果协议是 SERVER 或 BACKUP,则该变量用于添加远程服务器。
  2. 地址格式

    • 可以使用 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
  3. 多个服务器

    • 要设置多个服务器地址,可以用分号分隔,如 export ROS_DISCOVERY_SERVER="server1;server2"
  4. 默认端口

    • 默认情况下,UDP 使用端口 11811,而 TCP 使用端口 42100。
  5. 动态更新

    • 在运行时可以通过 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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=7374

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?