admin管理员组文章数量:1654380
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 背景
- 一、解决办法
- 二、总结
背景
具体的报错如下:
[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文件粘贴到对应的路径下
本文标签: setidentifyunablejointsactuate
版权声明:本文标题:Unable to identify any set of controllers that can actuate the specified joints: 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729648710a1208779.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论