Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Prismatic Joint does not stay in position, unable to control it.

Hello. I am trying to simulate a robotic arm with a gripper attached to it. The gripper is a parallel jaw with two prismatic joints for each finger. I am referring to this repository, however I have made a few changes. For the gripper, I do not want to use moveit! and hence I have written an JointEffortController for the gripper. (If anyone is interested, the gripper description is inside motoman_robot/motoman_description/urdf/tool/ folder in the repository.)


Here is the setup . As you can see, the gripper fingers are close together. However, when I move the arm (Not the gripper fingers to a different location, the prismatic joint seems to move as well). The palm of the gripper is attached to a link on the arm, that can make it rotate about its axis. Hence, the palm rotation is controlled by the arm, and not by the gripper.


As is visible, the prismatic joints have been largely displaced from what should be their initial position. What can I do to correct this, and make them stay in place.

Here are all the things that I have tried.

  1. The effort limit here by default is 2. When I queried the joint_states when the robot is in the second image state, the effort values for the gripper fingers are at max limit. (2.0 and -2.0). When I increase the effort limit to 20, I can see that the joint state values become something like (13 and -14). Yet, when I give a command to the controller to put an effort of 20 or -20, the joints do not move at all.
  2. Increased the friction of the gripper finger joint from 1.0 to 5.0. When I do this, the fingers seem to stay in position, however, any amount of effort does not make the fingers move at all, hence the gripper fingers become useless. Along with increasing the friction, if I increase the effort limit from 2 to a larger value, in order to control the prismatic joint with larger effort, the fingers again seem to slip back to the 2nd image shown here.
  3. The default PID values given by the repository were {p: 2000.0, d: 1.0}. I have tried playing around with this as well, giving different p, i, and d values, however, the joints again seem to go to the position in the second image.

Is there any way to solve this issue?