Robotics StackExchange | Archived questions

ignition transport UDP discovery

I'm trying to run gzserver and gzclient on two different machines and from troubleshooting it looks like the ignition transport layer doesn't connect-up. I see in the code that it uses UDP multicast for discovery. How is this supposed to work when gzserver runs, say, in an AWS EC2 cloud instance and gzclient runs on my local desktop? I know about GAZEBOMASTERURI but that doesn't seem to establish full connectivity.

Asked by tve on 2017-09-12 00:29:59 UTC

Comments

Answers

Ignition Transport is not able to work with machines that aren't in the same LAN. However, if I remember correctly gzclient and gzserver should use Gazebo Transport for most of the operations. What is exactly the problem that you're observing?

Adjusting GAZEBO_MASTER_URI accordingly should be your solution. You probably need to adjust your AWS security groups to make sure that the ports are open.

Asked by Carlos Agüero on 2017-09-12 03:31:16 UTC

Comments

Aha, that seems like a fail! I'm trying to use markers in a world or model plugin and they seem to use ignition transport.

Asked by tve on 2017-09-12 09:26:08 UTC

Unfortunately, that's not possible right now. If you're willing to do it, a workaround could be to create a VPN, and then, your client would be within the same LAN. Not ideal but just in case you really need a solution right now.

Asked by Carlos Agüero on 2017-09-12 09:34:09 UTC

Do markers even work across the LAN? I am running gzserver on one box and gzclient on another on a LAN. I can run the marker example on the gzclient machine and it works. But running on the gzserver machine it doesn't. ign service -l on the client shows the /marker and /marker/list services. Running it on the server machine doesn't. Running a tcpdump on the server machine shows what looks like UDP advertisement packets coming from the client with /marker ads. How is this supposed to work?

Asked by tve on 2017-09-12 10:24:25 UTC

You need to set the environment variable IGN_PARTITION on both machines to the same value. This will put all nodes in both machines in the same partition and they'll be able to talk via Ignition Transport.

Asked by Carlos Agüero on 2017-09-12 10:31:26 UTC