1

我对 DDS 很陌生。我正在使用基于 DDS 的 ROS2。我想运行一个基于 ROS2 的发布者并订阅一个基于 RTI Connext 的 Simulink 模型,它们都位于不同的 PC 上。

我想要两台不同的电脑之间的通信。

问题 :

  • 两台 PC 是否应位于同一网络中。
  • 应该启用多播吗?多播在我公司的网络中被阻止。有替代方案吗?
4

2 回答 2

3

是的,两台电脑必须在同一个网络下。多播用于发现 ROS2 中的节点。

如果您的公司不提供必要的网络支持,您可以随时尝试构建自己的。例如,您可以使用交换机并将两台 PC 连接到它。

或者你可以使用你的手机。我用我的手机创建了一个热点,连接了 4 个设备并使用 ROS2 进行通信。

但是,如果您需要访问公司网络,请询问您的 IT 部门是否可以为您设置连接到具有多播功能的网络的交换机 :)

编辑:如另一个答案中所述,可以进行静态发现。但是,这意味着修改 RTI Connext RMW 的 ROS2 配置> https://github.com/ros2/rmw_connext

于 2018-06-25T17:22:13.277 回答
1

如果计算机在同一个网络上,并且启用了多播,并且多播 TTL 足够高,并且计算机在同一域上发布/订阅同一主题,并且它们的类型和 QoS 兼容,那么它们应该自动发现彼此。

如果多播被禁用,您可以告诉 DDS 参与者使用特定地址来对等(请参阅“初始对等点”的文档)。这可以通过不同的方式来完成。这是一个很好的参考:Initial Peers

于 2018-06-27T04:26:47.433 回答