I run a Gazebo server on one machine and try to call a Gazebo service from a different machine in the same network.
There is a bidirectional communication between the two machines (i.e. ping works from both sides).
Gazebo transport's discovery mechanism seems to work, because I receive the topics and services on the second machine :
$ gz service -l
/gazebo/resource_paths/add
... (other topics)
/world/multicopter/list_parameters
However, when I try to call a service, it fails :
$ gz service -s /world/multicopter/list_parameters --reqtype gz.msgs.Empty --reptype gz.msgs.ParameterDeclarations --timeout 2000 --req ''
Service call timed out
Questions: Has someone already tried this? Do you have any idea why the service request times out?
Edit:
- the
GZ_PARTITIONis set to similar value in both machines - Topics are detected (
gz topic -loutputs the list of topics) but not received (gz topic -e -t /foooutputs nothing)
GZ_PARTITIONenv variable to the same value on both machines, as it is used in the discovery mechanism also, and I correctly receive existing topics and services on the "client" machine (gz service -lworks fine). Even in the same Gazebo partition it appears the service request fails.My call is that the "discovery" and "service answer" packets are different in term of networking, but I can't find the difference.
– TheotimeBlg Jun 13 '23 at 08:02