ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Thanks for the videos, I think I understand the issue better now. (It would still be great if you can insert your URDF in the message directly as quoted text in your posting?)

The speed up and slow down you see is an artifact of the fact that the friction forces between the wheels and the ground is dominating the dynamics and also because ODE is solving friction forces using a friction pyramid rather than a friction cone. If you look more closely at each contact point between a wheel and the ground, initially the base resists rotation because the friction force in the direction perpendicular to the wheel alignment has a longer moment arm about the CG of your system then the friction force aligned with the wheel's rolling direction. Because of numerical errors and drift, the base is eventually perturbed from its axis aligned orientation, and once the perturbation is large enough, the artifact of friction pyramid takes over and starts rotating the base until you hit another axis alignment 90 degrees later.

Without digging further into the equations of motion, have you tried using a lower friction coefficient <mu> and see if the effect you described can be reduced?

The fix is by setting the friction pyramid axis in alignment with the wheel frame by setting dContactFdir1 for wheel contacts [(see ODE manual for description)](http://opende.sourceforge.net/wiki/index.php/Manual_(Joint_Types_and_Functions). Gazebo does not have that API right now, but should be able to added it easily.