What are the drawbacks of running multiple Gazebo simulations using Multimaster FKIE package

asked 2019-05-28 10:31:28 -0500

kumpakri gravatar image

updated 2019-05-28 10:32:09 -0500

I am working on coupling two Gazebo simulations on one computer. I want some messages to travel from one simulation to another.

I have tried to launch the two simulation at the same ROS master by using namespaces, but that have never worked.

So I ended up using the Multimaster FKIE package, that allows me to define /gazebo topics as ignored and this way each of the ROS master can communicate only with its own gazebo process and the two simulations can be launched and control on one computer.

image description

However, I am still running into some problems. For example some services and nodes orks perfectly until only one simulation runs and as soon as I launch the second simulation I start getting errors like

[WARN] [1559057038.764544, 2182.489000] [file:/opt/ros/kinetic/lib/python2.7/dist-packages/tf2_ros/transform_listener.py] [node:/tf_service] [check_for_reset:75]: Detected jump back in time of 14.344000s. Clearing TF buffer.

The simulation are desynchronized. Each has its own simulation time and each run with different RT factor. But even if I toy with pausing the simulation and setting different step size and real time update rate and I get the simulations to run kind of with the same time and RT factor, the warning persists.

So my question is, based on the working of the Multimaster FKIE package and Gazebo, what are the reasons I am having such a hard time to make this work? What is the drawback of using the Multimaster FKIE package with Gazebo like this? is there something that makes it impossible? What approach would solve my problem?

edit retag flag offensive close merge delete