gazebosim / gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
http://classic.gazebosim.org/
Other
1.17k stars 477 forks source link

markers should use gazebo transport #2349

Open osrf-migration opened 7 years ago

osrf-migration commented 7 years ago

Original report (archived issue) by Thorsten von Eicken (Bitbucket: tvoneicken).


The marker functionality uses ignition transport. It should also be available using gazebo transport to allow for remote operation. Creating markers from model and world plugins is immensely useful to visualize forces and other properties that are calculated by the plugins and by using ignition transport that functionality cannot be used when client & server are not on the same lan. I don't understand why markers use ignition transport and thus whether they can be switched to gazebo transport, but perhaps adding the option to use gz transport would provide the best of both worlds.

osrf-migration commented 7 years ago

Original comment by Shane Loretz (Bitbucket: Shane Loretz, GitHub: sloretz).


Hi @tvoneicken, thanks for the ticket. What do you mean by client and server are not on the same lan? Do you mean they're not on the same machine? What are the IP addresses of the two machines? I see mention of GAZEBO_MASTER_URI in #2348. What is it set to?

osrf-migration commented 7 years ago

Original comment by Louise Poubel (Bitbucket: chapulina, GitHub: chapulina).


A couple of related questions:

osrf-migration commented 7 years ago

Original comment by Thorsten von Eicken (Bitbucket: tvoneicken).


Shane, the two questions referred-to by Louise should answer your questions, but in short, if gzserver and gzclient are not in the same UDP multicast domain then ignition transport does not "connect". An example would be to run gzserver in the cloud and gzclient on a local laptop. In such a situation, you can set GAZEBO_MASTER_URI all you want on the laptop, it will not give you ignition transport connectivity and thus markers set, for example, in a model plugin in gzserver will not show up in gzclient on your laptop.

As a sample use-case, I'm developing a rather complex simulation of boats on a non-flat ocean surface. I'd like to run this (basically headless) on many servers in the cloud to run many simulations. But I also want to be able to remotely connect to such a server and visualize the physics using markers for troubleshooting purposes. For example, the markers can show the force on each mesh triangle, or show the submerged part of the mesh, etc.

osrf-migration commented 6 years ago

Original comment by Thorsten von Eicken (Bitbucket: tvoneicken).


Another issue caused by sending markers over a different transport than the rendering and that I had not seen initially is that the markers lag behind the animation. In my simulation I am drawing forces on the triangles of the model as well as overlaying certain triangles (underwater triangles in my boat simulation) with markers and when the model moves rapidly the markers lag significantly behind. I'm suspecting this is because of the different transport but I can't really prove it. I am running gzserver and gzclient on different machines over the LAN, I don't know whether the same effect happens if they run on the same machine.