Comprendre le développement de Python pour Pepper. -Introduction à Python Box-

Préface

La connaissance de Python est essentielle pour développer Pepper et NAO. Donc, brièvement, je voudrais expliquer la boîte Python dans Naoqi.

Environnement de développement

Nom du modèle: MacBook Pro OS : Yosemite 10.10.3 Nom du processeur: Intel Core i5 2,6 GHz Mémoire: 16 Go Graphique: Intel Iris 1536MB Choreographe : 2.3.1

Sujet principal

Boîte Python

Qu'est-ce qu'une boîte Python?

Tout d'abord, je voudrais expliquer brièvement la boîte Python. La boîte Python se trouve à l'adresse suivante dans la bibliothèque de boîtes:

Sinon, veuillez rechercher à partir de la marque de la loupe.

** [Programmation] -> [Modèle] -> Python Box **

Untitled_-Choregraphe__バーチャルロボットに接続.png

input : "onStart" "onStop" output : "onStopped"

C'est une boîte composée de.

scénario

Toutes les boîtes de Choreographe sont essentiellement créées sur la base de la configuration suivante. Le script ressemble à ceci:

#Vous pouvez voir que la classe dérivée de GeneratedClass est MyClass.
class MyClass(GeneratedClass):
	#La première chose qui est appelée lorsque le comportement est chargé__init__(self)est.
    def __init__(self):
        #Classe générée__init__(self)Vous pouvez voir que c'est primordial.
        GeneratedClass.__init__(self)
        #Mettons ici ce qu'on appelle lorsque le comportement est chargé.

    def onLoad(self):
        #put initialization code here
        #Mettons ici le processus d'initialisation.
        #Appelé après le chargement du comportement et tout init est appelé.
        pass

    def onUnload(self):
        #put clean-up code here
        #OnInput à la fin de l'application_Appelé lorsqu'il y a une entrée pour onStop.
        pass

    def onInput_onStart(self):
        #self.onStopped() #activate the output of the box
        #Appelé lorsqu'il y a une entrée dans onStart.
        #self.onStopped()Si vous n'écrivez pas, la sortie ne sera pas sortie, soyez donc prudent.
        pass

    def onInput_onStop(self):
    	 #Appelé lorsqu'il y a une entrée pour onStop.
        self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
        self.onStopped() #activate the output of the box

Vérification

Vérifiez comment la boîte Python est appelée. J'ai mis Logger dans chaque fonction et vérifié l'ordre d'exécution.

  1. J'ai arrangé les boîtes non connectées. スクリーンショット 2015-07-17 15.44.12.png

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 #Double-cliquez sur root sur Arrêtez ici [INFO] onUnload 0 [INFO] onUnload 1 [INFO] onUnload 2 [INFO] onUnload 3 ``` Vous pouvez voir que init est appelé et onLoad est appelé. Après cela, onUnload est appelé dans l'ordre et se termine. 2. J'ai essayé de me connecter en série. Capture d'écran 2015-07-17 15.54.44.png

```

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 [INFO] onInput_onStart 0 ``` Comme je l'ai écrit ci-dessus, si vous n'ajoutez pas self.onStopped () à la méthode "onInput_onStart", aucune sortie ne sera effectuée. Donc, ensuite, vérifions avec celui avec self.onStopped (). 3.2 avec self.onStopped () dans 2. Ajout de self.onStopped () à la méthode "onInput_onStart".

```

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 [INFO] onInput_onStart 0 [INFO] onInput_onStart 1 [INFO] onInput_onStart 2 [INFO] onInput_onStart 3 [INFO] onUnload 0 [INFO] onUnload 1 [INFO] onUnload 2 [INFO] onUnload 3 ``` Il a été produit correctement jusqu'à la fin. 4. J'ai laissé le script tel quel et l'ai connecté à ☓. Capture d'écran 2015-07-17 16.05.47.png

