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

    Unable to identify any set of controllers that can actuate the specified joints:

    已定时 已固定 已锁定 已移动
    机械臂运动规划
    diy机械臂 moveit配置
    4
    11
    1.3k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬 @1769564038
      最后由 编辑

      @1769564038
      1.第一张图片是启动什么指令报的错
      2.你的目的是让自己配置的机械臂点击exevute的时候在rviz中动起来是吗?如果是其实这个通过的是fake_controller进行的
      3.提供一下rqt_grapher、rostopic list 、rostopic echo /joint_states 的结果和你的机械臂的urdf文件,你的错误应该是某一个类型对不上造成的,需要进一步检查

      另外请尽量复制粘贴代码,我这边好方便引用和检索。

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

      一个好的提问不仅能够帮助自己理清楚问题,还有助于别人快速帮助到你。——提问的智慧

      问题一定要描述清楚,终端打印一定复制粘贴(你可以在linux系统上打开浏览器进社区)
      基本的Markdown语法一定要学习下,有的小伙伴图片代码一团糟
      提问时一定要提供尽可能多的信息(系统版本,ROS版本,前后操作,终端日志),包括你的目的,比如你其实想装装某个库遇到问题,不要只说这个问题,因为可能有更好的替代方案
      先搜索再提问,很多问题其实都有解决方案,确保你自己对自己的问题有一定了解再提问
      尽量一句话说完,不要把社区当微信聊天一样用,每一个回复都尽量提供更多的的信息。

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

      17695640381 1 条回复 最后回复 回复 引用 0
      • 17695640381
        布鲁斯杰 @小鱼
        最后由 编辑

        @小鱼

        1. roslaunch robot_gazebo robot_bringup_moveit.launch
          这是我启动的指令,然后在rviz里面点击execute的时候报的错误如下错误
        [ERROR] [1669182292.117079150, 31.722000000]: Unable to identify any set of controllers that can actuate the specified joints: [ joint_1 joint_2 joint_3 joint_4 ]
        [ERROR] [1669182292.117153787, 31.722000000]: Known controllers and their joints:
        
        [ERROR] [1669182292.117213348, 31.722000000]: Apparently trajectory initialization failed
        
        1. 我是想在gazebo里面动起来,通过rvize界面发送指令让仿真机械臂动起来。

        ## rostopic list

        (base) huangjie@huangjie-Legion-Y7000P-IAH7:~$ rostopic list
        /attached_collision_object
        /clock
        /collision_object
        /execute_trajectory/cancel
        /execute_trajectory/feedback
        /execute_trajectory/goal
        /execute_trajectory/result
        /execute_trajectory/status
        /gazebo/link_states
        /gazebo/model_states
        /gazebo/parameter_descriptions
        /gazebo/parameter_updates
        /gazebo/set_link_state
        /gazebo/set_model_state
        /joint_states
        /move_group/cancel
        /move_group/display_contacts
        /move_group/display_planned_path
        /move_group/feedback
        /move_group/goal
        /move_group/monitored_planning_scene
        /move_group/ompl/parameter_descriptions
        /move_group/ompl/parameter_updates
        /move_group/plan_execution/parameter_descriptions
        /move_group/plan_execution/parameter_updates
        /move_group/planning_scene_monitor/parameter_descriptions
        /move_group/planning_scene_monitor/parameter_updates
        /move_group/result
        /move_group/sense_for_plan/parameter_descriptions
        /move_group/sense_for_plan/parameter_updates
        /move_group/status
        /move_group/trajectory_execution/parameter_descriptions
        /move_group/trajectory_execution/parameter_updates
        /my_robot/joint_states
        /pickup/cancel
        /pickup/feedback
        /pickup/goal
        /pickup/result
        /pickup/status
        /place/cancel
        /place/feedback
        /place/goal
        /place/result
        /place/status
        /planning_scene
        /planning_scene_world
        /probot_anno/joint_states
        /recognized_object_array
        /rosout
        /rosout_agg
        /rviz_huangjie_Legion_Y7000P_IAH7_6963_1349828747475093352/motionplanning_planning_scene_monitor/parameter_descriptions
        /rviz_huangjie_Legion_Y7000P_IAH7_6963_1349828747475093352/motionplanning_planning_scene_monitor/parameter_updates
        /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
        /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update
        /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full
        /tf
        /tf_static
        /trajectory_execution_event
        
        

        ## rostopic echo /joint_states

        (base) huangjie@huangjie-Legion-Y7000P-IAH7:~$ rostopic echo /joint_states
        header: 
          seq: 3954
          stamp: 
            secs: 395
            nsecs: 401000000
          frame_id: ''
        name: [joint_1, joint_2, joint_3, joint_4]
        position: [0.0, 0.0, 0.0, 0.0]
        velocity: []
        effort: []
        ---
        header: 
          seq: 3955
          stamp: 
            secs: 395
            nsecs: 500000000
          frame_id: ''
        name: [joint_1, joint_2, joint_3, joint_4]
        position: [0.0, 0.0, 0.0, 0.0]
        velocity: []
        effort: []
        ---
        header: 
          seq: 3956
          stamp: 
            secs: 395
            nsecs: 600000000
          frame_id: ''
        name: [joint_1, joint_2, joint_3, joint_4]
        position: [0.0, 0.0, 0.0, 0.0]
        velocity: []
        effort: []
        
        
        小鱼小 1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @1769564038
          最后由 编辑

          @1769564038 在 Unable to identify any set of controllers that can actuate the specified joints: 中说:
          贴一下你的robot_bringup_moveit.launch内容,另外如果是控制gazebo的机械臂需要gazebo来提供joint_states和actionserver,所以你要提供下rqt_graph,确定下gazebo是否正常再检查moveit这边

          rqt_graph别忘记了

          @小鱼 在 Unable to identify any set of controllers that can actuate the specified joints: 中说:

          3.提供一下rqt_grapher

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

          17695640381 2 条回复 最后回复 回复 引用 0
          • 17695640381
            布鲁斯杰 @小鱼
            最后由 编辑

            @小鱼
            不好意思鱼哥,等久了,我终于把我的grapher调出来了。
            rqt_grapher

            41c3c120-02e1-4e7d-b16a-1a12918fc780-image.png

            tf_tree
            a2749324-0832-469a-b639-9716185637a5-image.png

            1 条回复 最后回复 回复 引用 0
            • 17695640381
              布鲁斯杰 @小鱼
              最后由 编辑

              @小鱼

              1. 这是我robot_bringup_moveit.launch 的内容

              <launch>
              
                  <!-- 1. Launch Gazebo -->
                  <include file="$(find robot_gazebo)/launch/my_robot_gazebo_xacro.launch" />
              
                  <!-- 2. ros_control arm launch -->
                  <include file="$(find robot_gazebo)/launch/robot_gazebo_states.launch" />
              
                  <!-- 3. ros_control trajectory -->
                  <include file="$(find robot_gazebo)/launch/robot_trajectory_control.launch" />
              
                  <!-- 4. moveit launch -->
                  <include file="$(find my_robot_moveit_config)/launch/moveit_planning_execution.launch" />
              
              </launch>
              

              2.这是src/robot_gazebo/launch/robot_gazebo_states.launch

              <launch>
                  <!-- 将关节控制器的配置参数加载到参数服务器中 -->
                  <rosparam file="$(find robot_gazebo)/config/robot_gazebo_joint_states.yaml" command="load"/>
              
                  <node name="joint_controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
                        output="screen" ns="/my_robot" args="joint_state_controller" />
              
                  <!-- 运行robot_state_publisher节点,发布tf  -->
                  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"
                      respawn="false" output="screen">
                      <remap from="/joint_states" to="/my_robot/joint_states" />
                  </node>
              
                  <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
                  <!-- <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> -->
                  
                  <!-- 运行robot_state_publisher节点,发布tf   -->
                  <!-- <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /> -->
              
              </launch>
              
              

              3. src/robot_gazebo/launch/robot_trajectory_control.launch

              <launch>
              
                  <rosparam file="$(find robot_gazebo)/config/robot_trajectory_control.yaml" command="load"/>
              
                  <node name="arm_controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
                        output="screen" ns="/my_robot" args="arm_joint_controller"/>
              
              </launch>
              

              4. src/robot_gazebo/config/robot_gazebo_joint_states.yaml

              my_robot:
                # Publish all joint states -----------------------------------
                joint_state_controller:
                  type: joint_state_controller/JointStateController
                  publish_rate: 50  
                
              

              5.src/robot_gazebo/config/robot_trajectory_control.yaml

              my_robot:
                arm_joint_controller:
                  type: "position_controllers/JointTrajectoryController"
                  joints:
                    - joint_1
                    - joint_2
                    - joint_3
                    - joint_4
              
                  gains:
                    joint_1:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                    joint_2:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                    joint_3:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                    joint_4:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
              
              
              17695640381 1 条回复 最后回复 回复 引用 0
              • 17695640381
                布鲁斯杰 @1769564038
                最后由 编辑

                @1769564038 在 Unable to identify any set of controllers that can actuate the specified joints: 中说:

                @小鱼

                1. 这是我robot_bringup_moveit.launch 的内容

                <launch>
                
                    <!-- 1. Launch Gazebo -->
                    <include file="$(find robot_gazebo)/launch/my_robot_gazebo_xacro.launch" />
                
                    <!-- 2. ros_control arm launch -->
                    <include file="$(find robot_gazebo)/launch/robot_gazebo_states.launch" />
                
                    <!-- 3. ros_control trajectory -->
                    <include file="$(find robot_gazebo)/launch/robot_trajectory_control.launch" />
                
                    <!-- 4. moveit launch -->
                    <include file="$(find my_robot_moveit_config)/launch/moveit_planning_execution.launch" />
                
                </launch>
                

                2.这是src/robot_gazebo/launch/robot_gazebo_states.launch

                <launch>
                    <!-- 将关节控制器的配置参数加载到参数服务器中 -->
                    <rosparam file="$(find robot_gazebo)/config/robot_gazebo_joint_states.yaml" command="load"/>
                
                    <node name="joint_controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
                          output="screen" ns="/my_robot" args="joint_state_controller" />
                
                    <!-- 运行robot_state_publisher节点,发布tf  -->
                    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"
                        respawn="false" output="screen">
                        <remap from="/joint_states" to="/my_robot/joint_states" />
                    </node>
                
                    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
                    <!-- <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> -->
                    
                    <!-- 运行robot_state_publisher节点,发布tf   -->
                    <!-- <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /> -->
                
                </launch>
                
                

                3. src/robot_gazebo/launch/robot_trajectory_control.launch

                <launch>
                
                    <rosparam file="$(find robot_gazebo)/config/robot_trajectory_control.yaml" command="load"/>
                
                    <node name="arm_controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
                          output="screen" ns="/my_robot" args="arm_joint_controller"/>
                
                </launch>
                

                4. src/robot_gazebo/config/robot_gazebo_joint_states.yaml

                my_robot:
                  # Publish all joint states -----------------------------------
                  joint_state_controller:
                    type: joint_state_controller/JointStateController
                    publish_rate: 50  
                  
                

                5.src/robot_gazebo/config/robot_trajectory_control.yaml

                my_robot:
                  arm_joint_controller:
                    type: "position_controllers/JointTrajectoryController"
                    joints:
                      - joint_1
                      - joint_2
                      - joint_3
                      - joint_4
                
                    gains:
                      joint_1:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                      joint_2:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                      joint_3:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                      joint_4:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}
                
                

                6. src/my_robot_moveit_config/config/controllers_gazebo.yaml

                controller_manager_ns: controller_manager
                controller_list:
                  - name: my_robot/arm_joint_controller
                    action_ns: follow_joint_trajectory
                    type: FollowJointTrajectory
                    default: true
                    joints:
                      - joint_1
                      - joint_2
                      - joint_3
                      - joint_4
                

                7. src/my_robot_moveit_config/launch/my_robot_moveit_controller_manager.launch.xml

                <launch>
                  <!-- Define the controller manager plugin to use for trajectory execution -->
                  <!-- <param name="moveit_controller_manager" value="moveit_simple_controller_manager/MoveItSimpleControllerManager" /> -->
                  <arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager"/>
                
                  <param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>
                
                  <!-- loads controller list to the param server -->
                  <rosparam file="$(find my_robot_moveit_config)/config/controllers_gazebo.yaml"/>
                
                
                </launch>
                
                1 条回复 最后回复 回复 引用 0
                • 17695640381
                  布鲁斯杰
                  最后由 编辑

                  问题已解决,主要问题是gazebo里面没有添加gazebo标签。

                  小鱼小 24038496382 22865971892 3 条回复 最后回复 回复 引用 0
                  • 小鱼小
                    小鱼 技术大佬 @1769564038
                    最后由 编辑

                    @1769564038 棒,这种复杂的问题,可以就是一块块的检查,你的gazebo这边的rqt_graph看起来就是不正常的,啥都没提供。

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

                    1 条回复 最后回复 回复 引用 0
                    • 24038496382
                      扶苏 @1769564038
                      最后由 编辑

                      @1769564038 您好,请问哪个文件里没有添加gazebo标签,能具体说一下吗

                      1 条回复 最后回复 回复 引用 0
                      • 22865971892
                        ㅤ @1769564038
                        最后由 编辑

                        @1769564038 大佬,我也遇到了和你相同的问题,可以具体说一下解决方法吗,感激不尽。

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