ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Moveit execution fails - invalid joints

asked 2016-07-22 00:56:24 -0500

karthikj219 gravatar image

updated 2016-07-22 07:01:40 -0500

Hey guys,

I'm working on a ROS-Industrial package for the ABB-IRB14000, and recently have run into a new problem. Despite connecting to the robot perfectly fine(I'm using a real robot), and being able to plan trajectories, when I give the command to execute, I get the following error:

[ERROR] [1469166414.255451135]: Joint trajectory action failing on invalid joints
[ERROR] [1469166414.255451135]: Joint trajectory action failing on invalid joints
[ WARN] [1469166414.255676736]: Controller left_arm failed with error code INVALID_JOINTS
[ WARN] [1469166414.255676736]: Controller right_arm failed with error code INVALID_JOINTS

Any ideas what is wrong? I'm using ROS-Indigo, with Ubuntu 14.04, with ABB RobotWare 6.03.


Here is my controllers.yaml file:

  - name: "left_arm"
    action_ns: joint_trajectory_action
    type: FollowJointTrajectory
      - gripper_l_joint
      - yumi_joint_1_l
      - yumi_joint_2_l
      - yumi_joint_3_l
      - yumi_joint_4_l
      - yumi_joint_5_l
      - yumi_joint_6_l
      - yumi_joint_7_l    
  - name: "right_arm"
    action_ns: joint_trajectory_action
    type: FollowJointTrajectory
      - gripper_r_joint
      - yumi_joint_1_r
      - yumi_joint_2_r
      - yumi_joint_3_r
      - yumi_joint_4_r
      - yumi_joint_5_r
      - yumi_joint_6_r
      - yumi_joint_7_r

The only other thing I use for the joints is a joint_names_yumi.yaml file, which is pretty basic:

controller_joint_names: ['gripper_l_joint', 'gripper_r_joint', 'yumi_joint_1_l', 'yumi_joint_1_r', 'yumi_joint_2_l', 'yumi_joint_2_r', 'yumi_joint_3_l', 'yumi_joint_3_r', 'yumi_joint_4_l', 'yumi_joint_4_r', 'yumi_joint_5_l', 'yumi_joint_5_r', 'yumi_joint_6_l', 'yumi_joint_6_r', 'yumi_joint_7_l', 'yumi_joint_7_r', ]

EDIT 2: Pastebin of roslaunch --screen :

edit retag flag offensive close merge delete


Could you include the config/controllers.yaml from the MoveIt configuration? And also anything that configures the joints for the driver you are using (which you don't mention).

gvdhoorn gravatar image gvdhoorn  ( 2016-07-22 02:57:54 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2016-07-27 04:27:14 -0500

karthikj219 gravatar image

I fixed it. Turns out it was a simple mistake, the planning group I was using did not contain two of the joints (the 2 gripper joints). Changing that resolved the issue.

edit flag offensive delete link more


My goals definitely include all the joints required for a trajectory action.

So that comment wasn't entirely correct then ? :)

gvdhoorn gravatar image gvdhoorn  ( 2016-08-13 11:52:44 -0500 )edit

Yeah, my bad. I didn't check it properly.

karthikj219 gravatar image karthikj219  ( 2016-08-18 12:20:53 -0500 )edit

HI! karthikj219! I have the same problem like you,can you teach me how to solve this problem?how to find the problem, this is my question:question

Josephlin gravatar image Josephlin  ( 2016-10-13 09:06:53 -0500 )edit

Apologies for digging this back up so long after the original post, but where were the joints found to be missing from, your controller.yaml file?

Is there a reference list of joints stored anywhere, so that I can check for differences against my culprit file? @karthikj219

nisur gravatar image nisur  ( 2018-07-13 02:46:54 -0500 )edit

answered 2016-07-22 03:48:21 -0500

gvdhoorn gravatar image

updated 2016-07-22 03:49:44 -0500

You still don't mention which driver / package you are using, so I'm guessing a bit here, but:

I'm not entirely sure, but it's possible that your trajectory is failing to execute because it does not include all the joints that you configured the motion interface with. joint_names_yumi.yaml contains all joints, so any instance of the joint_trajectory_action node (I am using ROS-Industrial abb_driver and industrial_robot_client terminology) will assume it is responsible for all those joints. JointTrajectoryAction::goalCB(..) checks incoming goals to make sure they contain the joints it has been configured for, using industrial_utils::isSimilar(..) here, and it will reject goals for which that function returns false.

It's likely that you have either a single instance of joint_trajectory_action, and are sending goals with per-arm trajectories, or have two instances but have set the parameter only once.

edit flag offensive delete link more


Sorry about that, I'm using the abb_driver and industrial_robot_client. When I run my launch file, and generate the list of running topics, I get separate instances of joint_trajectory_action for both arms. I'm unsure what you mean by "set the parameter only once." Can you elaborate please?

karthikj219 gravatar image karthikj219  ( 2016-07-22 04:11:50 -0500 )edit

If the controller_joint_names parameter is present in the global namespace, both instances of joint_trajectory_action will use it. So both instances would then need goals to contain all joints. You could try to namespace your joint_trajectory_action instances, and give them different params.

gvdhoorn gravatar image gvdhoorn  ( 2016-07-22 04:28:49 -0500 )edit

Please also include any files to which you refer in your question and / or comments. It's rather hard to help you without knowing what those files do / contain.

Also: the joint_trajectory_action will probably output some diagnostic info if you run your launch file with roslaunch --screen ...

gvdhoorn gravatar image gvdhoorn  ( 2016-07-22 04:31:29 -0500 )edit

I've put all the files I've used on Github here. The launch file I'm running is execute.launch, and the package name is test1_moveit_config. The urdf and meshes for the robot are in the package testpack.

karthikj219 gravatar image karthikj219  ( 2016-07-22 05:56:46 -0500 )edit

Also, on running roslaunch --screen ... the only additional diagnostic info I get is that the joints have been added to list parameter, and user-specified joint names have been found.

karthikj219 gravatar image karthikj219  ( 2016-07-22 05:58:33 -0500 )edit

Have you tried namespacing the joint_trajectory_action nodes, and then providing them with their own subset of the joints they should accept goals for?

gvdhoorn gravatar image gvdhoorn  ( 2016-07-22 06:03:18 -0500 )edit

The test1_moveit_config item in your repository appears to be a symlink, or at least not something that can be opened?

gvdhoorn gravatar image gvdhoorn  ( 2016-07-22 06:05:06 -0500 )edit

Hey, sorry. Here is the fixed link, they're in 2 separate repositories now.

karthikj219 gravatar image karthikj219  ( 2016-07-22 06:10:47 -0500 )edit

Question Tools



Asked: 2016-07-22 00:56:24 -0500

Seen: 2,198 times

Last updated: Jul 27 '16