To use pygazebo in a project, first import, then instantiate a Manager:
from trollius import From
import pygazebo
manager = yield From(pygazebo.connect(('localhost', 11345)))
Then, individual topics can be published or subscribed using the advertise or subscribe methods.
To publish:
publisher = yield From(
manager.advertise('/gazebo/default/topic',
'gazebo.msgs.GzString'))
yield From(publisher.publish(
pygazebo.msg.gz_string_pb2.GzString(data='hello')))
And to subscribe:
def callback(data):
message = pygazebo.msg.gz_string_pb2.GzString.FromString(data)
print('Received message:', message.data)
manager.subscribe('/gazebo/default/topic',
'gazebo.msgs.GzString',
callback)
The library is built with trollius. No external methods are coroutines (they only return Futures) and can thus operate in any application which is already using a trollius or asyncio event loop even if coroutines are not used.