鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    ros2 humble中使用 discovery server时如何将该服务放在远程主机上

    已定时 已固定 已锁定 已移动 已解决
    综合问题
    ros2 fastdds 发现服务
    3
    7
    476
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • minemyemailsM
      minemyemails
      最后由 编辑

      A电脑:ros2 humble

      B电脑:无ros2, 仅有fastdds

      当discovery服务部署在A电脑时,ros的talker和listener节点可正常收发;
      当discovery服务部署在A电脑时,B电脑的publisher和subscriber程序可正常首发;当把discovery服务部署在B电脑时,B电脑的publisher和subscriber程序可正常首发,但是,A电脑的talker和listener节点不能正常通讯,不符合预期。

      discovery服务都是通过fastdds discovery -i 0 -l 0.0.0.0 -p 11811命令启动。

      求教ros2节点连接外部的发现服务需要什么特别配置吗?为什么我的ros节点无法连接外部的discovery服务? A电脑的eprosima fastdds版本时humble默认的(2.6/2.7?) B电脑的是2.14(按理说不应该是版本不匹配的问题)

      小鱼小 1 条回复 最后回复 回复 引用 0
      • minemyemailsM
        minemyemails
        最后由 编辑

        总结一下:ros2humble中默认是fastdds2.6.x,该版本的fastdds不能使用2.14版本的发现服务。即为版本兼容问题。

        另外,ros2jazzy中默认使用fastdds2.14.0,也就是说不同版本的ros2也很有可能是不兼容的

        1 条回复 最后回复 回复 引用 1
        • 小伊小
          机器人小伊
          最后由 编辑

          当在ROS 2中使用Discovery Server(如Fast DDS Discovery Server)并且希望将其部署在远程主机上时,确实需要确保ROS 2节点能够正确地连接到这个外部的发现服务。针对你提出的问题,以下是一些可能的原因和解决方案:

          1. 网络配置:

            • 确保A电脑和B电脑之间的网络连接是通畅的,没有防火墙或其他网络设备阻止它们之间的通信。
            • 当你启动Discovery Server时,使用-l 0.0.0.0意味着它将在所有可用的网络接口上监听。但是,你需要确保Discovery Server的监听地址是可达的,也就是说,A电脑上的ROS 2节点能够解析并访问B电脑上Discovery Server的IP地址和端口。
          2. Discovery Server配置:

            • 确认Discovery Server的配置是正确的,特别是与DDS相关的配置,比如域ID(Domain ID)等。ROS 2节点和Discovery Server必须配置为使用相同的域ID才能相互发现。
          3. ROS 2节点配置:

            • ROS 2节点可能需要特定的配置来连接到外部的Discovery Server。这通常是通过环境变量或命令行参数来设置的。例如,ROS 2可能有一个环境变量或参数来指定Discovery Server的IP地址和端口。
            • 在ROS 2中,节点通常通过DDS(Data Distribution Service)进行发现和通信。如果Discovery Server在外部,那么DDS的配置可能需要指向这个外部的服务器。
          4. 版本兼容性:

            • 尽管你提到B电脑的Fast DDS版本(2.14)与A电脑的不完全一致,但通常版本之间的差异不会导致发现失败,除非存在不兼容的API更改或行为差异。然而,为了排除版本问题,可以考虑在B电脑上使用与A电脑相同的Fast DDS版本。
          5. 日志和调试:

            • 查看ROS 2节点和Discovery Server的日志输出,以获取关于为什么它们不能相互发现的更多信息。这可能会提供关于网络问题、配置错误或其他潜在问题的线索。
          6. 具体配置步骤:

            • 如果ROS 2和Fast DDS没有直接提供配置外部Discovery Server的选项,你可能需要手动设置DDS的实现(如eProsima Fast DDS)来指向外部的服务器。这可能涉及到修改DDS的配置文件或使用特定的命令行参数。
            • 另一个可能的解决方案是使用Docker或其他容器技术来封装ROS 2环境和Discovery Server,并确保它们在相同的网络环境中运行。这可以简化配置和部署过程。
          7. 参考文档和社区资源:

            • 查阅ROS 2和Fast DDS的官方文档,了解如何配置和使用Discovery Server。
            • 在ROS 2和Fast DDS的社区论坛、GitHub仓库或其他相关资源中搜索类似的问题和解决方案。

          最后,请注意,具体的配置步骤和选项可能因ROS 2和Fast DDS的版本、发行版以及使用的DDS实现而有所不同。因此,建议详细阅读相关文档并参考最新的资源来获取准确的指导。


          以上为生成回答,仅供参考~

          我是小伊,已接入ChatGpt,所有回复,仅供参考~

          1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @minemyemails
            最后由 编辑

            @minemyemails 这个说不定真的和版本有关系,建议先排除下版本问题

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

            minemyemailsM 1 条回复 最后回复 回复 引用 0
            • minemyemailsM
              minemyemails
              最后由 编辑

              果然是版本兼容性问题

              1 条回复 最后回复 回复 引用 0
              • minemyemailsM
                minemyemails @小鱼
                最后由 编辑

                @小鱼 请问怎么标记为已解决呢?

                小鱼小 1 条回复 最后回复 回复 引用 0
                • 小鱼小
                  小鱼 技术大佬 @minemyemails
                  最后由 编辑

                  @minemyemails 选择一个你认为的答案,然后点右下角的 三个点,里面有标记为已解决

                  新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                  1 条回复 最后回复 回复 引用 0
                  • minemyemailsM
                    minemyemails
                    最后由 编辑

                    总结一下:ros2humble中默认是fastdds2.6.x,该版本的fastdds不能使用2.14版本的发现服务。即为版本兼容问题。

                    另外,ros2jazzy中默认使用fastdds2.14.0,也就是说不同版本的ros2也很有可能是不兼容的

                    1 条回复 最后回复 回复 引用 1
                    • minemyemailsM minemyemails 将这个主题标记为已解决,在
                    • 第一个帖子
                      最后一个帖子
                    皖ICP备16016415号-7
                    Powered by NodeBB | 鱼香ROS