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

    ros2 control 无法连接controller_manager服务

    已定时 已固定 已锁定 已移动
    ROS2机器人开发:从入门到实践
    ros2 control controller
    3
    4
    1.1k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • R
      ronghuan
      最后由 编辑

      根据书里介绍的已经安装了:
      sudo apt install ros-$ROS_DISTRO-ros2-control
      sudo apt install ros-$ROS_DISTRO-ros2-controllers
      ros2 daemon也已经启动了:
      hou@N-20S1PF2R5YYB:~/ros/bbot_demo$ ros2 daemon start
      The daemon has been started
      但是执行ros2 control list_controller_types 时还是无法连接服务器:
      [INFO] [1729762770.186555686] [_ros2cli_169287]: waiting for service /controller_manager/list_controller_types to become available...
      [WARN] [1729762780.205414612] [_ros2cli_169287]: Could not contact service /controller_manager/list_controller_types

      我是还缺少什么步骤吗?各位大佬帮忙看看,谢谢,对了系统是win11 WSL(Ubuntu 22.04.1 LTS)

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

        您遇到的问题可能是由于几个不同的原因导致的,特别是在使用Windows 11的WSL(Windows Subsystem for Linux)环境中。以下是一些可能的解决步骤和检查点:

        1. 确认ROS 2环境设置:
          确保您的ROS 2环境变量(如ROS_DISTRO和ROS_VERSION)已正确设置。您可以通过运行echo $ROS_DISTRO来检查当前ROS 2发行版。

        2. 检查ros2_control的依赖和服务:

          • 确保ros2_control和相关的控制器包都已正确安装。
          • 检查是否有任何ros2_control相关的服务正在运行。您可以使用ros2 service list来查看所有可用的服务,并确认/controller_manager相关的服务是否已列出。
        3. 检查网络问题:

          • 在WSL中,有时网络配置可能导致服务发现问题。确保WSL的网络设置允许ROS 2节点之间的通信。
          • 检查防火墙设置,确保没有阻止ROS 2使用的端口(默认是11311和更高端口)。
        4. 查看ROS 2守护进程(daemon)的日志:

          • 使用ros2 daemon status来检查守护进程的状态。
          • 查看守护进程的日志文件,以获取更多关于为何无法连接到服务的线索。日志文件的位置可能因安装而异,但通常可以在~/.ros/log/目录下找到。
        5. 重新启动ROS 2守护进程:

          • 有时重新启动守护进程可以解决连接问题。您可以使用ros2 daemon stop停止它,然后使用ros2 daemon start重新启动。
        6. 检查节点是否已启动:

          • 确保所有必要的节点(如controller_manager)都已启动。您可以使用ros2 node list来查看当前运行的节点。
          • 如果controller_manager没有运行,您可能需要查看您的启动脚本或配置文件,确保它已正确配置并启动。
        7. WSL特定问题:

          • 在WSL中,文件系统和网络可能与原生Linux环境有所不同。确保您的ROS 2工作区位于WSL的Linux文件系统上,而不是挂载的Windows文件系统上。
          • 某些WSL版本或配置可能不支持某些ROS 2功能。考虑更新WSL到最新版本,或查看是否有已知的与ROS 2兼容性问题。
        8. 调试和日志:

          • 增加ROS 2的日志级别以获取更多信息。您可以在运行ROS 2命令时添加--log-level debug来获取更详细的输出。

        如果以上步骤都不能解决问题,您可能需要更详细地查看ROS 2的文档,或在ROS 2的社区论坛和GitHub问题跟踪器中搜索类似的问题。


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

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

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

          @ronghuan 这个可以跳过,书上描述顺序有点问题

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

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

            @小鱼 好,谢谢老大指点

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