MoveIt Robotarm not staying in position

asked 2020-04-01 17:50:05 -0600

KeesDeKabouter gravatar image

updated 2020-04-02 07:40:51 -0600


I've got an abb IRB120 robotarm from the ABB experimental package in gazebo too which I attached a schunk gripper which I made myself. I recreated the MoveIt package changing the endeffector to the gripper. Using this gripper I am picking up an object with a mass of 1 kilograms.

My problem:

When I pickup the item and move the robotarm it moves just fine, however when I move it to a place it does not stay in that place but it slowly moves down. I suspect that the effort performed on the joints of the robotarm are based on the mass of the robot without the mass of the object. I can ofcourse keep sending the robot to the same position to compensate, I however prefer it to be fixed by applying enough effort on the joints to keep the endeffector in the same place.

At this point I am lost where I have to start to compensate for the extra weight of the object which is picked up.


Note that:

  • The robotarm does stay in place with neither the gripper nor object attached.
  • The robotarm does stay in place with only the gripper attached.
  • Since I made the gripper myself: The gripper "head" has a total weight of 250 grams
edit retag flag offensive close merge delete


You don't mention it anywhere in your question text, but seeing as you have tagged this with gazebo, I guess you are not talking about a real robot, but about an IRB 120 in Gazebo. Correct?

gvdhoorn gravatar image gvdhoorn  ( 2020-04-02 05:19:50 -0600 )edit

@gvdhoorn this is indeed correct we are talking about an IRB 120 in gazebo. I actually mentioned it before but somehow while restructuring the question I accidentally removed it.

KeesDeKabouter gravatar image KeesDeKabouter  ( 2020-04-02 07:33:27 -0600 )edit

Have you changed anything? Because the abb_irb120_gazebo package uses PositionJointInterface for the hardwareInterfaces. There are no forces there, not even inside Gazebo (or at least, not at a level where it matters).

PositionJointInterface overrides the state of the joint in Gazebo with the position setpoint almost directly.

I could come up with two possible explanations:

gvdhoorn gravatar image gvdhoorn  ( 2020-04-02 07:40:12 -0600 )edit

@gvdhoorn As far as I know I haven't changed anything. Joint 1 till 6 are stil using the PositionJointInterface like they are in the original repository. The only place I use an EffortJointInterface is for the fingers of the gripper which shouldn't have an effect on the IRB 120.


I furthermore just found a temporary "solution", when increasing the weight of the gripper to an absurd value, let's say 10000+ kilograms the movement changes from 1-2 centimeters to tenths of milimeters per second. As time passes the movements becomes larger and larger but is stable enough the first minute .


My prediction is that due to the fact that the object is now such a small part of the "total weight" the effect becomes smaller.

KeesDeKabouter gravatar image KeesDeKabouter  ( 2020-04-02 08:01:38 -0600 )edit

This sounds like a Gazebo/modelling issue. I'd recommend asking this on

gvdhoorn gravatar image gvdhoorn  ( 2020-04-02 08:04:26 -0600 )edit