I'm using Python 3.5.10-slim-buster (Docker) with the Pepper robot from Softbank. The NAOqi version on the robot is 2.5.8 (taken from /var/log/naoqi/servicemanager/system.Naoqi.log
).
I got qi v. 3.0.0 via pip.
I want to subscribe to events with
pepper = qi.Application()
pepper.start()
session = pepper.session
memory = session.service("ALMemory")
def touch_event(*args, **kwargs):
pass
subscriber = memory.subscriber("ALTouch/TouchChanged") # throws RuntimeError: Invalid signature
if subscriber:
subscriber.signal.connect(touch_event)
Creating the session directly like in http://doc.aldebaran.com/libqi/api/python/session.html didn't work either.
Does anyone know how to make this work?
I've referenced this issue in https://github.com/aldebaran/libqi-python/issues/13.
tldr: The issue occurs most likely due to a missmatch between the NaoQi OS and the coresponding libQi library. My workaround for this is to run my code directly on the pepper robot.
Even with the latest version of libqi and the fix from Victor (see https://github.com/victorpaleologue/libqi-python/tree/47df0833c707cfd2a6a4c86765db423f319e029d) it didn't work and resulted in the same error.