<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 <img src="png/poppy.png" HEIGHT=200 WIDTH=200 ALIGN=right>
<img src="png/inria.jpg" HEIGHT=150 WIDTH=325 ALIGN=left >
Premiers pas avec une créature
10 choses à savoir sur Poppy Humanoid
Ouvrir l'interface
Instancier Poppy Humanoid (démarrer la simulation)
Redémarrer la simulation
Eteindre la simulation
Moteurs & capteurs du robot
Bouger - fonction goal_position
Bouger - fonction goto_position
Instancier d'autres créatures
Démarrer avec une créature réelle
Particularités des modèles réels
1 - Ouvrir l'interface
Ouvrir V-REP ou  connecter le robot.
Ouvrir Jupyter - ipython vidéo démonstrative
via un terminal avec la commande 
Step1:  3 - Redémarrer la simulatiuon
Step2:  4 - Eteindre la simulation
Step3:  5 - Moteurs & capteurs
Poppy, comment tu fonctionnes?
Step4:  Explication
Step5:  Explication
Step6:  Explication
Step7:  Plus d'informations sur les prochaines créatures Poppy sur ce topic 
Step8:  Instancier Ergo Jr
Pour démarrer la simulation ; éxécuter les commandes suivantes
Step9:  etc
9 - Démarrer avec une créature réelle
Pour passer d'un programme destiné à une version simulée vers une version réelle, cela nécéssite une unique modification lorsque la créture est instanciée
<ASSISTANT_TASK:>
Python Code:
from poppy.creatures import PoppyHumanoid
creature = PoppyHumanoid(simulator='vrep')
Explanation: <img src="png/poppy.png" HEIGHT=200 WIDTH=200 ALIGN=right>
<img src="png/inria.jpg" HEIGHT=150 WIDTH=325 ALIGN=left >
Premiers pas avec une créature
10 choses à savoir sur Poppy Humanoid
Ouvrir l'interface
Instancier Poppy Humanoid (démarrer la simulation)
Redémarrer la simulation
Eteindre la simulation
Moteurs & capteurs du robot
Bouger - fonction goal_position
Bouger - fonction goto_position
Instancier d'autres créatures
Démarrer avec une créature réelle
Particularités des modèles réels
1 - Ouvrir l'interface
Ouvrir V-REP ou  connecter le robot.
Ouvrir Jupyter - ipython vidéo démonstrative
via un terminal avec la commande : jupyter notebook
via l'exécutable: rechercher dans 'tous les programmes' anaconda\IPython (Py 2.7) Notebook
via l'exécutable 'Launcher' : rechercher dans 'tout les programmes' anaconda\Launcher
Pour Poppy réel : via http://poppy.local (ou si vous avez modifié le nom de votre Poppy: http://new-name.local)
2 - Instancier Poppy
Pour démarrer la simulation ; éxécuter les commandes suivantes:
End of explanation
creature.reset_simulation()
Explanation: 3 - Redémarrer la simulatiuon
End of explanation
import pypot
creature.stop_simulation()
pypot.vrep.close_all_connections()
from poppy.creatures import PoppyHumanoid
poppy = PoppyHumanoid(simulator='vrep')
Explanation: 4 - Eteindre la simulation
End of explanation
from __future__ import print_function
print("Réponse:")
print( "j'ai", len( poppy.motors ), "moteurs")
print( "ils sont tous indexés dans une ", type( poppy.motors ), "qui s'appelle poppy.motors \n\n la voici: ")
for m in poppy.motors:
    print( "-------------")
    print( "nom du moteur: ", m.name)
    print( "position actuelle du moteur: ", m.present_position, "degrès")
Explanation: 5 - Moteurs & capteurs
Poppy, comment tu fonctionnes?
End of explanation
# éteindre la simulation précédente...
import pypot
creature.stop_simulation()
pypot.vrep.close_all_connections()
# ...avant d'en démarrer une nouvelle.
from poppy.creatures import PoppyHumanoid
poppy = PoppyHumanoid(simulator='vrep')
# Poppy dit oui
for i in range(2):
    poppy.head_y.goal_position = -20
    poppy.head_y.goal_position = +20
poppy.head_y.goal_position = 0
##### Il ne se passe rien... si !
##### mais Poppy va trop vite, essayons ça :
# Poppy dit oui
import time
for i in range(2):
    poppy.head_y.goal_position = -20
    time.sleep(1)
    poppy.head_y.goal_position = +20
    time.sleep(1)
