{ "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 }