Laggy Gazebo simulation and low real time factor

This is a continuation of my previous post. I am still experiencing very laggy gazebo sim as shown in this gif. I don’t have any VPN or firewall running.

Computer specs: Ryzen 5 7600, RTX 2060 super, 32 GB ram (CPU and memory utilization < 20%)
Internet speeds: 500mbps up/down

When I try to move the robot in Gazebo, it always lags like you see here. It does the same on my laptop (which also has no firewall or VPN running, and low CPU and GPU utilization).

Any ideas?

Hi Spencer,

I’m sorry you are still having this issue, especially that there’s no reason for it as far as I can see. All the specs are A-star!

To troubleshoot further:

  • Are you having a similar experience when you launch courses? It seems that something is “rate-limiting” the speed at which you connect the simulation - perhaps an antivirus or Internet Security suite.
  • Could you try another PC and network altogether to see if the same thing happens?

Hi @bayodesegun, thanks for the reply.
I have good news. When I launch a simulation in a course, it seems to run totally fine, smoothly, responsive, etc. So the problem appears to only be with rosjects (specifically, I launch the wall following Gazebo environment with roslaunch realrobotlab main.launch).

Nothing has changed on my computer or internet connection between trying the rosject and the course. Any idea what could be causing the lag in the rosjects?

Also, I did try a different and quite well spec’d computer on my same network, and it has the same lag in the rosject.


Hi Spencer,

Thanks for sharing the good news. It’s a definite step forward, and we can troubleshoot further.

There are key differences between simulations in the course and ROSDS environments:

  • ROSDS uses gzclient while the courses use gzweb, mostly. gzweb is generally faster.
  • We connect to the gzclient running on the vm via a remote desktop connection, vs a direct browser connection used by gzweb.

So, I would focus on the connection aspect of your network. Not necessarily the speed but any blockages or rate-limiting, considering remote desktop connection specifically.

Are you able to try a different network?

Hi again @bayodesegun
I opened ROSDS on my laptop, using my phone’s 4G connection instead. Speedtest shows the connection speed at 40mbps down/40 up.
In the same ROSDS project, the simulation is laggy as before.
Is it possible this is related specifically to this one rosject I am trying to run? I haven’t made any other rosjects yet, but should I possibly try to run a new rosject, or do you think I would encounter the same issues.


Thank you for the update. For sure, we’ll get to the bottom if it!

Trying another rosject is a very good idea. Please go ahead. I will also do further tests here.

I think the key here is the real time factor you are getting. I just tried and got 6.9+, and the simulation did not lag. Not sure what might be responsible here, perhaps you are too far away from your VM :frowning:

Please try another rosject as you said and let’s compare.

Hi again @bayodesegun
I made a new rosject and tried a simple turtlebot sim. Here is a gif showing the results: still lagging in rosds
I think the results speak for themselves. I am not sure what else I can do on my end. I have very fast internet, an adequate computer, and a fresh project. I hope this is something your team can figure out on your end. I pay a lot for a constructsim subscription, and I expect to be able to get the full experience. Thanks!

Hi @sploeger
Today I will conduct some test to determine whether this is from our end. We rarely have this kind of complaint, and we have a number of clients in that region. Hopefully, we will be able to reach a logic conclusion after these tests.

Hi @sploeger
Please try again. I have put some VMs closer to your location, let us see if the lag improves.

Hi @bayodesegun
As you can see, there is no improvement. Is there a way to check if the VM which I am connected to and running Gazebo from is geographically the closest (and in theory the fastest)? Gif link here

Your VM was placed in Canada central, the closest region to you, so the problem is not the location of your VM.

Furthermore, I tried placing a VM int this same region, which far from my regular region (Europe west), and it didn’t result in the lag you are seeing.

Something else is responsible for this lag, and this is particularly affecting the remote desktop connection used for the simulation on ROSDS (because as you mentioned it does not happen in the course environment).

So far, have you tried using a different PC? I can’t think of anything else from this end.

Yes, tried on a PC laptop, and now most recently an M2 mac. I even hot-spotted myself from my phone to see if the internet connection is the problem. I get 50bbps down and up with the hot spot connection. I still experience the same lag on the mac with this new connection. No VPNs or firewalls are running.
This is the rosject I am trying:
Are you able to try it? Maybe it is a problem with the rosject itself?

@sploeger I see :cold_sweat:
Please include some instructions on how to launch the simulation and control it in the notebook, so we can be on the same page when trying.

Hi @bayodesegun here you go:

  1. launch rosject
  2. Run
cd ~/simulation_ws
rm -rf build/ devel/ 
source devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
  1. Gazebo will open with the turlebot in an environment
  2. In a new terminal run
rosrun teleop_twist_keyboard
  1. Try to pan and zoom around the map and control the robot to see if it lags

Unfortunately, the simulation launch command did not work, and I don’t have time to troubleshoot them. Could you please send me a working version of the rosject with clear instructions in the notebook?

RLException: while processing /home/user/simulation_ws/src/turtlebot3_simulations/turtlebot3_gazebo/launch/put_robot_in_world.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: no such command [['/opt/ros/noetic/share/xacro/', '/home/user/simulation_ws/src/turtlebot3/turtlebot3_description/urdf/turtlebot3_burger.urdf.xacro']].

Param xml is <param name="robot_description" command="$(find xacro)/ $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro"/>
The traceback for the exception was written to the log file

Hi @bayodesegun
I just ran the rosject using your exact instructions with no problem. I updated the readme to reflect your reformatted instructions. Can you please try again?

I think you shared the wrong rosject with me. I can’t see the update you mentioned in the readme. Please create a share link on the rosject and send it here.

Please try this link:

I have checked. I can see some lag that seems to be worse than the one of the real robot, but it’s manageable. The real time factor was between 5.9 - 7.2.

It doesn’t look like any serious thing is wrong. Perhaps your expectation for real time response is too high?