```

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 [INFO] onInput_onStop 0 [INFO] onUnload 0 [INFO] onInput_onStop 1 [INFO] onUnload 1 [INFO] onInput_onStop 2 [INFO] onUnload 2 #Attention [INFO] onUnload 3 [INFO] onInput_onStop 3 [INFO] onUnload 0 [INFO] onUnload 1 [INFO] onUnload 2 [INFO] onUnload 3 ``` Je viens de le décrire comme une attention, mais vous pouvez voir que l'ordre de onInput_onStop et onUnload est inversé et appelé. Je l'ai répété plusieurs fois, mais je ne sais pas si l'ordre d'écriture est inversé ou si l'ordre d'appel est inversé, mais parfois cela fonctionne dans le bon ordre, tel que 0 ~ 2 et 3 Il peut être inversé comme dans le cas de. ** La cause est inconnue. ** Cela peut être un bug dans Chorégraphe.

Notez également que onUnload est appelé deux fois. Il est appelé deux fois, lorsque vous entrez dans ☓ et lorsque le comportement se termine.

Impressions

Dans le prolongement de l'article, j'aimerais écrire comment utiliser mes propres fonctions et comment utiliser des bibliothèques externes.

Recommended Posts

Comprendre le développement de Python pour Pepper. -Introduction à Python Box-
Comprendre le développement de Python pour Pepper. -Édition de fonction auto-fabriquée par Python box-
Introduction à Python pour, pendant
Premiers pas avec Python pour les non-ingénieurs
Une introduction à Python pour l'apprentissage automatique
Une introduction à Python pour les programmeurs en langage C
Introduction à Python Préparons l'environnement de développement
Introduction au langage Python
Introduction à OpenCV (python) - (2)
[Introduction à l'application Udemy Python3 +] 43. instruction for else
Introduction à la programmation (Python) TA Tendency pour les débutants
Construction de l'environnement de développement Python 2020 [De l'installation de Python à l'introduction à la poésie]
Essayez de comprendre Python soi
Introduction à la communication série [Python]
[Introduction à Python] <liste> [modifier le 22/02/2020]
[Pour organiser] Environnement de développement Python
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
Introduction à Python que même les singes peuvent comprendre (partie 3)
Introduction à Python pour les utilisateurs de VBA - Appeler Python depuis Excel avec xlwings -
[Python] Introduction à la création de graphiques à l'aide de données de virus corona [Pour les débutants]
Introduction à Python que même les singes peuvent comprendre (partie 1)
Introduction à Python que même les singes peuvent comprendre (partie 2)
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
Introduction à la bibliothèque de calcul numérique Python NumPy
Une introduction à Mercurial pour les non-ingénieurs
Entraine toi! !! Introduction au type Python (conseils de type)
[Introduction à Python3 Jour 1] Programmation et Python
Créer une boîte à Tweet pour Pepper
[Introduction à Python] <numpy ndarray> [modifier le 22/02/2020]
[Présentation de l'application Udemy Python3 +] 57. Décorateur
Introduction à Python Hands On Partie 1
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
[Introduction à Python] Comment analyser JSON
[Présentation de l'application Udemy Python3 +] 56. Clôture
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
Introduction à Protobuf-c (langage C ⇔ Python)
[Présentation de l'application Udemy Python3 +] 59. Générateur
Options d'environnement de développement Python pour mai 2020
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
[Introduction à Python] Utilisons les pandas
Paramètres Emacs pour l'environnement de développement Python
[Introduction à Python] Utilisons les pandas
[Introduction à l'application Udemy Python3 +] Résumé
Introduction à l'analyse d'image opencv python
[Introduction à Python] Utilisons les pandas
Enregistrement de l'introduction de Python pour les nouveaux arrivants
Introduction à Python Django (2) Édition Mac
[AWS SAM] Présentation de la version Python
[Introduction à Python3 Day 21] Chapitre 10 Système (10.1 à 10.5)
[Tutoriel Python] Une introduction facile à Python
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 10 Introduction à Cupy
[Introduction à Python3 Jour 9] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.1-5.4)
Comment utiliser un éditeur externe pour le développement Python avec Grasshopper
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 9 Introduction à scikit-learn
[Introduction à Udemy Python3 + Application] 18. Méthode List
[Introduction à Udemy Python3 + Application] 63. Notation d'inclusion du générateur
[Introduction à l'application Udemy Python3 +] 28. Type collectif
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»