{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Decouverte – Niveau 1 - Python\n",
"\n",
"###TP2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pour commencer votre programme python devra contenir les lignes de code ci-dessous et le logiciel V-REP devra être lancé.\n",
"\n",
"\n",
"- Dans V-REP (en haut à gauche) utilise les deux icones flèche pour déplacer la vue et regarder poppy sous tous les angles.
\n",
"- Dans notebook, utilise le raccourci 'Ctrl+Enter' pour éxécuter les commandes."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import time\n",
"from poppy.creatures import PoppyTorso\n",
"poppy = PoppyTorso(simulator='vrep')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Rappel :
\n",
"Nom=poppy.nom_du_moteur.name
\n",
"Position=poppy.Nom.present_position
\n",
"poppy.Nom.goal_position = valeur en degrès entre -180° et + 180°"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###Boucle et memoire\n",
"\n",
"####Les listes\n",
"\n",
"Comme évoqué dans le TP1, une liste sert à stocker de l'information, elle permet de définir une structure de données en groupant l'information.\n",
"\n",
"Essaies les commandes:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L=[]\n",
"m=poppy.head_z\n",
"L.append(m.name)\n",
"L.append(m.present_position)\n",
"print(L) # liste complète \n",
"print( L[0]) # élément d'indice 0 de la liste L\n",
"print(L[1]) # élément d'indice 1 de la liste L"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On voit ici que la liste L contient 2 éléments, le nom du moteur et sa position ; \n",
"
On voit également que ces éléments sont accessibles via le nom de la liste suivi du numero d'index entre crochet."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Attention, c'est l'ordre d'ajout des éléments dans la liste qui détermine le numéro d'index.\n",
"\n",
"Essaie les commandes:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L2=[]\n",
"m=poppy.head_z\n",
"\n",
"L2.append(m.present_position)\n",
"L2.append(m.name)\n",
"print(L2) # liste complète \n",
"print( L2[1]) # élément d'indice 1 de la liste L\n",
"print(L2[0]) # élément d'indice 0 de la liste L"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les listes L et L2 sont-elles identiques ? oui / non\n",
"\n",
"Vérifions:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"print L == L2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La subtilité est:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"print L[0] == L2[1]\n",
"print L[1] == L2[0]\n",
"print L, L2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Différentes listes sont directement accécibles comme :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"poppy.motors"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"poppy.alias"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Comment les exploiter?\n",
"\n",
"####Boucle \"for\"\n",
"\n",
"Ce que nous voulons faire:
\n",
"Creer une boucle for (pour) que m (une variable) prenne chacune des valeurs in (dans) poppy.motors (la liste) et : (faire), append (ajouter) cette valeur (contenu dans m) dans une nouvelle liste (L).
\n",
"\n",
"Ceci se traduit par :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L=[]\n",
"for m in poppy.motors :\n",
" L.append(m.name)\n",
"print(L)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"d'autres syntaxes possibles:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Pour afficher\n",
"for m in L: print(m)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Pour créer une liste\n",
"for m in poppy.motors : L.append(m.name)\n",
"for m in L: print(m)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Pour créer une liste\n",
"L=[m.name for m in poppy.motors]\n",
"for m in L: print(m)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Application:\n",
"\n",
"####Recréer la liste alias r_arm:\n",
"\n",
"Alias est une liste qui contient tous les moteurs (articulation) associés au bras droit.\n",
"Recrées la."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"print poppy.alias\n",
"for m in poppy.r_arm: print(m)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# essaies ton code ici\n",
"\n",
"bras_droit = []\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"_________________________________________________________________\n",
"\n",
"\n",
"#### Tu as raté? c'est pas grâve, recommmence, essaies ces lignes pour redémarrer :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"messager.reset_simulation()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Encore buger ? essaies celles-ci :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pypot\n",
"poppy.stop_simulation()\n",
"pypot.vrep.close_all_connections()\n",
"\n",
"from poppy.creatures import PoppyTorso\n",
"poppy=PoppyTorso(simulator='vrep')"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"####Tu as fini? coupes la simulation ici:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pypot\n",
"poppy.stop_simulation()\n",
"pypot.vrep.close_all_connections()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}