How to set the friction of ballbot, the friction between ball and wheel, and the direction of friction (parameter fdir1)

Issue #2335 new
Bob Wong
created an issue

Recently, we try to control the ball robot, but the model we constructed seems wrong,especially the friction between the ball and wheel. When we try to make the ballbot stand, the wheels seem slipping on the ball, making it hard for us to stable the robot. So we believe that we set the wheel friction parameters in a wrong way, maybe the direction of friction. Then we make the robot stable through changing the stiffness and damping parameter of contact of the ball. But it is still a little bit weird. I really need help for setting the friction parameter of the wheel. Thank you.

Comments (5)

  1. Shane Loretz

    That's a cool looking robot! The fix in pull request #2702 may be related, but it looks like there hasn't been a release yet. Try installing from source and checking if it's still an issue. When it's released, install from to get a more recent version of gazebo 7 than 7.0.

    I notice the <collision> elements are using <mesh> geometry. In general mesh on mesh collisions should be avoided. An easy way to ensure this is to only use <mesh> geometry on <collision> on static objects. Anything else should be approximated with simple shapes.

    The good news for your robot is it looks easy to approximate with simple shapes without compromising on the overall shape. The tall body could be a cylinder shape. The ball on the bottom could be a sphere. The rollers connecting the balls could also be cylinders.

    If this resolves the issue but you have more questions, please raise them on

  2. Bob Wong reporter

    Hi Shane, thank you. I will try to source my gazebo and debug the ODEphysics library. But the mesh gyometry tips you mentioned made me a little bit confused, as gazebo could not add this model into the world when I deleted the mesh tag in collision link.

  3. cesmak

    Hey there thanks a lot for sharing. A modelling of the omni wheels like you did however does not work for me especially when implementing a controller: I just tried to drive in one direction without the ball and the 3omni wheel robot behaves very strange: If I set the mu1 to 0 and the mu2 to 0.2 for instance I can drive in the 90 degree and - 90 degree direction. But not in any other direction. If I set the mu1 to 0.2 and the mu1 to 0 I can drive in the 180 and 0° degree direction and not in any other regardless of what the fdir1 parameter was set. Has anyone successfully implemented a controller for this robot?

  4. Log in to comment