Ask Your Question


asked 2019-01-07 13:49:58 -0600

mvish7 gravatar image

updated 2019-01-09 04:52:20 -0600

I'm observing the trajectory planned by Moveit! in Gazebo for PANDA arm. Sometime i get error saying:

Controller panda/panda_arm_controller failed with error code GOAL_TOLERANCE_VIOLATED

Controller handle panda/panda_arm_controller reports status ABORTED

Here is my ros_controllers.yaml file

I'm reading about JointTrajectoryController from here, from this source i also have following question:

What is upper limit of constraints/goal_time and constraints/goal??

I have understood that the error is with ros_control side and moveit being client the error is being reported to it by gazebo + ros_control side.

Any kind of help is appreciated.

edit retag flag offensive close merge delete


Did you find a solution to GOAL_TOLERANCE_VIOLATED ?

Deastan gravatar image Deastan  ( 2019-07-08 07:08:12 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-10-16 00:32:03 -0600

tanyouliang gravatar image

updated 2019-10-16 00:40:06 -0600

The problem arises because, when movegroup is sending out the JointTrajectoryAction/goal msg to a foo arm_controller, the 'tolerance' msg fields are empty, resulting a GOAL_TOLREANCE_VIOLATED.

I also tried to spent some time on solving this issue, after digging into joint_trajectory_controller in ros_controller, i found that the param is being retrieved here: tolerances.h.

To solve this, changes need to be made on the controller.yaml for gazebo controller. For my case, I am using a velocity_controllers here, thus changing stopped_velocity_tolerance from a number to 0 solved this.

  type: velocity_controllers/JointTrajectoryController
     - shoulder_pan_joint
     - shoulder_lift_joint
     - elbow_joint
     - wrist_1_joint
     - wrist_2_joint
     - wrist_3_joint
      goal_time: 0.6
      # vel_tolerance is 0 for due to the movegroup/follow_joint_trajectory/goal tolerance is empty
      stopped_velocity_tolerance: 0
      shoulder_pan_joint: {trajectory: 0.1, goal: 0.1}
      shoulder_lift_joint: {trajectory: 0.1, goal: 0.1}
      elbow_joint: {trajectory: 0.1, goal: 0.1}
      wrist_1_joint: {trajectory: 0.1, goal: 0.1}
      wrist_2_joint: {trajectory: 0.1, goal: 0.1}
      wrist_3_joint: {trajectory: 0.1, goal: 0.1}
      shoulder_pan_joint: {p: 100, d: 1, i: 1, i_clamp: 1}
      shoulder_lift_joint: {p: 100, d: 1, i: 1, i_clamp: 1}
      elbow_joint: {p: 100, d: 1, i: 1, i_clamp: 1}
      wrist_1_joint: {p: 100, d: 1, i: 1, i_clamp: 1}
      wrist_2_joint: {p: 100, d: 1, i: 1, i_clamp: 1}
      wrist_3_joint: {p: 100, d: 1, i: 1, i_clamp: 1}
  stop_trajectory_duration: 0.5
  state_publish_rate:  25
  action_monitor_rate: 10

After this change, i managed to receive SUCCESS. Similarly, If you are using a position_controllers, I believe the goal for each joint need to be changed to 0. Hopefully this works for you.

edit flag offensive delete link more


works for me, thanks!

epsilon11101 gravatar image epsilon11101  ( 2020-02-12 12:04:59 -0600 )edit

I am using a position_controller, I tried changing the goal to 0, however I'm still not able to solve it. Any suggestions?

Shrutheesh R Iyer gravatar image Shrutheesh R Iyer  ( 2020-05-22 01:14:51 -0600 )edit

How does reducing the tolerance help? Shouldn't the tolerance be increased?

thejose gravatar image thejose  ( 2020-06-28 20:42:55 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2019-01-07 13:49:58 -0600

Seen: 806 times

Last updated: Oct 16 '19