我对DDS相当陌生。我使用的是基于DDS的ROS2。我想运行一个基于ROS2的发布者,并订阅一个都位于不同PC上的基于RTI Connext的Simulink模型。
我想要两台不同PC之间的通信。
问题:
答案 0 :(得分:3)
是,两台PC必须在同一网络下。 组播用于发现ROS2中的节点。
如果您的公司未提供必要的网络支持,则可以随时尝试构建自己的网络。例如,您可以使用开关并将两台PC连接到它。
或者您可以使用手机。我用连接了4台设备并使用ROS2进行通讯的手机创建了一个热点。
但是,如果您需要访问公司网络,请询问您的IT部门是否可以通过连接到具有多播的网络的交换机来设置您的时间:)
编辑:如另一个答案中所述,可以进行静态发现。但是,这将暗示修改RTI Connext RMW> https://github.com/ros2/rmw_connext
的ROS2配置答案 1 :(得分:1)
如果计算机位于同一网络上,并且启用了多播,并且多播TTL足够高,并且计算机正在同一域中的同一主题上发布/订阅,并且它们的类型和QoS兼容,则他们应该自动发现彼此。
如果禁用了多播,则可以告诉DDS参与者使用特定的地址进行对等(请参阅“初始对等”文档)。这可以通过不同的方式来完成。这是一个很好的参考:Initial Peers