J’utilise un PoppyHumanoid. Voici le code que j’utilise:
from contextlib import closing
import json
import time
##Connect to real robot
from poppy.creatures import PoppyHumanoid
with closing(PoppyHumanoid()) as poppy:
for m in poppy.motors:
m.compliant = True;
##Create the ZMQServer
HOST = '127.0.0.17'
PORT = 1140
from pypot.server.zmqserver import ZMQRobotServer
server = ZMQRobotServer(poppy,HOST,PORT)
print("Binding... "+HOST+","+str(PORT))
##Create a thread to run the REQ/RESP loop
from threading import Thread
Thread(target=lambda: server.run()).start()
pass
Le robot est bien branché et je peux le faire bouger depuis Python. Avec le même code, je peux toujours accéder aux registres, mais j’ai le même problème, les valeurs ne sont pas mis à jour. Voici un eimage de l’execution et des lignes que j’écris après:
La première partie en bleu c’est la réponse envoyée après avoir demandé depuis le code c++ la position de tous les moteurs. Ensuite, depuis la même console je demande la position des moteurs l_elbow_y et r_elbow_y. J’ai bougé le moteur r_elbow_y mais la valeur montré sur python est la même à chaque fois. Ensuite j’ai essayé d’envoyer une goal_position à ce même moteur, mais cela n’a pas marché, et finalement j’ai débranché le robot, et j’ai demandé encore la position du moteur r_elbow_y et il montre la même position.