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

编程入门 行业动态 更新时间:2024-10-18 01:42:17

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 背景
  • 一、解决办法
  • 二、总结


背景

具体的报错如下:
[ERROR] [1649324583.023988413]: Unable to identify any set of controllers that can actuate the specified joints: [ elbow_joint shoulder_lift_joint shoulder_pan_joint wrist_1_joint wrist_2_joint wrist_3_joint ]
[ERROR] [1649324583.024022449]: Known controllers and their joints:

[ERROR] [1649324583.024088233]: Apparently trajectory initialization failed

[ERROR] [1649324583.023988413]: Unable to identify any set of controllers that can actuate the specified joints: [ elbow_joint shoulder_lift_joint shoulder_pan_joint wrist_1_joint wrist_2_joint wrist_3_joint ]
[ERROR] [1649324583.024022449]: Known controllers and their joints:

[ERROR] [1649324583.024088233]: Apparently trajectory initialization failed


``

一、解决办法

这个链接的方法是修改marm_moveit_config/launch/arm_moveit_controller_manager.launch文件.对照我自己的,就是修改ur5_moveit_controller_manager.launch.xml文件,将原来的<rosparam file="$(find ur5_moveit_config_)/config/ros_controllers.yaml"/>注释掉,替换成<rosparam file="$(find ur5_moveit_config_)/config/controllers.yaml"/>

修改以后的结果为:

<launch>

  <!-- loads moveit_controller_manager on the parameter server which is taken as argument 
    if no argument is passed, moveit_simple_controller_manager will be set -->
  <arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
  <param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>

  <!-- loads ros_controllers to the param server -->
  <!--rosparam file="$(find ur5_moveit_config_)/config/ros_controllers.yaml"/-->
  <rosparam file="$(find ur5_moveit_config_)/config/controllers.yaml"/>
  
</launch>

但打开ur5_moveit_config_/config/这个路径,并没有controllers.yaml这个文件,有的是ros_controllers.yaml这个文件,ros_controllers.yaml是通过ur5_moveit_setupassistant生成的.里面的文件内容如下:

ros_controllers.yaml

# Simulation settings for using moveit_sim_controllers
moveit_sim_hw_interface:
  joint_model_group: manipulator
  joint_model_group_pose: home
# Settings for ros_control_boilerplate control loop
generic_hw_control_loop:
  loop_hz: 300
  cycle_time_error_threshold: 0.01
# Settings for ros_control hardware interface
hardware_interface:
  joints:
    - shoulder_pan_joint
    - shoulder_lift_joint
    - elbow_joint
    - wrist_1_joint
    - wrist_2_joint
    - wrist_3_joint
  sim_control_mode: 1  # 0: position, 1: velocity
# Publish all joint states
# Creates the /joint_states topic necessary in ROS
joint_state_controller:
  type: joint_state_controller/JointStateController
  publish_rate: 50
controller_list:
  []

注意到这里的controller_list:是空的,而我电脑上之前另一个正常运行的ur5_moveit_config包,内容如下:
controllers.yaml:

controller_list:
  - name: ""
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    joints:
      - shoulder_pan_joint
      - shoulder_lift_joint
      - elbow_joint
      - wrist_1_joint
      - wrist_2_joint
      - wrist_3_joint

注意到这里面的controller_list是有内容的,因此把这个controllers.yaml复制粘贴在/home/neousys/wqw/pick_place/src/universal_robot/ur5_moveit_config_/config这个路径下即可,不再发生这个报错,机械臂正常运行

二、总结

总共两步,第一步修改ur5_moveit_controller_manager.launch.xml,将将原来的<rosparam file="$(find ur5_moveit_config_)/config/ros_controllers.yaml"/>注释掉,替换成<rosparam file="$(find ur5_moveit_config_)/config/controllers.yaml"/>

第二步,到别的地方复制OK的controllers.yaml文件粘贴到对应的路径下

更多推荐

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

本文发布于:2023-06-14 05:07:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1440941.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:set   identify   Unable   joints   actuate

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!