Odd robot/joint behaviour on high simulation speed

asked 2016-02-29 07:47:42 -0600

shantia gravatar image

updated 2016-02-29 08:56:28 -0600

Dear All,

On an earlier question, Speeding Up Gazebo Physics Simulation, I found out how to increase the simulation speed significantly by using the latest gazebo and increasing max_step_size.

Now, I want to discuss an odd behavior which I observed on all the robot models in gazebo, including Pioneer 3DX, Pioneer AT, PR2, Youbot, and iRobot which is observable when the speed of the simulator is increased.

My observation:

  1. With the default max_step_size value(0.001), when the speed of the simulator is increased (by setting the real_time_update_rate to zero) all the above robots start moving around without any given value to the command velocity topic.
  2. If I increase the max_step_size to (0.05), these movements become very very big (10 meters radius), and some robots will just cease to work.
  • Notes: I have read similar other topics regarding this issue, but none of them were conclusive.

My questions are:

  1. Why this happens?
  2. Does this mean that my velocity commands will be affected by this problem?
  3. Is there a way for me to find out whether the question number two happens? It is quite impossible for me to see anything by eye when the simulator is running at 500x normal speed.
  4. Is it possible to fix this?

You can also see this behavior in the following YouTube video. Video Link

The PC used is an i7 with 8GB RAM and GTX980 Graphic Card.

edit retag flag offensive close merge delete


It looks like the robots are drifting (due to tiny precision errors?). When you increase `max_step_size`, the simulation becomes faster, look at how the real time factor becomes really high and the sim time is much higher than real time (the end of your video is 1 day of simulation!). I guess it moves a lot because the error accumulates over time. Maybe increasing friction/damping on the joints will decrease the error?

chapulina gravatar imagechapulina ( 2016-02-29 10:46:11 -0600 )edit

So do you mean I should add friction/damping to the Joint? Because at this moment, the default SDF for the Pioneer3DX does not have it. It only has mu,mu2,slip1,slip2 for the link of the wheels, and not the joint.

shantia gravatar imageshantia ( 2016-03-01 05:42:14 -0600 )edit

Yes, I'm guessing that adding it to the joints might help.

chapulina gravatar imagechapulina ( 2016-03-01 12:20:05 -0600 )edit