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

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

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 galactic colcon build
    3
    15
    1.8k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 22356740442
      ”╰+gǒが油メo ╬▍
      最后由 编辑

      123ae3ec-e4cc-4db2-a1d5-8623a489efeb-image.png
      src:
      72103457-5b31-4998-963b-27f0da95c16c-image.png
      cmake:
      1894f86e-8c88-4b52-a1f0-0d79a011559b-image.png

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

        @2235674044 看你用的docker吗?感觉是ros2没装好,建议重新安装

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

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

          @小鱼 docker用的是arm64的 Ubuntu20.04

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

            @2235674044

            @小鱼 在 提问前必看!一定要看!必须看一下! 中说:

            问题一定要描述清楚,终端打印一定复制粘贴,方便回答者检索和引用(你可以在linux系统上打开浏览器进社

            复制粘贴下错误,我检索看看

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

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

              @小鱼 Starting >>> village_wang
              --- stderr: village_wang
              CMake Error at /opt/ros/galactic/share/rmw_implementation_cmake/cmake/get_default_rmw_implementation.cmake:60 (message):
              Could not find ROS middleware implementation 'NOTFOUND'. Choose one of the
              following:
              Call Stack (most recent call first):
              /opt/ros/galactic/share/rmw_implementation/cmake/rmw_implementation-extras.cmake:19 (get_default_rmw_implementation)
              /opt/ros/galactic/share/rmw_implementation/cmake/rmw_implementationConfig.cmake:41 (include)
              /opt/ros/galactic/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
              /opt/ros/galactic/share/rcl/cmake/rclConfig.cmake:41 (include)
              /opt/ros/galactic/share/libstatistics_collector/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
              /opt/ros/galactic/share/libstatistics_collector/cmake/libstatistics_collectorConfig.cmake:41 (include)
              /opt/ros/galactic/share/rclcpp/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
              /opt/ros/galactic/share/rclcpp/cmake/rclcppConfig.cmake:41 (include)
              CMakeLists.txt:10 (find_package)


              Failed <<< village_wang [26.0s, exited with code 1]

              Summary: 0 packages finished [30.8s]
              1 package failed: village_wang
              1 package had stderr output: village_wang

              小鱼小 1 条回复 最后回复 回复 引用 0
              • 小鱼小
                小鱼 技术大佬 @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