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

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

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

      f8dde6df-9844-4deb-b9b1-71a00960d4b0-image.png

      版本:ros1
      系统 :ubuntu18.04
      类型:自建4自由度机械臂模型

      **错误:不能找到相应的关节,可以打开gazebo, 和Rviz, 也能在Rviz 里面拖动,但是拖动的时候gazebo里面没有相应的动作。
      报错:
      [ERROR] [1669167751.277877941, 37.752000000]: Unable to identify any set of controllers that can actuate the specified joints: [ joint_1 joint_2 joint_3 joint_4 ]
      [ERROR] [1669167751.277897873, 37.752000000]: Known controllers and their joints:

      [ERROR] [1669167751.277925647, 37.752000000]: Apparently trajectory initialization failed

      另外,自己使用古月居的robot_anno配置成功过,现在换成自己DIY的机械臂导成URDF过后经过moveit配置以及修改确动不起来,还请大佬帮忙解决疑惑,感激不尽。

      下面放出moveit_config和gazebo的主要配置文件

      1. src/robot_gazebo/config/robot_trajectory_control.yaml
        9a0c0fa1-d7ef-4833-a23c-eb60fa867ac7-image.png

      2. src/robot_gazebo/config/robot_gazebo_joint_states.yaml
        1a76db07-67f0-4227-8a18-7a6b22fd2d62-image.png

      3.src/robot_gazebo/launch/robot_trajectory_control.launch
      2797a757-0885-4266-977f-53dbcd317ce7-image.png

      1. src/robot_gazebo/launch/robot_gazebo_states.launch
        6a5c7b79-2db5-495d-b309-1317e7e628a6-image.png

      2. src/my_robot_moveit_config/config/controllers_gazebo.yaml
        a3b43dda-2ac6-4b9d-ba97-2b004a58b0cd-image.png

      3. src/my_robot_moveit_config/launch/my_robot_moveit_controller_manager.launch.xml
        840c2b8e-2775-4772-8665-56c4ae2f5b1f-image.png

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