Pick_and_place.py doesn't work properly

I launched “pick_and_place.launch” file and I am repeatedly getting this message on a terminal.

Where could it be wrong?

I think my robot doesn’t have controllers for the gripper, but I am not sure where to edit.

Any help would be really appreciated!

I finally managed to fix this issue.

It turned out this one was caused by absence of gripper controller in “ros_controllers.yaml” in “config” directory in “fetch_moveit_config” package.

I couldn’t find out a way to add controllers for gripper that has “GripperCommand” type, so I manually changed the context in “ros_controllers.yaml”
e.g.)


After the change, I was also encountering another issue with gripper’s behavior that width of its fingers became too narrow right before it attempted to grasp the detected object(i.e., a cube)
Therefore, I had to investigate and change the code in order to prevent this behavior.

I modified a line of code in “shape_grasp_planner.cpp” in “simple_grasping” package.
e.g.
image

Then, the issue had been resolved and the Fetch robot successfully performed the pick and place task.

Hope it will help someone will meet the same issues as I did.

2 Likes

Good job! Hope the maintainer could fix this problem in the main tutorial content, would save a lot of time.

Just listed what tjdkadn added in the ros_controller.yaml:

  - name: gripper_controller
    action_ns: gripper_action 
    type: GripperCommand 
    default: True 
    joints: 
      - l_gripper_finger_joint 
      - r_gripper_finger_joint

How to check the relative info? By searching the rostopic like the following:

image

FInally, with regards to the width of the gripper, remember to add the " ; " at the line end, and then build it with catkin_make since it is a cpp instead of python.

Hello @tjdtkadn and @yijionglin.bourne,

I’ll review all this and update the notebooks accordingly. Thanks for the feedback and patience!

1 Like