poppy.head_y.goal_position = 0
Explanation: Explication:
Ici on utilise une liste pour stocker le nom des moteurs: poppy.motors
chaque moteur possède:
un nom ; exemple: poppy.head_z.name
une id ; exemple: poppy.head_z.id
une position courante ; exemple: poppy.head_z.present_position
Aperçu de l'ensemble des moteurs :
<img src="png/poppy nom moteur.png" HEIGHT=800 WIDTH=600 ALIGN=center>
6 - Bouger - fonction 'goal_position'
Poppy, tu es prêt ?
End of explanation
poppy.l_shoulder_x.goto_position(90,2)
poppy.l_arm_z.goto_position(90,2)
poppy.abs_z.goto_position(10,2)
poppy.l_elbow_y.goto_position(-120,2,wait=True)
for i in range(3):
    poppy.l_elbow_y.goto_position(-90,0.5,wait=True)
    poppy.l_elbow_y.goto_position(-120,0.5,wait=True)
    
poppy.l_shoulder_x.goto_position(0,2)
poppy.l_arm_z.goto_position(0,2)
poppy.abs_z.goto_position(0,2)
poppy.l_elbow_y.goto_position(0,2)
Explanation: Explication:
Ici on utilise la fonction '<b>goal_position</b>', 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°<br>
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.
7 - Bouger - fonction 'goto_position'
Bonjour Poppy
End of explanation
for i in range(3):
    poppy.head_y.goto_position(-20,1)
    poppy.head_y.goto_position(+20,1)
poppy.head_y.goto_position(0,0.5)
print( "Torso, Ergo, et toute la family")
Explanation: Explication:
Ici on utilise la fonction '<b>goto_position</b>', 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:
 - la position en dégrès
 - le temps en secondes pour atteindre cette position
 - paramètre facultatif 'wait=True'
L'option 'wait=True' permet d'attendre que la position soit atteinte avant de passer à la ligne suivante.<br>
Par défaut 'wait=False' ne bloque pas le défilement, on peut donc lancer plusieurs moteurs au même moment.
8 - Démarrer avec d'autres créatures
Poppy, y a t-il d'autres créatures comme toi ?
End of explanation
# si une simulation est active, n'oubliez pas de la quitter
from poppy.creatures import PoppyTorso
torso = PoppyTorso(simulator='vrep')
Explanation: Plus d'informations sur les prochaines créatures Poppy sur ce topic : Poppy mini family
Instancier Poppy-Torso
Pour démarrer la simulation ; éxécuter les commandes suivantes:
End of explanation
#si une simulation est active, n'oubliez pas de la quitter
from poppy.creatures import PoppyErgoJr
ergo = PoppyErgoJr(simulator='vrep')
Explanation: Instancier Ergo Jr
Pour démarrer la simulation ; éxécuter les commandes suivantes:
End of explanation
# essaies ton propre code ;)
Explanation: etc
9 - Démarrer avec une créature réelle
Pour passer d'un programme destiné à une version simulée vers une version réelle, cela nécéssite une unique modification lorsque la créture est instanciée:
Dans votre programme, la ligne...
creatures = PoppyHumanoid(simulator='vrep') 
...devient : 
creatures = PoppyHumanoid()
Particularités des modèles réels
Les moteurs peuvent être dans deux états: compliant / non compliant
l'état compliant permet de déplacer manuellement les moteurs sans résistance.
l'état non compliant bloque les moteurs.
Exemple: <br>
poppy.head_z.compliant = True<br>
poppy.head_z.compliant = False<br>
La vitesse des moteurs peut être modifiée via la fonction 'moving_speed'
Exemple: <br>
poppy.head_z.moving_speed = 150 #vitesse en milliseconde
10 - Achat, construction, créer sa créature :
<u>Acheter : </u><br>
Rendez vous sur : Génération robots plusieurs modèles vous y sont proposés.
<u>Construire : </u><br>
Rendez vous sur :  Assembling Poppy Humanoid une notice et des vidéos vous aident à construire votre poppy
<u>Création :</u><br>
Retrouvez toute la documentation pour imprimer et acheter individuellement les éléments nécessaires à la construction d'un « pypot robot » sur le site poppy-project.org.
Pour plus d'informations rendez-vous sur le Forum
Aller plus loin
La possibilité d'ajouter des objets interactifs (balle, cube, etc) plus de details ici
Installation détaillée ici
d'autres notebooks pour
V-REP ;
Torso ;
Snap! ;
et l'ensemble des notebooks via le site poppy-project.org
End of explanation
<END_TASK>