Nous travaillons sur Snap pour diriger un robot Poppy Ergo-Jr.
Malheureusement, les blocs pour enregistrer et jouer des mouvements ne fonctionnent pas.
L’enregistrement semble enregistrer que le moteur m1,
Le mode “play” ne démarre pas les moteurs.
Connaissez vous ce problème ?
Sur Python, ces fonctionnalités ne posent pas de problème.
Bonjour,
Quel navigateur et système d’exploitation utilisez vous ?
Il y a un bug connu qui fait que lorsqu’on enregistre pour la première fois un mouvement cela définit les moteurs enregistrés, si l’on l’enregistre à nouveau avec d’autres moteurs ils ne sont pas pris en compte. Etes vous sur d’avoir mis dès le début le bloc “all motors” ou une liste de moteurs ?
A la fin de l’enregistrement les moteurs doivent être en mode “stiff” automatiquement. S’ils sont compliant ils ne peuvent pas être bougé de façon logicielle.
Je travaille sur Chrome, mais j’ai aussi essayé d’envoyer les commandes REST directement depuis mon soft.
Voici les blocks que j’utilise sur snap, dans l’ordre:
Et l’erreur affiché dans le terminal (Jupyter) :
Exception in thread Thread-18:
Traceback (most recent call last):
File “/usr/lib/python3.4/threading.py”, line 920, in _bootstrap_inner
self.run()
File “/usr/lib/python3.4/threading.py”, line 868, in run
self._target(*self._args, **self._kwargs)
File “/usr/local/lib/python3.4/dist-packages/pypot/utils/stoppablethread.py”, line 121, in _wrapped_target
self._setup()
File “/usr/local/lib/python3.4/dist-packages/pypot/primitive/primitive.py”, line 67, in _prim_setup
self.setup()
File “/usr/local/lib/python3.4/dist-packages/pypot/primitive/move.py”, line 183, in setup
position = self.positions[0]
File “/usr/local/lib/python3.4/dist-packages/pypot/utils/interpolation.py”, line 31, in getitem
return super(KDTreeDict, self).getitem(key)
File “/usr/local/lib/python3.4/dist-packages/pypot/utils/interpolation.py”, line 107, in missing
return self.interpolate_motor_positions(key, self.nearest_keys(key))
File “/usr/local/lib/python3.4/dist-packages/pypot/utils/interpolation.py”, line 85, in interpolate_motor_positions
elif input_key < min(nearest_keys):
TypeError: unorderable types: int() < str()
Traceback (most recent call last):
File “/usr/local/bin/bottle.py”, line 862, in _handle
return route.call(**args)
File “/usr/local/bin/bottle.py”, line 1732, in wrapper
rv = callback(*a, **ka)
File “/usr/local/lib/python3.4/dist-packages/pypot/server/httpserver.py”, line 47, in _enable_cors
return fn(*args, **kwargs)
File “/usr/local/lib/python3.4/dist-packages/pypot/server/snap.py”, line 318, in start_move_player_with_speed
return str(rr.start_move_player(move_name, float(move_speed)))
File “/usr/local/lib/python3.4/dist-packages/pypot/server/rest.py”, line 181, in start_move_player
player.start()
File “/usr/local/lib/python3.4/dist-packages/pypot/primitive/primitive.py”, line 122, in start
self.wait_to_start()
File “/usr/local/lib/python3.4/dist-packages/pypot/utils/stoppablethread.py”, line 86, in wait_to_start
‘for details.’.format(self._thread.name))
RuntimeError: Setup failed, see Thread-18 Tracebackfor details.
500 GET /primitive/MovePlayer/test/start/1 (169.254.44.216) 49.04ms
L’API n’est probablement pas très bien protégée et c’est possible que vous ayez provoqué des problèmes ainsi.
Cependant à lire le message d’erreur, il semblerait que ce soit le fichier “test.record” qui soit mal-formé, ça serait possible de l’uploader sur le forum ?
C’est très étrange en effet. Utilisez vous uniquement Snap pour gérer les mouvements du robot ? Le problème se produit même si vous n’exécutez que le bloc "play move … " ?
l’ErgoJr fonctionnait-il correctement avant?
Quelle manip a provoqué le bug?
le bug était-il spécifique à un bloc, ou est-ce que plus rien ne fonctionne?
Quel est le code erreur? etc…
Au niveau de snap, il n’y a pas de message d’erreur, sauf le même message qu’affiché au dessus dans un terminal.
J’ai tenté une réinstall du système initial, mais j’ai toujours le même problème.
Je vais prendre le temps de vérifier un peu plus en détails.