Home | Tutorials | Wiki | Issues
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Friction parameters for differential drive from earlier Gazebo versions do not work with Gazebo6

I just tried using a differential drive robot that worked fine in Gazebo2 with Gazebo6. With some experimentation some time ago I came up with these parameters for Gazebo2, that resulted in satisfactory (if not perfect) performance for moving the vehicle (the model has 4 wheels with those parameters):

 <gazebo reference="wheel_left_link">
    <mu1>1.0</mu1>
    <mu2>1.0</mu2>
    <kp>1000000.0</kp>
    <kd>100.0</kd>
    <minDepth>0.001</minDepth>
    <maxVel>1.0</maxVel>
 </gazebo>

With Gazebo6 the same parameters completely prevent the robot from turning and it seems to react extremely slowly to forward/backward motion commands (it seems to have high inertia and handles like a container freighter essentially).

The only change I had to perform was to change the function for setting max torque in the plugin I use: diffdrive_plugin_multi_wheel.cpp

Some hints for what to look at would be appreciated, as the parameter space with mu1, mu2, kp, kd (one set for model, one set for contact surface) and possibly others is pretty large and trying things out is a huge time sink.

Friction parameters for differential drive from earlier Gazebo versions do not work with Gazebo6

I just tried using a differential drive robot that worked fine in Gazebo2 with Gazebo6. With some experimentation some time ago I came up with these parameters for Gazebo2, that resulted in satisfactory (if not perfect) performance for moving the vehicle (the model has 4 wheels with those parameters):

 <gazebo reference="wheel_left_link">
    <mu1>1.0</mu1>
    <mu2>1.0</mu2>
    <kp>1000000.0</kp>
    <kd>100.0</kd>
    <minDepth>0.001</minDepth>
    <maxVel>1.0</maxVel>
 </gazebo>

With Gazebo6 the same parameters completely prevent the robot from turning and it seems to react extremely slowly to forward/backward motion commands (it seems to have high inertia and handles like a container freighter essentially).

The only change I had to perform was to change the function for setting max torque in the plugin I use: diffdrive_plugin_multi_wheel.cpp

Some hints for what to look at would be appreciated, as the parameter space with mu1, mu2, kp, kd (one set for model, one set for contact surface) and possibly others is pretty large and trying things out is a huge time sink.

/edit: Just confirmed that motion commands still work with Gazebo4 as in Gazebo2.