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

    第六章运行gazebo_sim.launch.py后报错Loader for controller 'fishbot_diff_drive_controller' (type 'diff_drive_controller/DiffDriveController') not found.

    已定时 已固定 已锁定 已移动 已解决
    ROS2机器人开发:从入门到实践
    第六章; 无法找到控制器 gazebo
    4
    5
    959
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 1
      1322972010
      最后由 编辑

      主要问题在于无法找到fishbot_joint_state_broadcaster和fishbot_diff_drive_controller,不知如何解决,如有回答,甚是感激。

      以下为终端内容:
      [INFO] [launch]: All log files can be found below /home/xhao/.ros/log/2024-10-31-23-12-36-254641-xhao-Legion-17124
      [INFO] [launch]: Default logging verbosity is set to INFO
      [INFO] [robot_state_publisher-1]: process started with pid [17126]
      [INFO] [gzserver-2]: process started with pid [17128]
      [INFO] [gzclient-3]: process started with pid [17130]
      [INFO] [spawn_entity.py-4]: process started with pid [17132]
      [robot_state_publisher-1] [INFO] [1730387556.602858446] [robot_state_publisher]: got segment back_caster_link
      [robot_state_publisher-1] [INFO] [1730387556.602926135] [robot_state_publisher]: got segment base_footprint
      [robot_state_publisher-1] [INFO] [1730387556.602931486] [robot_state_publisher]: got segment base_link
      [robot_state_publisher-1] [INFO] [1730387556.602934582] [robot_state_publisher]: got segment camera_link
      [robot_state_publisher-1] [INFO] [1730387556.602937438] [robot_state_publisher]: got segment camera_optical_link
      [robot_state_publisher-1] [INFO] [1730387556.602940576] [robot_state_publisher]: got segment front_caster_link
      [robot_state_publisher-1] [INFO] [1730387556.602943433] [robot_state_publisher]: got segment imu_link
      [robot_state_publisher-1] [INFO] [1730387556.602946299] [robot_state_publisher]: got segment laser_cylinder_link
      [robot_state_publisher-1] [INFO] [1730387556.602949210] [robot_state_publisher]: got segment laser_link
      [robot_state_publisher-1] [INFO] [1730387556.602951956] [robot_state_publisher]: got segment left_wheel_link
      [robot_state_publisher-1] [INFO] [1730387556.602954803] [robot_state_publisher]: got segment right_wheel_link
      [gzclient-3] Gazebo multi-robot simulator, version 11.10.2
      [gzclient-3] Copyright (C) 2012 Open Source Robotics Foundation.
      [gzclient-3] Released under the Apache 2 License.
      [gzclient-3] http://gazebosim.org
      [gzclient-3]
      [gzserver-2] Gazebo multi-robot simulator, version 11.10.2
      [gzserver-2] Copyright (C) 2012 Open Source Robotics Foundation.
      [gzserver-2] Released under the Apache 2 License.
      [gzserver-2] http://gazebosim.org
      [gzserver-2]
      [spawn_entity.py-4] [INFO] [1730387556.845022973] [spawn_entity]: Spawn Entity started
      [spawn_entity.py-4] [INFO] [1730387556.845224377] [spawn_entity]: Loading entity published on topic /robot_description
      [spawn_entity.py-4] /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/qos.py:307: UserWarning: DurabilityPolicy.RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL is deprecated. Use DurabilityPolicy.TRANSIENT_LOCAL instead.
      [spawn_entity.py-4] warnings.warn(
      [spawn_entity.py-4] [INFO] [1730387556.846304065] [spawn_entity]: Waiting for entity xml on /robot_description
      [spawn_entity.py-4] [INFO] [1730387556.967766727] [spawn_entity]: Waiting for service /spawn_entity, timeout = 30
      [spawn_entity.py-4] [INFO] [1730387556.967969263] [spawn_entity]: Waiting for service /spawn_entity
      [spawn_entity.py-4] [INFO] [1730387557.721087094] [spawn_entity]: Calling service /spawn_entity
      [gzserver-2] [Msg] Waiting for master.
      [gzserver-2] [Msg] Connected to gazebo master @ http://127.0.0.1:11345
      [gzserver-2] [Msg] Publicized address: 192.168.1.5
      [gzserver-2] [Msg] Loading world file [/home/xhao/ros2bookcode/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/world/custom_room.world]
      [gzserver-2] [Wrn] [Event.cc:61] Warning: Deleting a connection right after creation. Make sure to save the ConnectionPtr from a Connect call
      [gzserver-2] [INFO] [1730387558.497030273] [depth_camera]: Publishing camera info to [/camera_sensor/camera_info]
      [gzserver-2] [INFO] [1730387558.497554784] [depth_camera]: Publishing depth camera info to [/camera_sensor/depth/camera_info]
      [gzserver-2] [INFO] [1730387558.497809911] [depth_camera]: Publishing pointcloud to [/camera_sensor/points]
      [spawn_entity.py-4] [INFO] [1730387558.594011724] [spawn_entity]: Spawn status: SpawnEntity: Successfully spawned entity [fishbot]
      [gzclient-3] [Msg] Waiting for master.
      [gzclient-3] [Msg] Connected to gazebo master @ http://127.0.0.1:11345
      [gzclient-3] [Msg] Publicized address: 192.168.1.5
      [gzclient-3] [Wrn] [Event.cc:61] Warning: Deleting a connection right after creation. Make sure to save the ConnectionPtr from a Connect call
      [gzserver-2] [INFO] [1730387558.704649324] [gazebo_ros2_control]: Loading gazebo_ros2_control plugin
      [gzserver-2] [INFO] [1730387558.707038944] [gazebo_ros2_control]: Starting gazebo_ros2_control plugin in namespace: /
      [gzserver-2] [INFO] [1730387558.707062800] [gazebo_ros2_control]: Starting gazebo_ros2_control plugin in ros 2 node: gazebo_ros2_control
      [gzserver-2] [INFO] [1730387558.708770363] [gazebo_ros2_control]: connected to service!! robot_state_publisher
      [gzserver-2] [INFO] [1730387558.709067436] [gazebo_ros2_control]: Received urdf from param server, parsing...
      [gzserver-2] [INFO] [1730387558.709088651] [gazebo_ros2_control]: Loading parameter files /home/xhao/ros2bookcode/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/config/fishbot_ros2_controller.yaml
      [gzserver-2] [INFO] [1730387558.714439127] [gazebo_ros2_control]: Loading joint: left_wheel_joint
      [gzserver-2] [INFO] [1730387558.714455599] [gazebo_ros2_control]: State:
      [gzserver-2] [INFO] [1730387558.714461048] [gazebo_ros2_control]: position
      [gzserver-2] [INFO] [1730387558.714466282] [gazebo_ros2_control]: velocity
      [gzserver-2] [INFO] [1730387558.714470150] [gazebo_ros2_control]: effort
      [gzserver-2] [INFO] [1730387558.714474048] [gazebo_ros2_control]: Command:
      [gzserver-2] [INFO] [1730387558.714490343] [gazebo_ros2_control]: velocity
      [gzserver-2] [INFO] [1730387558.714575817] [gazebo_ros2_control]: effort
      [gzserver-2] [INFO] [1730387558.714583308] [gazebo_ros2_control]: Loading joint: right_wheel_joint
      [gzserver-2] [INFO] [1730387558.714587588] [gazebo_ros2_control]: State:
      [gzserver-2] [INFO] [1730387558.714591222] [gazebo_ros2_control]: position
      [gzserver-2] [INFO] [1730387558.714594945] [gazebo_ros2_control]: velocity
      [gzserver-2] [INFO] [1730387558.714598702] [gazebo_ros2_control]: effort
      [gzserver-2] [INFO] [1730387558.714602282] [gazebo_ros2_control]: Command:
      [gzserver-2] [INFO] [1730387558.714607508] [gazebo_ros2_control]: velocity
      [gzserver-2] [INFO] [1730387558.714648820] [gazebo_ros2_control]: effort
      [gzserver-2] [INFO] [1730387558.714671780] [resource_manager]: Initialize hardware 'FishBotGazeboSystem'
      [gzserver-2] [INFO] [1730387558.714743363] [resource_manager]: Successful initialization of hardware 'FishBotGazeboSystem'
      [gzserver-2] [INFO] [1730387558.714787549] [resource_manager]: 'configure' hardware 'FishBotGazeboSystem'
      [gzserver-2] [INFO] [1730387558.714792590] [resource_manager]: Successful 'configure' of hardware 'FishBotGazeboSystem'
      [gzserver-2] [INFO] [1730387558.714797043] [resource_manager]: 'activate' hardware 'FishBotGazeboSystem'
      [gzserver-2] [INFO] [1730387558.714800357] [resource_manager]: Successful 'activate' of hardware 'FishBotGazeboSystem'
      [gzserver-2] [INFO] [1730387558.714838935] [gazebo_ros2_control]: Loading controller_manager
      [INFO] [spawn_entity.py-4]: process has finished cleanly [pid 17132]
      [INFO] [ros2-5]: process started with pid [17310]
      [gzserver-2] [WARN] [1730387558.723910750] [gazebo_ros2_control]: Desired controller update period (0.01 s) is slower than the gazebo simulation period (0.001 s).
      [gzserver-2] [INFO] [1730387558.724066250] [gazebo_ros2_control]: Loaded gazebo_ros2_control.
      [gzserver-2] [INFO] [1730387559.468539488] [controller_manager]: Loading controller 'fishbot_joint_state_broadcaster'
      [gzserver-2] [ERROR] [1730387559.468593087] [controller_manager]: Loader for controller 'fishbot_joint_state_broadcaster' (type 'joint_state_broadcaster/JointStateBroadcaster') not found.
      [gzserver-2] [INFO] [1730387559.468600879] [controller_manager]: Available classes:
      [gzserver-2] [INFO] [1730387559.468606815] [controller_manager]: controller_manager/test_controller
      [gzserver-2] [INFO] [1730387559.468612175] [controller_manager]: controller_manager/test_controller_failed_init
      [gzserver-2] [INFO] [1730387559.468617666] [controller_manager]: controller_manager/test_controller_with_interfaces
      [gzserver-2] [INFO] [1730387559.468623115] [controller_manager]: controller_manager/test_chainable_controller
      [ros2-5] Error loading controller, check controller_manager logs
      [ERROR] [ros2-5]: process has died [pid 17310, exit code 1, cmd 'ros2 control load_controller --set-state active fishbot_joint_state_broadcaster'].
      [INFO] [ros2-6]: process started with pid [17343]
      [gzserver-2] [INFO] [1730387560.340407609] [controller_manager]: Loading controller 'fishbot_diff_drive_controller'
      [gzserver-2] [ERROR] [1730387560.340449486] [controller_manager]: Loader for controller 'fishbot_diff_drive_controller' (type 'diff_drive_controller/DiffDriveController') not found.
      [gzserver-2] [INFO] [1730387560.340457222] [controller_manager]: Available classes:
      [gzserver-2] [INFO] [1730387560.340462738] [controller_manager]: controller_manager/test_controller
      [gzserver-2] [INFO] [1730387560.340496151] [controller_manager]: controller_manager/test_controller_failed_init
      [gzserver-2] [INFO] [1730387560.340502414] [controller_manager]: controller_manager/test_controller_with_interfaces
      [gzserver-2] [INFO] [1730387560.340507625] [controller_manager]: controller_manager/test_chainable_controller
      [ros2-6] Error loading controller, check controller_manager logs
      [ERROR] [ros2-6]: process has died [pid 17343, exit code 1, cmd 'ros2 control load_controller --set-state active fishbot_diff_drive_controller'].
      [gzclient-3] [Wrn] [Event.cc:61] Warning: Deleting a connection right after creation. Make sure to save the ConnectionPtr from a Connect call
      [INFO] [gzclient-3]: process has finished cleanly [pid 17130]
      [gzclient-3]
      [gzclient-3]

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

        @1322972010 在 第六章运行gazebo_sim.launch.py后报错Loader for controller 'fishbot_diff_drive_controller' (type 'diff_drive_controller/DiffDriveController') not found. 中说:

        'joint_state_broadcaster/JointStateBroadcaster')

        前面的依赖安装环节是不是跳过了

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

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

          从您提供的终端输出信息来看,主要问题是 controller_manager 无法找到名为 fishbot_joint_state_broadcaster 和 fishbot_diff_drive_controller 的控制器。这通常是因为以下几个原因:

          1. 控制器类型未正确安装或配置:

            • 确保您已经安装了所有必要的 ROS 2 控制器包,特别是 joint_state_broadcaster 和 diff_drive_controller。对于 ROS 2,这些通常通过 ROS 2 的包管理系统(例如 ros2 pkg install)或通过源代码编译来安装。
            • 检查您的 ROS 2 工作空间是否已经包含了这些控制器对应的包,并且这些包已经被正确编译和安装。
          2. YAML 配置文件问题:

            • 检查您的 fishbot_ros2_controller.yaml 配置文件,确保里面正确引用了 joint_state_broadcaster/JointStateBroadcaster 和 diff_drive_controller/DiffDriveController。
            • 确保配置文件中没有拼写错误或格式错误。
          3. 环境变量问题:

            • 确保您的 ROS_PACKAGE_PATH 环境变量包含了所有相关的 ROS 2 包路径。
            • 确保在启动 gazebo_sim.launch.py 之前,您的 shell 环境已经 source 了 ROS 2 的安装目录和工作空间的 setup.bash 文件。
          4. 依赖关系问题:

            • diff_drive_controller 可能依赖于其他特定的库或包,例如 robot_state_publisher、sensor_msgs 等。确保这些依赖也都已经正确安装。

          解决步骤

          1. 确认控制器包是否安装:

            • 使用 ros2 pkg list 查看已安装的包列表,确认 joint_state_broadcaster 和 diff_drive_controller(或相关包)是否存在。
          2. 检查 YAML 配置文件:

            • 打开 fishbot_ros2_controller.yaml 文件,检查控制器的类型名称和配置是否正确。
          3. 检查环境变量:

            • 使用 echo $ROS_PACKAGE_PATH 查看 ROS 包路径设置。
            • 确保在启动前运行了 source /path/to/ros2_workspace/install/setup.bash。
          4. 重新编译和安装:

            • 如果以上都确认无误,尝试重新编译您的 ROS 2 工作空间:colcon build,然后重新 source 安装目录。
          5. 重新启动 Gazebo 和 ROS 2 节点:

            • 关闭所有正在运行的 Gazebo 和 ROS 2 节点,然后重新运行 gazebo_sim.launch.py。

          如果问题依然存在,可能需要更详细地检查您的 ROS 2 配置和代码,或者查看是否有更具体的错误信息或日志可以帮助诊断问题。


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

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

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

            @1322972010 在 第六章运行gazebo_sim.launch.py后报错Loader for controller 'fishbot_diff_drive_controller' (type 'diff_drive_controller/DiffDriveController') not found. 中说:

            'joint_state_broadcaster/JointStateBroadcaster')

            前面的依赖安装环节是不是跳过了

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

            1 1 条回复 最后回复 回复 引用 1
            • 1
              1322972010 @小鱼
              最后由 编辑

              @小鱼 谢谢大佬回复,我前面跳过了第四五章,因此可能是漏过了一些依赖的安装。在这之前我找到了可以安装所有控制器以解决这个问题。

              爱 1 条回复 最后回复 回复 引用 0
              • 1 1322972010 将这个主题标记为已解决,在
              • 爱
                爱吃橘子的C @1322972010
                最后由 编辑

                @1322972010 大佬,我也遇到这个问题了,你装的哪个包解决的这个问题?

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