Gazebo Answers logo

Dear all, I am new to ROS and Gazebo. I built a 4 wheeled model that I can control via a teleop program. I can also spawn the model with an arm on top of it, which includes a two finger gripper.

If I spawn the robot without the arm, then it would behave realistically (at least to my eyes) -aside from the fact the it seems to move by itself very little, and I confirmed this happens as well to the Husky model from Clearpath- therefore I believe this is normal. However, when I spawn the robot including the arm, and I command the robot to move forward or backwards, it behaves very strange:

image description

 It would seem as if someone is grabbing the arm, so the front or back wheels are lifted when moving to the front or to the back, accordingly. When I stop issuing the command, the vehicle will return slowly to full contact with ground. 

 If I make the mass of the whole arm including gripper, minimal, the behavior disappears, but then another problem occurs: If I try to grab a beer can with the gripper, the fingers would vibrate, shake and the can would almost be thrown away.

There may be something with the modeled physical properties of the wheeled base and/or the arm and the gripper which I cannot seem to fine tune properly.

Any guidance appreciated.

edit: URDF file: robot_issue.urdf.model World file: robot_issue.world

Test: In Translation mode, select the robot, move it up, and drop it. It can be seen how it falls slowly as if it was hold from the arm. If I remove the arm, it falls ok.


Video showing my robot side by side with the husky. I have compared frictions, gravity, and other settings and cannot find what makes them behave different in the same world.

I noticed something strange also, which happens with or without loading the arm. If I lift my robot and drop it , gazebo shows first it going quickly to the ground and then brings it back to the position it was, and then it lets it fall. This does not happen with the Husky.

Any ideas where to look at? Thanks

Originally posted by mape1082 on Gazebo Answers with karma: 11 on 2016-12-19

Post score: 0

Original comments

Comment by nkoenig on 2016-12-20:
Try using the debugging tools that are built into the gazebo GUI (visualize inertia, collisions, and joints for example). Also, read through the tutorials.

Comment by mape1082 on 2016-12-20:
Thanks a lot. I tried that, added simplified model of the robot for your reference. Followed examples (among them, the Husky robot on which they add empty links and also separate links which are intended for inertia declaration), and documentation, yet the behavior continues to be the same. don't find an explanation or how to remove this unwanted behavior.

Comment by hsu on 2016-12-21:
do you have position controllers running on the arm? if a controller is calling Joint::SetPosition or SetVelocity to the arm joints, it will interfer with dynamics.

Comment by mape1082 on 2016-12-21:
Thanks. Yes, I do have position controllers (added the code to the description above). It is difficult to see how a position controller may affect the dynamics of the whole robot. If I have a position controller on a joint and I instruct the elbow to move 0.5 rad , then this should not make the model float in the air. However, will try see what other controllers I could use. Thanks for input.

Comment by TNS on 2017-09-25:
@mape1082 I'm facing the same issue. How did you solve the problem in the end?


1 Answer 1


Gazebo Answers logo

position control breaks laws of dynamics by teleporting parts around. you are seeing the effect of that propagating to the whole model. if you are using ROS control, the is an effort based position controller that I highly recommend. after that, it's all about making sure things are physically realistic as a starting point. that will get you a working albeit not necessarily efficient model. then the next step is to optimize for performance.

Originally posted by hsu with karma: 1873 on 2016-12-21

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by znbrito on 2018-04-06:
@hsu can you check my reply to your question? I also created a post on this link: http://answers.gazebosim.org/question/18873/manipulator-initial-position-altered-after-changing-from-a-position_controllersjointtrajectorycontroller-to-a/


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.