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

    ros2 galactic:Could not find ROS middleware implementation 'NOTFOUND'.

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 galactic colcon build
    3
    15
    1.8k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬 @2235674044
      最后由 小鱼 编辑

      @2235674044 应该是galactic版本特有问题,请参考

      • https://github.com/RoboStack/ros-galactic/issues/5
      • https://github.com/micro-ROS/micro_ros_platformio/issues/55

      3d63d282-5d5d-4477-847e-d15abe61e5de-image.png

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

      22356740442 1 条回复 最后回复 回复 引用 0
      • 22356740442
        ”╰+gǒが油メo ╬▍ @小鱼
        最后由 2235674044 编辑

        @小鱼 我重新下载了一下ros2发现可以colcon build了但是run的时候出现了新的问题
        root@90cfb8fcddd4:/home/town_ws# ros2 run village_wang wang2_node
        1675329115.510342 [0] wang2_node: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Bad Parameter
        [ERROR] [1675329115.546947863] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error

        [rcutils|error_handling.c:108] rcutils_set_error_state()
        This error state is being overwritten:

        'error not set, at /tmp/binarydeb/ros-galactic-rcl-3.1.4/src/rcl/node.c:261'

        with this new error message:

        'rcl node's rmw handle is invalid, at /tmp/binarydeb/ros-galactic-rcl-3.1.4/src/rcl/node.c:413'

        rcutils_reset_error() should be called after error handling to avoid this.
        <<<
        [ERROR] [1675329115.557758259] [rcl]: Failed to fini publisher for node: 1
        terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
        what(): failed to initialize rcl node: rcl node's rmw handle is invalid, at /tmp/binarydeb/ros-galactic-rcl-3.1.4/src/rcl/node.c:413
        dfea3b28-d70d-4b3d-a784-d3684fcc77ff-image.png

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

          @2235674044 可以看下你怎么建立的docker吗

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

          22356740442 2 条回复 最后回复 回复 引用 0
          • 22356740442
            ”╰+gǒが油メo ╬▍ @小鱼
            最后由 编辑

            @小鱼 docker安装:https://www.runoob.com/docker/ubuntu-docker-install.html 使用里面官方安装脚本自动安装的
            容器创建:
            1.安装qemu
            2.docker run -itd --rm --net=none --platform linux/arm64 ubuntu:20.04 /bin/bash安装ubuntu20.04 arm64版本镜像并创建容器
            3.容器打包成镜像
            4.docker run -itd 打包镜像 /bin/bash

            1 条回复 最后回复 回复 引用 0
            • 22356740442
              ”╰+gǒが油メo ╬▍ @小鱼
              最后由 编辑

              @小鱼 我发现好像没有这个文件
              root@90cfb8fcddd4:/home/town_ws# cd /tmp/binarydeb/ros-galactic-rcl-3.1.4/src/rcl/
              bash: cd: /tmp/binarydeb/ros-galactic-rcl-3.1.4/src/rcl/: No such file or directory
              root@90cfb8fcddd4:/home/town_ws# cd /tmp/
              root@90cfb8fcddd4:/tmp# ls
              root@90cfb8fcddd4:/tmp# cd /
              root@90cfb8fcddd4:/# find | grep ros-galactic-rcl-3.1.4
              root@90cfb8fcddd4:/#
              是不是这个问题,该怎么解决呢

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

                @2235674044 具体我也不是很清楚

                @2235674044 在 ros2 galactic:Could not find ROS middleware implementation 'NOTFOUND'. 中说:

                --net=none

                把这个改成--net=host看看,另外输入下ip a
                检查下本地的localhost是否正常

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

                22356740442 rty813R 2 条回复 最后回复 回复 引用 0
                • 22356740442
                  ”╰+gǒが油メo ╬▍ @小鱼
                  最后由 2235674044 编辑

                  @小鱼 解决了,是qemu模拟环境问题,放到实际环境下就ok了

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

                    @小鱼 实际上这个问题还是没有解决。我们的场景下确实有需求需要在qemu下使用ROS。这种情况下,还是会报错:ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Bad Parameter。但是经过测试发现,仅cyclonedds会出现这种情况,而fastdds则没有问题。完整的报错如下:

                    1700209913.854902 [0]       main: selected interface "lo" is not multicast-capable: disabling multicast
                    1700209913.862237 [0]       main: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Bad Parameter
                    [ERROR] [1700209913.866479306] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error
                    
                    >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
                    This error state is being overwritten:
                    
                      'error not set, at /opt/ros/foxy/src/ros2/rcl/rcl/src/rcl/node.c:276'
                    
                    with this new error message:
                    
                      'rcl node's rmw handle is invalid, at /opt/ros/foxy/src/ros2/rcl/rcl/src/rcl/node.c:428'
                    
                    rcutils_reset_error() should be called after error handling to avoid this.
                    <<<
                    [ERROR] [1700209913.873989803] [rcl]: Failed to fini publisher for node: 1
                    
                    小鱼小 1 条回复 最后回复 回复 引用 0
                    • 小鱼小
                      小鱼 技术大佬 @rty813
                      最后由 编辑

                      @rty813 在 ros2 galactic:Could not find ROS middleware implementation 'NOTFOUND'. 中说:

                      1700209913.854902 [0] main: selected interface "lo" is not multicast-capable: disabling multicast
                      1700209913.862237 [0] main: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Bad Parameter

                      是没有解决,看提示估计因为只有一个 loopback ,且 lo 不支持多播,但关闭多播并没有传递到 ddsi_udp_create_conn 中,导致创建连接时在 lo 上依然启用多播造成失败,可以尝试手动启动 lo 的 多播,指令如下
                      sudo ip link set lo multicast on

                      或者修改 cyclonedds 的代码修复,这个麻烦一些

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

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

                        @小鱼 好像还是qemu的问题。我设置了Multicast on,但是依然报错。
                        eeeec388-2bac-4ec3-94e7-b0a81eab3fc3-image.png
                        52a37585-4269-418e-a8ca-2d79216254d2-image.png
                        我是在x86上运行的armv7的镜像,就会出现这种问题。如果运行的是x86镜像,就正常的。

                        1 条回复 最后回复 回复 引用 0
                        • 第一个帖子
                          最后一个帖子
                        皖ICP备16016415号-7
                        Powered by NodeBB | 鱼香ROS