0
$\begingroup$

Gazebo Answers logo

Wheeled models have a tendency to slowly roll when not subject to any other force (i.e. by a plugin driving the wheels). I have noticed this with both a URDF Segway-with-casters model and a URDF quad wheeler. I assume the problem is due to noise when calculating contact between the wheels and the ground.

I just worked-around the problem in a diff-drive plugin (based on the ROS erratic diff-drive plugin) in the same way DRC pins joints: When the wheel velocity is set to zero, I zero the wheel joint velocity then insert a static link between the wheel and the world, then remove it when before setting the wheel joint velocity to non-zero.

However this feels like a nasty kluge. Is there any better way of doing it? I was hoping for a model::Joint::setStatic(bool) method or something, but can't seem to find anything like that.


Originally posted by mjog on Gazebo Answers with karma: 11 on 2013-03-12

Post score: 1


Original comments

Comment by AndreiHaidu on 2013-03-13:
Is your inertia set correctly? If you increase it, the rolling should stop.

Comment by mjog on 2013-03-19:
Yes, it is. To clarify, it is not a problem that the models keep on moving, rather they start rolling of their own accord when stopped.

Comment by nkoenig on 2013-03-19:
What version of Gazebo are you running? And if you zoom in on the wheels, do they appear to jitter?

$\endgroup$

1 Answer 1

0
$\begingroup$

Gazebo Answers logo

Running a controller on the car is the best way to prevent it from moving when stopped.

You could try increasing the number of iterations the quick step solver uses, but this will reduce performance.


Originally posted by nkoenig with karma: 7676 on 2013-07-23

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by raequin on 2018-03-21:
In Gazebo 9 with Kinetic I get the same behavior from a wheeled robot. It has two driven wheels on the center line and four caster wheels at the corners. I modeled the casters as just frictionless fixed wheels. Whether or not there is a controller on the wheels, the robot moves slowly even with no command. The only way for me to make the robot still is to set the friction coefficients for the corner wheels to 1. Then the robot cannot move at all.

$\endgroup$

Your Answer

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