Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The answer appears to be "yes, but markers require ignition transport, while most of the gzclient functionality requires gazebo transport, and ignition transport requires UDP multicast connectivity on the LAN, while gazebo transport can operate remotely via TCP and configured on the client using GAZEBO_MASTER_URI". Due to some iptable rules on my laptop where I run gzclient the UDP multicast was blocked. (And due to the fact that none of this seems documented and there are no troubleshooting instructions I could find it took me a long time the figure out.)

Some of the learnings:

Turn on ignition transport logging using setenv IGN_VERBOSE=1. When starting gzclient (assuming gzserver is running) if you just see something like

Bind at: [tcp://192.168.0.46:39002] for pub/sub
Bind at: [tcp://192.168.0.46:40787] for control
Bind at: [tcp://192.168.0.46:49928] for srv. calls

(192.168.0.46 is my local IP address) then you don't have connectivity. When you have connectivity you will also see several messages of the form:

Identity for receiving srv. requests: [859f5212-7654-4b27-a894-29d018cb96d8]
Identity for receiving srv. responses: [e2bbfaca-09d6-45ac-9f44-25ce4f4ffcf9]
Service call connection callback
Publisher:
    Topic: [@/h:tve@/introspection/mfznxa/filter_new]
    Address: tcp://192.168.0.3:40238
    Process UUID: d3be28e6-c608-4c4b-a941-47f63ac59e57
    Node UUID: 16b8e9a1-e288-4ad0-bf71-d1745a02653f
    Socket ID: e9efff25-e89b-4fb5-a657-523f51d28da4
    Request type: gazebo.msgs.Param_V
    Response type: gazebo.msgs.GzString
Advertise options:
    Scope: All
    * Connected to [tcp://192.168.0.3:40238] for service requests

Note 192.168.0.3, which is the machine gzserver runs on. So these messages show that the two machines can communicate at the ign transport level. At that point, running ign service -l (if you manage to install that...) should show /marker and /marker/list.

(Thanks chapulina for the troubleshooting help!)

The answer appears to be "yes, but markers require ignition transport, while most of the gzclient functionality requires gazebo transport, and ignition transport requires UDP multicast connectivity on the LAN, while gazebo transport can operate remotely via TCP and configured on the client using GAZEBO_MASTER_URI". Due to some iptable rules on my laptop where I run gzclient the UDP multicast was blocked. (And due to the fact that none of this seems documented and there are no troubleshooting instructions I could find it took me a long time the figure out.)

Some of the learnings:

Turn on ignition transport logging using setenv IGN_VERBOSE=1. When starting gzclient (assuming gzserver is running) if you just see something like

Bind at: [tcp://192.168.0.46:39002] for pub/sub
Bind at: [tcp://192.168.0.46:40787] for control
Bind at: [tcp://192.168.0.46:49928] for srv. calls

(192.168.0.46 is my local IP address) then you don't have connectivity. When you have connectivity you will also see several messages of the form:

Identity for receiving srv. requests: [859f5212-7654-4b27-a894-29d018cb96d8]
Identity for receiving srv. responses: [e2bbfaca-09d6-45ac-9f44-25ce4f4ffcf9]
Service call connection callback
Publisher:
    Topic: [@/h:tve@/introspection/mfznxa/filter_new]
    Address: tcp://192.168.0.3:40238
    Process UUID: d3be28e6-c608-4c4b-a941-47f63ac59e57
    Node UUID: 16b8e9a1-e288-4ad0-bf71-d1745a02653f
    Socket ID: e9efff25-e89b-4fb5-a657-523f51d28da4
    Request type: gazebo.msgs.Param_V
    Response type: gazebo.msgs.GzString
Advertise options:
    Scope: All
    * Connected to [tcp://192.168.0.3:40238] for service requests

Note 192.168.0.3, which is the machine gzserver runs on. So these messages show that the two machines can communicate at the ign transport level. level.

Now in addition you need to put them into the same ignition transport "partition". For this, setenv IGN_PARTITION=my-simulation (pick any value you like) on both machines. If you don't, they will discover each other but not register services and topics in the same partition and thus not really communicate. The partitions allow you to run multiple instances of gazebo on the same LAN.

At that point, running ign service -l (if you manage to install that...) should show /marker and /marker/list.

(Thanks chapulina for the troubleshooting help!)