Pour démarrer la simulation ; éxécuter les commandes suivantes:
In [ ]:
from poppy_ergo_jr import PoppyErgoJr
creature = PoppyErgoJr(simulator='vrep')
In [ ]:
creature.reset_simulation()
In [ ]:
creature.stop_simulation()
In [ ]:
import pypot
In [ ]:
pypot.vrep.close_all_connections()
Puis re-instancier Ergo_Jr
In [ ]:
from poppy_ergo_jr import PoppyErgoJr
ergo = PoppyErgoJr(simulator='vrep')
In [ ]:
print"Réponse:"
print "j'ai", len( ergo.motors ), "moteurs"
print "ils sont tous indexés dans une ", type( ergo.motors ), "qui s'appelle ergo.motors \n\n la voici: "
for m in ergo.motors:
print "-------------"
print "nom du moteur: ", m.name
print "position actuelle du moteur: ", m.present_position, "degrès"
In [ ]:
# éteindre la simulation précédente...
import pypot
ergo.stop_simulation()
pypot.vrep.close_all_connections()
In [ ]:
# ...avant d'en démarrer une nouvelle.
from poppy_ergo_jr import PoppyErgoJr
ergo = PoppyErgoJr(simulator='vrep')
In [ ]:
# Ergo dit oui
for i in range(2):
ergo.m6.goal_position = -20
ergo.m6.goal_position = +20
ergo.m6.goal_position = 0
In [ ]:
# Poppy dit oui
import time
for i in range(2):
ergo.m6.goal_position = -20
time.sleep(1)
ergo.m6.goal_position = +20
time.sleep(1)
ergo.m6.goal_position = 0
Ici on utilise la fonction 'goal_position', précédée du nom du moteur, précédé du nom de la créature.
Elle accepte des valeurs de positions allant de -180° à +180°
Les lignes de code s'exécutent de façon quasi instantannées ; même si la position (demandée en ligne précédente) n'a pas été atteinte.
Le module 'Time' nous permet d'attendre (grâce à la fonction 'time.sleep') que le moteur ai atteint la position voulue avant d'exécuter la commande suivante.
In [ ]:
# Poppy dit oui
for i in range(2):
ergo.m6.goto_position(-20,1,)
ergo.m6.goto_position(+20,1)
ergo.m6.goal_position = 0
In [ ]:
# Poppy dit oui
for i in range(2):
ergo.m6.goto_position(-20,1,wait=True)
ergo.m6.goto_position(+20,1,wait=True)
ergo.m6.goal_position = 0
Ici on utilise la fonction 'goto_position', précédée du nom du moteur, précédé du nom de la créature.
Elle accepte entre 2 et 3 paramètres:
L'option 'wait=True' permet d'attendre que la position soit atteinte avant de passer à la ligne suivante.
Par défaut 'wait=False' ne bloque pas le défilement, on peut donc lancer plusieurs moteurs au même moment.
Les moteurs peuvent être dans deux états: compliant / non compliant
l'état non compliant bloque les moteurs.
Exemple:
poppy.head_z.compliant = True
poppy.head_z.compliant = False
La vitesse des moteurs peut être modifiée via la fonction 'moving_speed'
Exemple:
poppy.head_z.moving_speed = 150 #vitesse en milliseconde
In [ ]:
#essaie ton code ici
In [ ]:
#RAPPEL, pour relancer la simulation
ergo.reset_simulation()
In [ ]:
# essaies ton propre code ;)