La connaissance de Python est essentielle pour développer Pepper et NAO. Donc, brièvement, je voudrais expliquer la boîte Python dans Naoqi.
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
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 **
input : "onStart" "onStop" output : "onStopped"
C'est une boîte composée de.
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érifiez comment la boîte Python est appelée. J'ai mis Logger dans chaque fonction et vérifié l'ordre d'exécution.
J'ai arrangé les boîtes non connectées.
[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.
```
[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é à ☓.
```
[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.
Dans le prolongement de l'article, j'aimerais écrire comment utiliser mes propres fonctions et comment utiliser des bibliothèques externes.
Recommended Posts