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

Hi,

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.

Edit:

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

Comments

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 answers.gazebosim.org.

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