moveit reports SUCCESS before trajectory is completed in gazebo when using effort_controllers/JointTrajectoryController

asked 2020-11-15 04:58:20 -0500

xibeisiber gravatar image

updated 2020-11-15 05:09:36 -0500

Hi all,

I'm trying to use effort_controller/JointTrajectoryController to perform the pick_place task, but I find that moveit! seems to report SUCCESS before one planned trajectory is completed in gazebo, in which case my program will then send next planned trajectory to gazebo, thus two trajectories are often mixed, leading to the error start state deviate from the current state.

In another test, if I only send one trajectory, moveit will report success but the final joint values are different than the goal joint values, although I have set the GoalJointTolerance to a rather small number.

Is that because the PID parameter is not good (P is too small)?

There is no such problem when I use position_controller/JointTrajectoryController. But I don't understand how position_controller (PositionJointInterface) works, it seems it doesn't use the PID parameter?

Thanks for any help!

edit retag flag offensive close merge delete

Comments

I'm not familiar with Gazebo's effort_controller, but if MoveIt reports success, it's because that controller reported that the trajectory is executed. I would start to investigate there.

fvd gravatar image fvd  ( 2020-11-15 05:36:41 -0500 )edit

Thanks! I will post this to gazebo Q&A.

xibeisiber gravatar image xibeisiber  ( 2020-11-15 07:37:49 -0500 )edit